Класс QOpenGLShader
Класс QOpenGLShader позволяет компилировать шейдеры OpenGL. Подробнее...
| Заголовок: | #include <QOpenGLShader> |
| qmake: | QT += gui |
| С момента: | Qt 5.0 |
| Наследует: | QObject |
Типы
| флаги | ТипШейдера |
| перечисление | ТипШейдераБит { Вершинный, Фрагментный, Геометрический, УправлениеТиссовкой, ОценкаТиссовкой, Вычисления } |
Открытые функции
| QOpenGLShader(QOpenGLShader::ТипШейдера тип, QObject *родитель = Q_NULLPTR) | |
| виртуальный | ~QOpenGLShader() |
| bool | скомпилироватьИсходныйКод(const char *исходныйКод) |
| bool | скомпилироватьИсходныйКод(const QByteArray &исходныйКод) |
| bool | скомпилироватьИсходныйКод(const QString &исходныйКод) |
| bool | скомпилироватьИсходныйФайл(const QString &имяФайла) |
| bool | скомпилирован() const |
| QString | лог() const |
| GLuint | идентификаторШейдера() const |
| QOpenGLShader::ТипШейдера | типШейдера() const |
| QByteArray | исходныйКод() const |
- 32 открытые функции унаследованные от QObject
Статические открытые члены
| bool | имеютсяШейдерыOpenGL(ТипШейдера тип, QOpenGLContext *контекст = Q_NULLPTR) |
- 11 статических открытых членов, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QOpenGLShader позволяет компилировать шейдеры OpenGL.
Этот класс поддерживает шейдеры, написанные на языке OpenGL Shading Language (GLSL) и на языке OpenGL/ES Shading Language (GLSL/ES).
QOpenGLShader и QOpenGLShaderProgram скрывают от программиста детали компиляции и линковки вершинных и фрагментных шейдеров.
См. также QOpenGLShaderProgram.
Документация по типам членов
перечисление QOpenGLShader::ТипШейдераБитфлаги QOpenGLShader::ТипШейдера
Это перечисление определяет тип QOpenGLShader, который создается.
| Константа | Значение | Описание |
|---|---|---|
QOpenGLShader::Vertex |
0x0001 |
Вершинный шейдер, написанный на языке OpenGL Shading Language (GLSL). |
QOpenGLShader::Fragment |
0x0002 |
Фрагментный шейдер, написанный на языке OpenGL Shading Language (GLSL). |
QOpenGLShader::Geometry |
0x0004 |
Геометрические шейдеры, написанные на языке OpenGL Shading Language (GLSL), основанные на ядре OpenGL (требуется OpenGL >= 3.2). |
QOpenGLShader::TessellationControl |
0x0008 |
Шейдеры управления тиссовкой, написанные на языке OpenGL shading (GLSL), основанные на ядре (требуется OpenGL >= 4.0). |
QOpenGLShader::TessellationEvaluation |
0x0010 |
Шейдеры оценки тиссовкой, написанные на языке OpenGL shading (GLSL), основанные на ядре (требуется OpenGL >= 4.0). |
QOpenGLShader::Compute |
0x0020 |
Шейдеры вычислений, написанные на языке OpenGL shading (GLSL), основанные на ядре (требуется OpenGL >= 4.3). |
Тип ShaderType — это псевдоним для QFlags<ShaderTypeBit>. Он хранит логическое ИЛИ сочетание значений ShaderTypeBit.
Документация по функциям-членам
QOpenGLShader::QOpenGLShader(QOpenGLShader::ТипШейдера тип, QObject *родитель = Q_NULLPTR)
Создает новый объект QOpenGLShader указанного типа и присоединяет его к родителю. Если программы шейдеров не поддерживаются, QOpenGLShaderProgram::имеютсяШейдерныеПрограммыOpenGL() вернет false.
Этот конструктор обычно следует за вызовом скомпилироватьИсходныйКод() или скомпилироватьИсходныйФайл().
Шейдер будет связан с текущим QOpenGLContext.
См. также скомпилироватьИсходныйКод() и скомпилироватьИсходныйФайл().
[virtual] QOpenGLShader::~QOpenGLShader()
Удаляет этот шейдер. Если шейдер был присоединен к объекту QOpenGLShaderProgram, то фактический шейдер будет существовать до тех пор, пока QOpenGLShaderProgram не будет уничтожен.
bool QOpenGLShader::скомпилироватьИсходныйКод(const char *исходныйКод)
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, в противном случае — false.
См. также скомпилироватьИсходныйФайл().
bool QOpenGLShader::скомпилироватьИсходныйКод(const QByteArray &исходныйКод)
Это перегруженная функция.
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, в противном случае — false.
См. также скомпилироватьИсходныйФайл().
bool QOpenGLShader::скомпилироватьИсходныйКод(const QString &исходныйКод)
Это перегруженная функция.
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, в противном случае — false.
См. также скомпилироватьИсходныйФайл().
bool QOpenGLShader::скомпилироватьИсходныйФайл(const QString &имяФайла)
Устанавливает исходный код для этого шейдера в содержимое имяФайла и компилирует его. Возвращает true если файл был открыт и исходный код скомпилирован, в противном случае — false.
См. также скомпилироватьИсходныйКод().
[static] bool QOpenGLShader::имеютсяШейдерыOpenGL(ТипШейдера тип, QOpenGLContext *контекст = Q_NULLPTR)
Возвращает true если программы шейдеров типа тип поддерживаются в этой системе; в противном случае — false.
Контекст используется для разрешения расширений GLSL. Если контекст равен null, используется QOpenGLContext::текущийКонтекст().
bool QOpenGLShader::скомпилирован() const
Возвращает true если этот шейдер был скомпилирован; в противном случае — false.
См. также скомпилироватьИсходныйКод() и скомпилироватьИсходныйФайл().
QString QOpenGLShader::лог() 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.9/qopenglshader.html