そうです。Qt5のQtGuiモジュールにはそのようなクラスは存在しません。もちろん、ウィジェットライブラリを取得したくない場合は、テクスチャを処理するためにプレーンなOpenGL呼び出しに頼る必要があります。
そうは言っても、現在の(たとえば、いくぶん最適ではなく、一貫性のない)状況は認識されており、Qt開発者によって活発に議論されています。Qt5.1以降のSeanHarmerのOpenGL、特にポイント7を参照してください。しかし、そのスレッドに続いて現在の開発ツリーを見ると、5.1に到達するかどうかは疑問です。
編集:他の回答と、標準のQt5.0で使用できるオプションに関して追加したい最近のコメントを見てください。
あなたの主な目標は次のとおりです。
glTexImage2D(..., GL_UNSIGNED_BYTE, GL_RGBA, pointer)
潜在的に「奇妙な」フォーマットのQImageから渡すことができるポインタを取得しますか?また
glTex*()
関連する機能を扱うのを惜しまないヘルパークラスを使用しますか?
それが最初であり、(古い)OpenGLモジュール(Qt 5.0の一部)をリンクすることがオプションである場合(そして「美的」理由は別として、なぜそうではないのかわかりません)、静的を使用できますQGLWidget::convertToGLFormat(QImage)
ビクターがほのめかしていたこと。そうでない場合は、その関数のようなことを(Xīcòが提案したものに沿って)「手動で」実行する必要があります:基本的に最初に呼び出しQImage::convertToFormat(QImage::Format_ARGB32)
てから、プラットフォームに依存するバイトスウィズリングとミラーリングを追加します(ソースのconvertToGLFormatHelper(...)を参照) )。ただし、独自のシェーダーを使用する場合は、GPUでそれを実行する方がはるかに高速です。
両方が必要で、前述のOpenGL Qt 5.0アドオンモジュールをリンクすることがオプションである場合は、QGLWidget::bindTexture(...)
QQuickViewクラスでも同等のものを実際に使用できる可能性があります。
GLuint texID = QGLContext::fromOpenGLContext(
this->openglContext())->bindTexture(...)
this
QQuickView*はどこにありますか。QGLContextヘルプを参照してください。(免責事項:私はそれを自分で試していません。)