OpenGL表面在Qt 5.7中发生了变化。 alpha通道的绘图纹理不正确

时间:2016-06-27 00:32:22

标签: c++ qt opengl qt5.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)

因此,alpha通道的纹理绘制不正确。 我试图手动设置右侧参数格式,但它没有生效。

0 个答案:

没有答案