cocos2dx+qt

2022-06-21  本文已影响0人  许彦峰

platform问题

cocos2d-x\cocos\platform/CCPlatformConfig.h(143): fatal error C1189: #error: "Cannot recognize the target platform; are you targeting an unsupported platform?"
解决办法,我是自己定义了平台,在程序开头main.cpp

#ifndef _WINDOWS
#define _WINDOWS
#endif // !_WINDOWS

这样cocos暂时会识别为Win32平台,能解决问题,不算完美

将游戏窗口嵌入qt

接入到qt,需要使用QOpenGLWidget

网上的代码没有重点说明这个点,好多都是使用widget,导致自己排查了好久,始终没有搞明白是如何将OpenGL接入到qt的,其实qt已经提供了OpenGL的环境。

nvoglv属于是渲染崩溃

造成这个问题,一般是由于提交的顶点数据有问题,drawCall异常导致的



以下代码注意先后顺序,否则setOpenGL的时候会导致计算异常,也会引起渲染崩溃

this->setDesignResolutionSize(width, height, ResolutionPolicy::SHOW_ALL);

auto director = Director::getInstance();
director->setOpenGLView(this);

cocos2dx 接入到QT后,报错:

必现代码:

director->mainLoop();
auto view = director->getOpenGLView();
if (view)
{
    view->pollEvents(); // 这个导致的,里面调用了glfwPollEvents
}

glfwPollEvents 和QOpenGLWidget都是管理窗口和OpenGL上下文的一个framework,在窗口管理这部分只能选择其中一个,否则会起冲突。

在mainloop里面也会这个调用:



只要不调用这个glfw的函数即可,解决办法,重写pollEvents();

void pollEvents() override {}
上一篇下一篇

猜你喜欢

热点阅读