Spec-Zone.ru › Qt 5.15

Класс QOpenGLShader

Класс QOpenGLShader позволяет компилировать шейдеры OpenGL. Подробнее...

Заголовок: #include <QOpenGLShader>
qmake: QT += gui
С момента: Qt 5.0
Наследует: QObject

Этот класс был представлен в Qt 5.0.

  • Список всех членов, включая унаследованные

Типы публичного доступа

флаги ТипШейдера
перечисление ФлагТипШейдера { Вершина, Фрагмент, Геометрия, УправлениеТиснением, ОценкаТиснения, Вычисление }

Функции публичного доступа

QOpenGLShader(QOpenGLShader::ТипШейдера type, QObject *parent = nullptr)
виртуальный ~QOpenGLShader()
bool compileSourceCode(const char *source)
bool compileSourceCode(const QByteArray &source)
bool compileSourceCode(const QString &source)
bool compileSourceFile(const QString &fileName)
bool isCompiled() const
QString log() const
GLuint shaderId() const
QOpenGLShader::ТипШейдера типШейдера() const
QByteArray sourceCode() const

Статические функции публичного доступа

bool hasOpenGLShaders(QOpenGLShader::ТипШейдера type, QOpenGLContext *context = nullptr)

Подробное описание

Этот класс поддерживает шейдеры, написанные на языке 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 — псевдоним для QFlags<ФлагТипШейдера>. Он хранит результат объединения по битовому ИЛИ значений ФлагТипШейдера.

Документация по функциям членов

QOpenGLShader::QOpenGLShader(QOpenGLShader::ТипШейдера type, QObject *parent = nullptr)

Создаёт новый объект QOpenGLShader указанного типа type и присоединяет его к parent. Если программы шейдеров не поддерживаются, QOpenGLShaderProgram::hasOpenGLShaderPrograms() вернёт false.

Этот конструктор обычно следует за вызовом compileSourceCode() или compileSourceFile().

Шейдер будет связан с текущим QOpenGLContext.

См. также compileSourceCode() и compileSourceFile().

[virtual] QOpenGLShader::~QOpenGLShader()

Удаляет этот шейдер. Если шейдер был присоединён к объекту QOpenGLShaderProgram, то сам шейдер останется до тех пор, пока не будет уничтожен QOpenGLShaderProgram.

bool QOpenGLShader::compileSourceCode(const char *source)

Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, в противном случае — false.

См. также compileSourceFile().

bool QOpenGLShader::compileSourceCode(const QByteArray &source)

Это перегруженная функция.

Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, в противном случае — false.

См. также compileSourceFile().

bool QOpenGLShader::compileSourceCode(const QString &source)

Это перегруженная функция.

Устанавливает исходный код для этого шейдера и компилирует его. Возвращает true если исходный код был успешно скомпилирован, в противном случае — false.

См. также compileSourceFile().

bool QOpenGLShader::compileSourceFile(const QString &fileName)

Устанавливает исходный код для этого шейдера из содержимого fileName и компилирует его. Возвращает true если файл был открыт и исходный код скомпилирован, в противном случае — false.

См. также compileSourceCode().

[static] bool QOpenGLShader::hasOpenGLShaders(QOpenGLShader::ТипШейдера type, QOpenGLContext *context = nullptr)

Возвращает true если программы шейдеров типа type поддерживаются на этой системе; в противном случае — false.

context используется для определения расширений GLSL. Если context nullptr, используется QOpenGLContext::currentContext().

bool QOpenGLShader::isCompiled() const

Возвращает true если этот шейдер был скомпилирован; в противном случае — false.

См. также compileSourceCode() и compileSourceFile().

QString QOpenGLShader::log() const

Возвращает ошибки и предупреждения, возникшие во время последней компиляции.

См. также compileSourceCode() и compileSourceFile().

GLuint QOpenGLShader::shaderId() const

Возвращает идентификатор OpenGL, связанный с этим шейдером.

См. также QOpenGLShaderProgram::programId().

QOpenGLShader::ТипШейдера QOpenGLShader::типШейдера() 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.15/qopenglshader.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API