自己动手写cocos2dx游戏引擎(五)——渲染对象

自己动手写cocos2dx游戏引擎(五)——渲染对象,第1张

概述上一节中,获取到了OpenGL的视图窗口,但是还没有办法渲染,现在我们把渲染对象加进来。 // Renderer.h #ifndef __RENDERER_H__#define __RENDERER_H__#include <iostream>class Renderer { public: void render();};void Renderer::re

上一节中,获取到了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();}


在其子类displaylinkDirector中添加一个接口,调用基类的drawScene方法渲染场景,并添加一个接口在Application中调用
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游戏引擎(五)——渲染对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存