CCNode,CCSprite是如何实现绘制的?
2014-10-14 14:30
246 查看
Node类的draw是空函数,没有真正描画,Node中有下面的解释
A Node is a "void" object. If you want todraw something on the screen, you should use a Sprite instead. Or subclass Nodeand override `draw`.
由此可见,真正的描画是在node的子类中,draw函数有以下注释,说明设置opengl的状态
/**
* Override this method to draw your ownnode.
* The following GL states will be enabledby default:
* -`glEnableClientState(GL_VERTEX_ARRAY);`
* - `glEnableClientState(GL_COLOR_ARRAY);`
* -`glEnableClientState(GL_TEXTURE_COORD_ARRAY);`
* - `glEnable(GL_TEXTURE_2D);`
* AND YOU SHOULD NOT DISABLE THEM AFTERDRAWING YOUR NODE
* But if you enable any other GL state,you should disable it after drawing your node.
*/
再看sprite类的draw函数中有
renderer->addCommand(&_quadCommand);
由此可见真正的描画是在sprite类中做的,再往下涉及到opengl的机制了,到此为止吧。
A Node is a "void" object. If you want todraw something on the screen, you should use a Sprite instead. Or subclass Nodeand override `draw`.
由此可见,真正的描画是在node的子类中,draw函数有以下注释,说明设置opengl的状态
/**
* Override this method to draw your ownnode.
* The following GL states will be enabledby default:
* -`glEnableClientState(GL_VERTEX_ARRAY);`
* - `glEnableClientState(GL_COLOR_ARRAY);`
* -`glEnableClientState(GL_TEXTURE_COORD_ARRAY);`
* - `glEnable(GL_TEXTURE_2D);`
* AND YOU SHOULD NOT DISABLE THEM AFTERDRAWING YOUR NODE
* But if you enable any other GL state,you should disable it after drawing your node.
*/
再看sprite类的draw函数中有
renderer->addCommand(&_quadCommand);
由此可见真正的描画是在sprite类中做的,再往下涉及到opengl的机制了,到此为止吧。
相关文章推荐
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- 基于Skyline的TerraExplorer6.1.1如何通过二次开发实现圆形对象的手动绘制
- Libgdx中如何绘制带透明度的3D模型相关实现代码 2种方案
- 如何在VC 6.0下实现贝济埃曲线的绘制
- 基于Skyline的TerraExplorer6.1.1如何通过二次开发实现折线和多边形对象的手动绘制
- 如何基于纯GDI实现alpha通道的矢量和文字绘制
- SkylineGlobe 如何实现绘制圆形Polygon和对图层的圆形范围选择查询
- js是如何实现拖拽raphael.js所绘制图像的
- 如何实现3D效果(绘制长方体/立方体)
- 如何基于纯GDI实现alpha通道的矢量和文字绘制
- QT 如何实现使用 QPainter 的 drawPixmap() 函数将图片文件绘制到一个 QLabel、QPushButton 或者其他的一些设备上?
- JAVA中Swing的绘制原理以及如何实现动态图画
- 如何重写PictureBox的OnPaint方法绘制矩形,并实现拖动,鼠标悬停时提示拖拽方向
- 详解如何用java实现Koch雪花的绘制
- Unity中如何用代码实现横版游戏路径的绘制
- C#中如何实现AVI视频的播放并且需要在播放视频的同时在视频上进行一些简单线条的绘制?
- 【转载】C#下如何实现 绘制曲线图和柱状图
- SkylineGlobe 6.5 如何实现简单多边形的动态绘制 C#示例代码
- 如何重写PictureBox的OnPaint方法绘制矩形,并实现拖动改变矩形大小,鼠标悬停时提示拖拽方向(二)
- 如何用Socket实现客户端通信模块