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
-
QWidget::createWindowContainer
创建一个QWidget窗口容器,该窗口容器使得基于QWidget的应用内嵌window窗口
这种办法比较绕,而且不是太灵活,暂时就没有使用。
接入到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 {}
网友评论