Изменения поверхности OpenGL в Qt 5.7. Неправильные текстуры рисования с альфа-каналом

Я использую тот же код с Qt 5.5

class MyGlWidget : public QOpenGLWidget
{
Q_OBJECT

public:
explicit MyGlWidget(QWidget* parent = 0);
virtual ~MyGlWidget();

protected:
virtual void initializeGL()
{
QOpenGLContext* context = QOpenGLContext::currentContext();

QSurfaceFormat format = context->format();
format.setVersion(2,1);
context->setFormat(format);

...
}

virtual void paintGL() { ... }

И в этом случае «формат» это:

QSurfaceFormat(version 2.1, options QFlags(0x4), depthBufferSize 24,
redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8,
stencilBufferSize 8, samples 0, swapBehavior 2, swapInterval 1, profile  2)

Но в Qt 5.7 «формат» это:

QSurfaceFormat(version 2.1, options QFlags(0x4), depthBufferSize -1,
redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize -1,
stencilBufferSize -1, samples -1, swapBehavior 2, swapInterval 1, profile  0)

Таким образом, текстуры с альфа-каналом рисуются некорректно.
Я попытался установить формат с правильными параметрами вручную, но это не вступило в силу.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]