Spec-Zone.ru › Qt 5.12

Класс QOpenGLShader

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

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

Типы public

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

Функции public

QOpenGLShader(QOpenGLShader::ТипШейдера тип, QObject *родитель = nullptr)
virtual ~QOpenGLShader()
bool compileSourceCode(const char *исходныйКод)
bool compileSourceCode(const QByteArray &исходныйКод)
bool compileSourceCode(const QString &исходныйКод)
bool compileSourceFile(const QString &имяФайла)
bool isCompiled() const
QString log() const
GLuint shaderId() const
QOpenGLShader::ТипШейдера типШейдера() const
QByteArray исходныйКод() const
  • 31 public functions inherited from QObject

Статические public члены

bool имеетШейдерыOpenGL(QOpenGLShader::ТипШейдера тип, QOpenGLContext *контекст = nullptr)
const QMetaObject staticMetaObject
  • 9 static public members inherited from QObject

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

  • 1 свойство, унаследованное от QObject
  • 1 public slot, унаследованный от QObject
  • 2 сигнала, унаследованные от QObject
  • 9 защищенных функций, унаследованных от QObject

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

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

Этот класс поддерживает шейдеры, написанные на языке 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 — это typedef для QFlags<ShaderTypeBit>. Он хранит OR-комбинацию значений ShaderTypeBit.

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

QOpenGLShader::QOpenGLShader(QOpenGLShader::ТипШейдера тип, QObject *родитель = nullptr)

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

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

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

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

[virtual] QOpenGLShader::~QOpenGLShader()

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

bool QOpenGLShader::compileSourceCode(const char *исходныйКод)

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

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

bool QOpenGLShader::compileSourceCode(const QByteArray &исходныйКод)

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

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

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

bool QOpenGLShader::compileSourceCode(const QString &исходныйКод)

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

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

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

bool QOpenGLShader::compileSourceFile(const QString &имяФайла)

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

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

[static] bool QOpenGLShader::имеетШейдерыOpenGL(QOpenGLShader::ТипШейдера тип, QOpenGLContext *контекст = nullptr)

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

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

Spec-Zone.ru

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