2012-01-10 47 views
2

我想知道是否有办法绘制gl::texture文件,而不必在每个循环中使用gl::draw命令。有没有办法让我画一次,然后不用担心。Cinder中的绘图文本

draw()的每个循环中绘制图像会减慢我的应用程序,所以我只想在屏幕上绘制一次,然后在需要时更新它们。

回答

2

从煤渣的教程引用:

“当你创建一个新的煤渣的项目,你会发现有申报您的一些功能每个煤渣项目是由三个主要功能,您在初始化变量。在你的程序开始时调用setup()方法,你可以在update()方法中对这些变量进行修改,最后在程序窗口中绘制()内容,更新和绘制是任何Cinder项目的心跳。UpdateSetup,然后更新并绘制,更新并绘制,更新和绘制,直到您退出应用程序为止。“

虽然有一种方法可以在OpenGL中永久绘制对象,并且在Cinder中很常见,但我不会推荐它。在绘图函数中禁用gl :: clear()。你不能有选择地删除任何不需要的对象。你将不得不从头开始渲染你的场景。更多地考虑OpenGL的帧缓冲区。每次调用gl :: clear()时,都会刷上画笔,并将画布涂成黑色或者使用gl :: clear()指定的颜色。在那之后,帧缓冲区是“tabula rasa”,你必须画出你想要从头开始显示的所有东西。如果您在绘制新对象时没有声明任何gl :: clear()命令,就像您的画布保持不动,并将您的对象绘制在已绘制的顶部。