Spec-Zone.ru › Qt 6.0

Класс QOpenGLShader

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

Заголовок: #include <QOpenGLShader>
CMake: find_package(Qt6 COMPONENTS OpenGL REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
qmake: QT += opengl
С момента: Qt 5.0
Наследует: QObject
  • Список всех членов, включая унаследованные

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

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

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

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::ТипШейдера shaderType() 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 (GLSL) (требует OpenGL >= 4.0 или OpenGL ES >= 3.2).
QOpenGLShader::TessellationEvaluation 0x0010 Шейдеры оценки тисселяцией, написанные на языке OpenGL (GLSL) (требует OpenGL >= 4.0 или OpenGL ES >= 3.2).
QOpenGLShader::Compute 0x0020 Шейдеры вычислений, написанные на языке OpenGL (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().

END_OF_DOCUMENT_MARKER

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-6.0/qopenglshader.html

Spec-Zone.ru

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