上一节中,获取到了OpenGL的视图窗口,但是还没有办法渲染,现在我们把渲染对象加进来。
// Renderer.h
#ifndef __RENDERER_H__#define __RENDERER_H__#include <iostream>class Renderer { public: voID render();};voID Renderer::render() { // 调用OpenGL接口渲染 std::cout << "render..." << std::endl;}#endif
然后在Director.h创建一个渲染对象,并添加一个接口给子类调用。
// Director.h
class Director { public: static Director* getInstance(); Director(); virtual ~Director(); virtual bool init(); virtual voID mainLoop() = 0; GLVIEw* getopenGLVIEw(); voID setopenGLVIEw(GLVIEw *openGLVIEw); voID drawScene(); private: GLVIEw *_openGLVIEw; Renderer *_renderer;};voID Director::drawScene() { _renderer->render();}
voID displaylinkDirector::mainLoop() { drawScene();}然后在Application中循环调用这个方法,不断得渲染游戏画面。
int Application::run() { if (!applicationDIDFinishLaunching()) { return 1; } Director* director = Director::getInstance(); GLVIEw* glvIEw = director->getopenGLVIEw(); // glvIEw->retain(); while(!glvIEw->windowshouldClose()) { director->mainLoop(); } // glvIEw->release(); return 0;}
其中windowshouldClose函数现在直接返回了一个false,什么都没干。
代码:https://git.oschina.net/xulIDong/GameEngine
总结以上是内存溢出为你收集整理的自己动手写cocos2dx游戏引擎(五)——渲染对象全部内容,希望文章能够帮你解决自己动手写cocos2dx游戏引擎(五)——渲染对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)