Класс QOpenGLShader
Класс QOpenGLShader позволяет компилировать шейдеры OpenGL. Подробнее...
| Заголовок: | #include <QOpenGLShader> |
| qmake: | QT += gui |
| С тех пор: | Qt 5.0 |
| Наследует: | QObject |
Открытые типы
| флаги | ТипШейдера |
| перечисление | ТипБитаШейдера { Вершинный, Фрагментный, Геометрический, УправлениеТиссов, ВычислениеТиссов, Вычисление } |
Открытые функции
| QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = Q_NULLPTR) | |
| виртуальный | ~QOpenGLShader() |
| bool | скомпилироватьИсходныйКод(const char *source) |
| bool | скомпилироватьИсходныйКод(const QByteArray &source) |
| bool | скомпилироватьИсходныйКод(const QString &source) |
| bool | скомпилироватьИсходныйФайл(const QString &fileName) |
| bool | скомпилировано() const |
| QString | лог() const |
| GLuint | идентификаторШейдера() const |
| QOpenGLShader::ShaderType | типШейдера() const |
| QByteArray | исходныйКод() const |
- 31 открытая функция, унаследованная от QObject
Статические открытые члены
| bool | имеютсяШейдерыOpenGL(ТипШейдера type, QOpenGLContext *context = 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 language (GLSL), на основе ядра (требуется OpenGL >= 4.0). |
QOpenGLShader::TessellationEvaluation |
0x0010 |
Шейдеры вычисления тиссов, написанные на языке OpenGL shading language (GLSL), на основе ядра (требуется OpenGL >= 4.0). |
QOpenGLShader::Compute |
0x0020 |
Шейдеры вычислений, написанные на языке OpenGL shading language (GLSL), на основе ядра (требуется OpenGL >= 4.3). |
Тип ShaderType является псевдонимом для QFlags<ТипБитаШейдера>. Он хранит комбинацию значений ТипБитаШейдера, объединенных операцией ИЛИ.
Документация функций-членов
QOpenGLShader::QOpenGLShader(QOpenGLShader::ТипШейдера type, QObject *parent = Q_NULLPTR)
Создает новый объект QOpenGLShader указанного type и прикрепляет его к parent. Если программы шейдеров не поддерживаются, QOpenGLShaderProgram::hasOpenGLShaderPrograms() вернет false.
Этот конструктор обычно следует за вызовом скомпилироватьИсходныйКод() или скомпилироватьИсходныйФайл().
Шейдер будет связан с текущим QOpenGLContext.
См. также скомпилироватьИсходныйКод() и скомпилироватьИсходныйФайл().
[virtual] QOpenGLShader::~QOpenGLShader()
Удаляет этот шейдер. Если шейдер был прикреплен к объекту QOpenGLShaderProgram, то фактический шейдер останется до тех пор, пока QOpenGLShaderProgram не будет уничтожен.
bool QOpenGLShader::скомпилироватьИсходныйКод(const char *source)
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, иначе false.
См. также скомпилироватьИсходныйФайл().
bool QOpenGLShader::скомпилироватьИсходныйКод(const QByteArray &source)
Это перегруженная функция.
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, иначе false.
См. также скомпилироватьИсходныйФайл().
bool QOpenGLShader::скомпилироватьИсходныйКод(const QString &source)
Это перегруженная функция.
Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, иначе false.
См. также скомпилироватьИсходныйФайл().
bool QOpenGLShader::скомпилироватьИсходныйФайл(const QString &fileName)
Устанавливает исходный код для этого шейдера из содержимого fileName и компилирует его. Возвращает true если файл мог быть открыт и код скомпилирован, иначе false.
См. также скомпилироватьИсходныйКод().
[static] bool QOpenGLShader::имеютсяШейдерыOpenGL(ТипШейдера type, QOpenGLContext *context = Q_NULLPTR)
Возвращает true если программы шейдеров типа type поддерживаются в этой системе; в противном случае false.
context используется для определения расширений GLSL. Если context равен null, используется QOpenGLContext::currentContext().
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/archives/qt-5.6/qopenglshader.html