Класс QOpenGLShader
Класс QOpenGLShader позволяет компилировать шейдеры OpenGL. Подробнее...
| Заголовок: | #include <QOpenGLShader> |
| qmake: | QT += gui |
| С момента: | Qt 5.0 |
| Наследует: | QObject |
Типы public
| флаги | ТипШейдера |
| перечисление | ТипШейдераБит { Вершинный, Фрагментный, Геометрический, УправлениеТисслецией, ОценкаТисслецией, Вычисление } |
Функции public
| QOpenGLShader(QOpenGLShader::ТипШейдера тип, QObject *родитель = nullptr) | |
| virtual | ~QOpenGLShader() |
| bool | compileSourceCode(const char *исходныйКод) |
| bool | compileSourceCode(const QByteArray &исходныйКод) |
| bool | compileSourceCode(const QString &исходныйКод) |
| bool | compileSourceFile(const QString &имяФайла) |
| bool | isCompiled() const |
| QString | log() const |
| GLuint | shaderId() const |
| QOpenGLShader::ТипШейдера | типШейдера() const |
| QByteArray | исходныйКод() const |
- 31 public functions inherited from QObject
Статические public члены
| bool | имеетШейдерыOpenGL(QOpenGLShader::ТипШейдера тип, QOpenGLContext *контекст = nullptr) |
| const QMetaObject | staticMetaObject |
- 9 static public members inherited from QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 public slot, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QOpenGLShader позволяет компилировать шейдеры OpenGL.
Этот класс поддерживает шейдеры, написанные на языке OpenGL Shading Language (GLSL) и языке OpenGL/ES Shading Language (GLSL/ES).
QOpenGLShader и QOpenGLShaderProgram скрывают от программиста детали компиляции и линковки вершинных и фрагментных шейдеров.
См. также QOpenGLShaderProgram.
Документация по типам членов
перечисление QOpenGLShader::ТипШейдераБит
Это перечисление определяет тип QOpenGLShader, который создается.
| Постоянная | Значение | Описание |
|---|---|---|
QOpenGLShader::Vertex |
0x0001 |
Вершинный шейдер, написанный на языке OpenGL Shading Language (GLSL). |
QOpenGLShader::Fragment |
0x0002 |
Фрагментный шейдер, написанный на языке OpenGL Shading Language (GLSL). |
QOpenGLShader::Geometry |
0x0004 |
Геометрические шейдеры, написанные на языке OpenGL Shading Language (GLSL) (требуется OpenGL >= 3.2 или OpenGL ES >= 3.2). |
QOpenGLShader::TessellationControl |
0x0008 |
Шейдеры управления тисселяцией, написанные на языке OpenGL Shading Language (GLSL) (требуется OpenGL >= 4.0 или OpenGL ES >= 3.2). |
QOpenGLShader::TessellationEvaluation |
0x0010 |
Шейдеры оценки тисселяцией, написанные на языке OpenGL Shading Language (GLSL) (требуется OpenGL >= 4.0 или OpenGL ES >= 3.2). |
QOpenGLShader::Compute |
0x0020 |
Шейдеры вычислений, написанные на языке OpenGL Shading Language (GLSL) (требуется OpenGL >= 4.3 или OpenGL ES >= 3.1). |
Тип ShaderType — это typedef для QFlags<ShaderTypeBit>. Он хранит OR-комбинацию значений ShaderTypeBit.
Документация по функциям-членам
QOpenGLShader::QOpenGLShader(QOpenGLShader::ТипШейдера тип, QObject *родитель = nullptr)
Создает новый объект QOpenGLShader указанного типа и прикрепляет его к родителю. Если программы шейдеров не поддерживаются, QOpenGLShaderProgram::hasOpenGLShaderPrograms() вернет false.
Этот конструктор обычно сопровождается вызовом compileSourceCode() или compileSourceFile().
Шейдер будет связан с текущим QOpenGLContext.
См. также compileSourceCode() и compileSourceFile().
[virtual] QOpenGLShader::~QOpenGLShader()
Удаляет этот шейдер. Если шейдер был прикреплен к объекту QOpenGLShaderProgram, то фактический шейдер останется до тех пор, пока QOpenGLShaderProgram не будет уничтожен.
bool QOpenGLShader::compileSourceCode(const char *исходныйКод)
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true, если исходный код был успешно скомпилирован, и false в противном случае.
См. также compileSourceFile().
bool QOpenGLShader::compileSourceCode(const QByteArray &исходныйКод)
Это перегруженная функция.
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true, если исходный код был успешно скомпилирован, и false в противном случае.
См. также compileSourceFile().
bool QOpenGLShader::compileSourceCode(const QString &исходныйКод)
Это перегруженная функция.
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true, если исходный код был успешно скомпилирован, и false в противном случае.
См. также compileSourceFile().
bool QOpenGLShader::compileSourceFile(const QString &имяФайла)
Устанавливает исходный код для этого шейдера в содержимое имяФайла и компилирует его. Возвращает true, если файл был успешно открыт и исходный код скомпилирован, и false в противном случае.
См. также compileSourceCode().
[static] bool QOpenGLShader::имеетШейдерыOpenGL(QOpenGLShader::ТипШейдера тип, QOpenGLContext *контекст = nullptr)
Возвращает true, если программы шейдеров типа тип поддерживаются в этой системе; в противном случае возвращает false.
Контекст используется для разрешения расширений GLSL. Если контекст равен null, то используется QOpenGLContext::currentContext().
bool QOpenGLShader::isCompiled() const
Возвращает true, если этот шейдер был скомпилирован; в противном случае возвращает false.
См. также compileSourceCode() и compileSourceFile().
QString QOpenGLShader::log() const
Возвращает ошибки и предупреждения, возникшие во время последней компиляции.
См. также compileSourceCode() и compileSourceFile().
GLuint QOpenGLShader::shaderId() const
Возвращает идентификатор OpenGL, связанный с этим шейдером.
См. также QOpenGLShaderProgram::programId().
QOpenGLShader::ShaderType QOpenGLShader::shaderType() const
Возвращает тип этого шейдера.
QByteArray QOpenGLShader::sourceCode() const
Возвращает исходный код этого шейдера.
См. также compileSourceCode().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qopenglshader.html