头文件, 重写draw 与 onDraw函数
Test.h
public:
void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags);
private:
void onDraw(const kmMat4 &transform, uint32_t flags);
CustomCommand _customCommand;
源文件
Test.cpp
只需要添加这样的基本代码就可以实现自己定义的命令,自定义的命令在 onDraw中实现。
本测试只是画一个矩形。
void Test::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)
{
log("on Draw");
_customCommand.init(_globalZOrder);
_customCommand.func = CC_CALLBACK_0(TowerPos::onDraw, this, transform, flags);
renderer->addCommand(&_customCommand);
}
void Test::onDraw(const kmMat4 &transform, uint32_t flags)
{
kmGLPushMatrix();
kmGLLoadMatrix(&transform);
glLineWidth(5.0f);
Point srcPos = Point(m_pos.x - RADIUS(RADIUS32), m_pos.y + RADIUS(RADIUS32));
Point destPos = Point(m_pos.x + RADIUS(RADIUS32), m_pos.y - RADIUS(RADIUS32));
log("%f, %f, %f, %f", srcPos.x, srcPos.y, destPos.x, destPos.y);
DrawPrimitives::drawRect(srcPos, destPos);
glLineWidth(5);
kmGLPopMatrix();
}