Я использовал старые методы Qt OpenGl, но пришло время переключиться на более новые.QOpenGLTexture (Qt) из необработанных данных (freeimage)
быть растровый FIBITMAP *
инициализированglTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA8, ширина, высота, 0, GL_BGRA, GL_UNSIGNED_BYTE (недействительными *) FreeImage_GetBits (pImage));
работал как очарование для меня.
Но теперь в новых методах предпочтительно использовать QOpenGLTexture
Unfortunatly мои попытки были безуспешными есть.
QOpenGLTexture * qtexture = новый QOpenGLTexture (QOpenGLTexture :: Target2D);
texture-> SetData (QOpenGLTexture :: PixelFormat :: RGBA, QOpenGLTexture :: PixelType :: INT8, FreeImage_GetBits (растровый));
, что код возвращает 1x1 текстуру, но и если заставить размер, как с помощью
qtexture-> SetSize (ширина, высота, 4);
qtexture имеет правильный размер, но это совершенно черное, и я пыталась найти в Qt/FreeImage форумах и т.д., но ничего, связанное с несчастливо все не использует QImage кормить QOpenGLTexture но несчастливо я должен поддерживать некоторые «странный» такие как .hdr или .exr, которые не поддерживаются самой Qt.
Заранее благодарю за ваше время!
Да, это также отмечается в документах класса. – peppe
В чем преимущество использования объекта QOpenGLTexture вместо чистого OpenGL? – Pietrko
Это оболочка Qt, которая проще в использовании с виджетами Qt OpenGL –