Spec-Zone.ru › Qt 5.11

Класс QOpenGLShader

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

Заголовок: #include <QOpenGLShader>
qmake: QT += gui
С тех пор: Qt 5.0
Наследует: QObject
  • Список всех членов, включая унаследованные

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

Флаги ShaderType
Перечисление ShaderTypeBit { Vertex, Fragment, Geometry, TessellationControl, TessellationEvaluation, Compute }

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

QOpenGLShader(QOpenGLShader::ShaderType 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 shaderType() const
QByteArray sourceCode() const
  • 34 функции публичного доступа унаследованные от QObject

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

bool hasOpenGLShaders(QOpenGLShader::ShaderType type, QOpenGLContext *context = nullptr)
  • 10 статических членов публичного доступа унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство унаследованное от QObject
  • 1 слот публичного доступа унаследованный от QObject
  • 2 сигнала унаследованные от QObject
  • 1 переменная публичного доступа унаследованная от QObject
  • 9 защищенные функции унаследованные от QObject
  • 2 защищенные переменные унаследованные от QObject

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

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

Этот класс поддерживает шейдеры, написанные на языке OpenGL Shading Language (GLSL) и на языке OpenGL/ES Shading Language (GLSL/ES).

QOpenGLShader и QOpenGLShaderProgram скрывают от программиста детали компиляции и линковки вершинных и фрагментных шейдеров.

См. также QOpenGLShaderProgram.

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

перечисление QOpenGLShader::ShaderTypeBitфлаги QOpenGLShader::ShaderType

Это перечисление определяет тип 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<ShaderTypeBit>. Он хранит логическое ИЛИ сочетание значений ShaderTypeBit.

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

QOpenGLShader::QOpenGLShader(QOpenGLShader::ShaderType 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::ShaderType type, QOpenGLContext *context = nullptr)

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

context используется для разрешения расширений GLSL. Если context равен 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/archives/qt-5.11/qopenglshader.html

Spec-Zone.ru

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