参考了彩阳大神的《Qt移动应用开发(八):实现跨平台的QML和OpenGL混合渲染》一文,在Qt5.4的平台上实现的时候出现了一些问题。
Qt5.4的情况下,未继承QOpenGLFunctions不能使用对应的该类封装的opengl函数,而彩阳大神的代码里只是继承了QQuickItem,在进行渲染的时候直接使用的该类的函数。
不让用就不让用呗,那我自己定义一个QOpenGLFunctions对象,但是,问题又来了,定义QOpenGLFunctions需要制定一个QOpenglContext,但是这个context怎么获取呢,若只是在QML全屏调用我们的组件,直接通过QOpenGLFunctions::currentContext()获取当前的设备上下文,问题是暂时解决了,但是如果想把我们的组件作为其他QML组件一样,可以自己随意布局,随意指定大小,问题就来了,里面在设置视口等地方用的都是window(),这个window()就是整个应用程序的一个窗口,导致我将组件以100*100嵌入到800*600的窗口下时,显示的就是800*600的,虽然Item的size值是100*100。
请教各位大神,这个时候该怎么办!谢谢!
对于这些都处于萌芽起步阶段,希望各位指点迷津。谢谢!