Qt创建COM组件解决opengl渲染设置问题(DLL方式)

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt创建COM组件解决opengl渲染设置问题(DLL方式)相关的知识,希望对你有一定的参考价值。

解决问题:采用DLL方式注册COM组件,没法自己写main函数,解决无法设置Qt全局属性问题。比如:

QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);

因为这些设置必须在QApplication 之前设置才有效。

一、项目介绍

【1】项目场景介绍

使用Qt开发COM组件给C#(WPF)调用,QT开发COM组件一般有两种形式:独立的exe文件和DLL库文件。如果是给其他语言调用,开发COM组件选择DLL方式最合适,在VS里安装Qt插件之后可以很方便的创建ActiveQtServer工程,创建之后,就是一个完整的模板,可以编译注册。

【2】问题说明

我当前开发的COM组件是一个视频播放器,需要用到OpenGL渲染,Qt默认的的渲染方式是采用AA_UseDesktopOpenGL,当前项目里渲染需要采用AA_UseOpenGLES,也就是需要修改属性。而修改AA_UseOpenGLES 属性需要在QApplication之前,那么问题就来了。

如果采用独立的exe方式编写COM组件,可以自己写main函数,那么在QApplication 之前设置AA_UseOpenGLES这些属性是没问题。

如果采用DLL方式注册COM组件,是不用自己写main函数(写了也没用),Qt5AxServer有默认的main函数。这种

以上是关于Qt创建COM组件解决opengl渲染设置问题(DLL方式)的主要内容,如果未能解决你的问题,请参考以下文章

Qt创建COM组件解决opengl渲染设置问题(DLL方式)

带有 QT 错误的 OpenGL:断言:“QOpenGLFunctions::isInitialized(d_ptr)”。无法创建 OpenGL 上下文

opengl 3 qt渲染空白屏幕

Qt 5.1.1 和 OpenGL - 渲染速度

将 Qt GUI 嵌入到现有的 OpenGL 程序中

强制 OpenGL 渲染始终在 Qt 中的相同 (Q) 线程上运行