184#ifndef QOPENGLENGINE_SHADER_MANAGER_H
185#define QOPENGLENGINE_SHADER_MANAGER_H
187#include <QOpenGLShader>
188#include <QOpenGLShaderProgram>
190#include <private/qopenglcontext_p.h>
191#include <private/qopenglcustomshaderstage_p.h>
292#if defined (QT_DEBUG)
294 static QByteArray snippetNameStr(SnippetName snippetName);
329 static const char* qShaderSnippets[TotalSnippetCount];
379 enum MaskType {NoMask, PixelMask, SubPixelMaskPass1, SubPixelMaskPass2, SubPixelWithGammaMask};
422 void setSrcPixelType(PixelSrcType);
423 void setOpacityMode(OpacityMode);
424 void setMaskType(MaskType);
427 void removeCustomStage();
429 GLuint getUniformLocation(Uniform
id);
432 bool useCorrectShaderProg();
434 void useSimpleProgram();
435 void useBlitProgram();
438 complexGeometry = hasComplexGeometry;
439 shaderProgNeedsChanging =
true;
443 return complexGeometry;
454 bool shaderProgNeedsChanging;
455 bool complexGeometry;
QOpenGLEngineSharedShaders * sharedShaders
bool hasComplexGeometry() const
void setHasComplexGeometry(bool hasComplexGeometry)
QOpenGLShaderProgram * program
QOpenGLEngineSharedShaders::SnippetName compositionFragShader
QList< uint > uniformLocations
bool usePmvMatrixAttribute
QOpenGLEngineSharedShaders::SnippetName mainFragShader
QOpenGLEngineSharedShaders::SnippetName positionVertexShader
QByteArray customStageSource
QOpenGLEngineSharedShaders::SnippetName srcPixelFragShader
QOpenGLEngineSharedShaders::SnippetName mainVertexShader
~QOpenGLEngineShaderProg()
bool operator==(const QOpenGLEngineShaderProg &other) const
QOpenGLEngineShaderProg()
QOpenGLEngineSharedShaders::SnippetName maskFragShader
@ MainWithTexCoordsVertexShader
@ PositionWithTextureBrushVertexShader
@ ConicalGradientBrushSrcFragmentShader
@ ExclusionCompositionModeFragmentShader
@ AffinePositionWithPatternBrushVertexShader
@ NonPremultipliedImageSrcFragmentShader
@ DifferenceCompositionModeFragmentShader
@ PositionWithConicalGradientBrushVertexShader
@ NoCompositionModeFragmentShader
@ TextureBrushSrcFragmentShader
@ MainFragmentShader_ImageArrays
@ DarkenCompositionModeFragmentShader
@ OverlayCompositionModeFragmentShader
@ PositionWithRadialGradientBrushVertexShader
@ ScreenCompositionModeFragmentShader
@ PositionWithLinearGradientBrushVertexShader
@ AlphaImageSrcFragmentShader
@ SolidBrushSrcFragmentShader
@ PositionOnlyVertexShader
@ CustomImageSrcFragmentShader
@ LightenCompositionModeFragmentShader
@ ShockingPinkSrcFragmentShader
@ TextureBrushSrcWithPatternFragmentShader
@ GrayscaleImageSrcFragmentShader
@ RgbMaskFragmentShaderPass2
@ PositionWithPatternBrushVertexShader
@ ColorBurnCompositionModeFragmentShader
@ MultiplyCompositionModeFragmentShader
@ RgbMaskFragmentShaderPass1
@ AffinePositionWithTextureBrushVertexShader
@ LinearGradientBrushSrcFragmentShader
@ AffinePositionWithLinearGradientBrushVertexShader
@ RadialGradientBrushSrcFragmentShader
@ AffinePositionWithConicalGradientBrushVertexShader
@ ImageSrcWithPatternFragmentShader
@ UntransformedPositionVertexShader
@ ColorDodgeCompositionModeFragmentShader
@ ComplexGeometryPositionOnlyVertexShader
@ RgbMaskWithGammaFragmentShader
@ SoftLightCompositionModeFragmentShader
@ PatternBrushSrcFragmentShader
@ HardLightCompositionModeFragmentShader
@ AffinePositionWithRadialGradientBrushVertexShader
@ MainWithTexCoordsAndOpacityVertexShader
QOpenGLShaderProgram * blitProgram()
QOpenGLShaderProgram * simpleProgram()
The QOpenGLShaderProgram class allows OpenGL shader programs to be linked and used.
CompositionMode
Defines the modes supported for digital image compositing.
Combined button and popup list for selecting options.
static const GLuint QT_TEXTURE_COORDS_ATTR
static const GLuint QT_PMV_MATRIX_2_ATTR
static const GLuint QT_OPACITY_ATTR
static const GLuint QT_PMV_MATRIX_1_ATTR
static QT_BEGIN_NAMESPACE const GLuint QT_VERTEX_COORDS_ATTR
static const GLuint QT_PMV_MATRIX_3_ATTR
n uniform highp mat3 brushTransform
GLuint GLenum transformType