将cocos2dx接入QT遇到的问题

简介: 将cocos2dx接入QT遇到的问题

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
#ifndef _WIN32
#define _WIN32
#endif // !_WIN32
复制代码

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

将游戏窗口嵌入qt

  • QWidget::createWindowContainer创建一个QWidget窗口容器,该窗口容器使得基于QWidget的应用内嵌window窗口 这种办法比较绕,而且不是太灵活,暂时就没有使用。

将其他进程的窗口嵌入到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 {}



目录
相关文章
Qt实用技巧:Qt从QtCreator更换为VS开发Qt所需要注意的坑
Qt实用技巧:Qt从QtCreator更换为VS开发Qt所需要注意的坑
Qt实用技巧:Qt从QtCreator更换为VS开发Qt所需要注意的坑
|
JavaScript IDE 开发工具
如何在Cocos-Creator平台下接入Poco-SDK
如何在Cocos-Creator平台下接入Poco-SDK
628 0
|
编译器 Linux API
QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
684 0
QT软件开发: 基于QT设计的完整版视频播放器、多媒体播放器(mdk-sdk)
|
编译器 C++ Windows
QT应用编程: win10+vs2017+QT5.12.6开发环境搭建
QT应用编程: win10+vs2017+QT5.12.6开发环境搭建
441 0
QT应用编程: win10+vs2017+QT5.12.6开发环境搭建
|
编译器 Linux API
QT应用编程: 基于mdk-sdk开发视频播放器
QT应用编程: 基于mdk-sdk开发视频播放器
494 0
QT应用编程: 基于mdk-sdk开发视频播放器
|
IDE 编译器 开发工具
QT应用编程: win7+vs2010+QT4.8.5开发环境搭建
QT应用编程: win7+vs2010+QT4.8.5开发环境搭建
236 0
QT应用编程: win7+vs2010+QT4.8.5开发环境搭建
Qt 隐藏标题栏可移动升级版
在最出的时候,在Qt程序隐藏标题栏的情况下,实现界面可拖拽移动,是鼠标在在程序界面的任意位置都可以,现在这个版本是需要鼠标在程序界面的特定位置开可以 上代码
103 0
Qt 隐藏标题栏可移动升级版
|
Unix 开发工具 Windows