QOpenGLShaderProgram Class
QOpenGLShaderProgram 클래스를 사용하면 OpenGL 셰이더 프로그램을 연결하여 사용할 수 있습니다. 더 보기...
Header: | #include <QOpenGLShaderProgram> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS OpenGL) target_link_libraries(mytarget PRIVATE Qt6::OpenGL) |
qmake: | QT += opengl |
상속합니다: | QObject |
- 상속된 멤버를 포함한 모든 멤버 목록
- QOpenGLShaderProgram은 3D 렌더링의 일부입니다.
공용 함수
QOpenGLShaderProgram(QObject *부모 = nullptr) | |
가상 | ~QOpenGLShaderProgram() |
bool | addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const char *source) |
bool | addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray &source) |
bool | addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType 유형, const QString &source) |
bool | addCacheableShaderFromSourceFile(QOpenGLShader::ShaderType 유형, const QString &fileName) |
bool | addShader(QOpenGLShader * 셰이더) |
bool | addShaderFromSourceCode(QOpenGLShader::ShaderType 유형, const char *source) |
bool | addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray &source) |
bool | addShaderFromSourceCode(QOpenGLShader::ShaderType 유형, const QString &source) |
bool | addShaderFromSourceFile(QOpenGLShader::ShaderType 유형, const QString &fileName) |
int | attributeLocation(const char *name) const |
int | attributeLocation(const QByteArray &name) const |
int | attributeLocation(const QString &name) const |
bool | bind() |
void | bindAttributeLocation(const char *name, int location) |
void | bindAttributeLocation(const QByteArray &name, int location) |
void | bindAttributeLocation(const QString &name, int location) |
bool | create() |
QList<플로트> | defaultInnerTessellationLevels() const |
QList<플로트> | defaultOuterTessellationLevels() const |
void | disableAttributeArray(int location) |
void | disableAttributeArray(const char *name) |
void | enableAttributeArray(int 위치) |
void | enableAttributeArray(const char *name) |
bool | isLinked() const |
가상 불 | link() |
QString | log() const |
int | maxGeometryOutputVertices() const |
int | patchVertexCount() const |
GLuint | programId() const |
void | release() |
void | removeAllShaders() |
void | removeShader(QOpenGLShader *쉐이더) |
void | setAttributeArray(int 위치, const QVector2D *값, int 보폭 = 0) |
void | setAttributeArray(int 위치, const QVector3D *값, int 보폭 = 0) |
void | setAttributeArray(int 위치, const QVector4D *값, int 보폭 = 0) |
void | setAttributeArray(int location, const GLfloat *values, int tupleSize, int stride = 0) |
void | setAttributeArray(int location, GLenum type, const void *values, int tupleSize, int stride = 0) |
void | setAttributeArray(const char *name, const QVector2D *values, int stride = 0) |
void | setAttributeArray(const char *name, const QVector3D *값, int stride = 0) |
void | setAttributeArray(const char *name, const QVector4D *값, int stride = 0) |
void | setAttributeArray(const char *name, const GLfloat *values, int tupleSize, int stride = 0) |
void | setAttributeArray(const char *name, GLenum type, const void *values, int tupleSize, int stride = 0) |
void | setAttributeBuffer(int location, GLenum type, int offset, int tupleSize, int stride = 0) |
void | setAttributeBuffer(const char *name, GLenum type, int offset, int tupleSize, int stride = 0) |
void | setAttributeValue(int location, GLfloat value) |
void | setAttributeValue(int 위치, const QColor &value) |
void | setAttributeValue(int 위치, const QVector2D &value) |
void | setAttributeValue(int location, const QVector3D &value) |
void | setAttributeValue(int location, const QVector4D &value) |
void | setAttributeValue(int 위치, GLfloat x, GLfloat y) |
void | setAttributeValue(int 위치, GLfloat x, GLfloat y, GLfloat z) |
void | setAttributeValue(int 위치, const GLfloat *값, int 열, int 행) |
void | setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) |
void | setAttributeValue(const char *name, GLfloat value) |
void | setAttributeValue(const char *name, const QColor &value) |
void | setAttributeValue(const char *name, const QVector2D &value) |
void | setAttributeValue(const char *name, const QVector3D &value) |
void | setAttributeValue(const char *name, const QVector4D &value) |
void | setAttributeValue(const char *name, GLfloat x, GLfloat y) |
void | setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z) |
void | setAttributeValue(const char *name, const GLfloat *값, int 열, int 행) |
void | setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) |
void | setDefaultInnerTessellationLevels(const QList<플로트> &levels) |
void | setDefaultOuterTessellationLevels(const QList<float> &levels) |
void | setPatchVertexCount(int count) |
void | setUniformValue(int 위치, GLfloat value) |
void | setUniformValue(int 위치, GLint 값) |
void | setUniformValue(const char *name, const QMatrix3x4 &value) |
void | setUniformValue(const char *name, const QMatrix4x2 &value) |
void | setUniformValue(const char *name, const QMatrix4x3 &value) |
void | setUniformValue(const char *name, const QMatrix4x4 &value) |
void | setUniformValue(const char *name, const QPoint &point) |
void | setUniformValue(const char *name, const QPointF &point) |
void | setUniformValue(const char *name, const QSize &size) |
void | setUniformValue(const char *name, const QSizeF &size) |
void | setUniformValue(const char *name, const QTransform &value) |
void | setUniformValue(const char *name, const QVector2D &value) |
void | setUniformValue(const char *name, const QVector3D &value) |
void | setUniformValue(const char *name, const QVector4D &value) |
void | setUniformValue(int 위치, const GLfloat[2][2] value) |
void | setUniformValue(int 위치, const GLfloat[3][3] value) |
void | setUniformValue(int location, const GLfloat[4][4] value) |
void | setUniformValue(const char *name, GLfloat x, GLfloat y) |
void | setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z) |
void | setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) |
void | setUniformValue(int 위치, GLuint value) |
void | setUniformValue(int 위치, const QColor &color) |
void | setUniformValue(int location, const QMatrix2x2 &value) |
void | setUniformValue(int location, const QMatrix2x3 &value) |
void | setUniformValue(int location, const QMatrix2x4 &value) |
void | setUniformValue(int location, const QMatrix3x2 &value) |
void | setUniformValue(int location, const QMatrix3x3 &value) |
void | setUniformValue(int location, const QMatrix3x4 &value) |
void | setUniformValue(int location, const QMatrix4x2 &value) |
void | setUniformValue(int location, const QMatrix4x3 &value) |
void | setUniformValue(int location, const QMatrix4x4 &value) |
void | setUniformValue(int 위치, const QPoint &point) |
void | setUniformValue(int location, const QPointF &point) |
void | setUniformValue(int location, const QSize &size) |
void | setUniformValue(int location, const QSizeF &size) |
void | setUniformValue(int location, const QTransform &value) |
void | setUniformValue(int 위치, const QVector2D &value) |
void | setUniformValue(int 위치, const QVector3D &value) |
void | setUniformValue(int location, const QVector4D &value) |
void | setUniformValue(int 위치, GLfloat x, GLfloat y) |
void | setUniformValue(int 위치, GLfloat x, GLfloat y, GLfloat z) |
void | setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) |
void | setUniformValue(const char *name, GLfloat value) |
void | setUniformValue(const char *name, GLint value) |
void | setUniformValue(const char *name, GLuint value) |
void | setUniformValue(const char *name, const GLfloat[2][2] value) |
void | setUniformValue(const char *name, const GLfloat[3][3] value) |
void | setUniformValue(const char *name, const GLfloat[4][4] value) |
void | setUniformValue(const char *name, const QColor &color) |
void | setUniformValue(const char *name, const QMatrix2x2 &value) |
void | setUniformValue(const char *name, const QMatrix2x3 &value) |
void | setUniformValue(const char *name, const QMatrix2x4 &value) |
void | setUniformValue(const char *name, const QMatrix3x2 &value) |
void | setUniformValue(const char *name, const QMatrix3x3 &value) |
void | setUniformValueArray(int 위치, const GLint *값, int count) |
void | setUniformValueArray(int 위치, const GLuint *값, int count) |
void | setUniformValueArray(int location, const QMatrix2x2 *값, int count) |
void | setUniformValueArray(int location, const QMatrix2x3 *값, int count) |
void | setUniformValueArray(int location, const QMatrix2x4 *값, int count) |
void | setUniformValueArray(int location, const QMatrix3x2 *값, int count) |
void | setUniformValueArray(int location, const QMatrix3x3 *값, int count) |
void | setUniformValueArray(int location, const QMatrix3x4 *값, int count) |
void | setUniformValueArray(int location, const QMatrix4x2 *값, int count) |
void | setUniformValueArray(int location, const QMatrix4x3 *값, int count) |
void | setUniformValueArray(int location, const QMatrix4x4 *값, int count) |
void | setUniformValueArray(int location, const QVector2D *값, int count) |
void | setUniformValueArray(int location, const QVector3D *값, int count) |
void | setUniformValueArray(int location, const QVector4D *값, int count) |
void | setUniformValueArray(int location, const GLfloat *values, int count, int tupleSize) |
void | setUniformValueArray(const char *name, const GLint *값, int count) |
void | setUniformValueArray(const char *name, const GLuint *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix2x2 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix2x3 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix2x4 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix3x2 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix3x3 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix3x4 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix4x2 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix4x3 *값, int count) |
void | setUniformValueArray(const char *name, const QMatrix4x4 *값, int count) |
void | setUniformValueArray(const char *name, const QVector2D *값, int count) |
void | setUniformValueArray(const char *name, const QVector3D *값, int count) |
void | setUniformValueArray(const char *name, const QVector4D *값, int count) |
void | setUniformValueArray(const char *name, const GLfloat *values, int count, int tupleSize) |
QList<QOpenGLShader *> | shaders() const |
int | uniformLocation(const char *name) const |
int | uniformLocation(const QByteArray &name) const |
int | uniformLocation(const QString &name) const |
정적 공용 멤버
bool | hasOpenGLShaderPrograms(QOpenGLContext *context = nullptr) |
상세 설명
소개
이 클래스는 OpenGL 셰이딩 언어 (GLSL) 및 OpenGL/ES 셰이딩 언어 (GLSL/ES)로 작성된 셰이더 프로그램을 지원합니다.
QOpenGLShader 와 QOpenGLShaderProgram은 프로그래머가 버텍스 및 프래그먼트 셰이더를 컴파일하고 연결하는 세부 사항으로부터 보호합니다.
다음 예제는 제공된 소스 code
를 사용하여 버텍스 셰이더 프로그램을 생성합니다. 컴파일 및 링크가 완료되면 셰이더 프로그램은 QOpenGLShaderProgram::bind()을 호출하여 현재 QOpenGLContext 에서 활성화됩니다:
QOpenGLShader shader(QOpenGLShader::Vertex); shader.compileSourceCode(code); QOpenGLShaderProgram program(context); program.addShader(&shader); program.link(); program.bind();
휴대용 셰이더 작성하기
셰이더 프로그램은 표준 버텍스 속성과 균일한 변수에 대한 지원 수준이 다양하기 때문에 여러 OpenGL 구현에서 재사용하기가 어려울 수 있습니다. 특히 GLSL/ES에는 데스크톱 OpenGL 시스템에 있는 모든 표준 변수가 없습니다: gl_Vertex
, gl_Normal
, gl_Color
등. 데스크톱 OpenGL에는 변수 한정자 highp
, mediump
, lowp
이 없습니다.
데스크톱 OpenGL에서는 모든 셰이더 프로그램 앞에 다음과 같은 접두사를 붙여서 휴대용 셰이더를 쉽게 작성할 수 있는 QOpenGLShaderProgram 클래스가 있습니다:
#define highp #define mediump #define lowp
이를 통해 데스크톱 시스템에서 대부분의 GLSL/ES 셰이더 프로그램을 실행할 수 있습니다. 프로그래머는 GLSL/ES에 있는 기능으로만 제한하고 데스크톱에서만 작동하는 표준 변수 이름은 피해야 합니다.
간단한 셰이더 예제
program.addShaderFromSourceCode(QOpenGLShader::Vertex, "attribute highp vec4 vertex;\n" "uniform highp mat4 matrix;\n" "void main(void)\n" "{\n" " gl_Position = matrix * vertex;\n" "}"); program.addShaderFromSourceCode(QOpenGLShader::Fragment, "uniform mediump vec4 color;\n" "void main(void)\n" "{\n" " gl_FragColor = color;\n" "}"); program.link(); program.bind(); int vertexLocation = program.attributeLocation("vertex"); int matrixLocation = program.uniformLocation("matrix"); int colorLocation = program.uniformLocation("color");
위의 셰이더 프로그램을 활성화하면 다음과 같이 녹색 삼각형을 그릴 수 있습니다:
static GLfloat const triangleVertices[] = { 60.0f, 10.0f, 0.0f, 110.0f, 110.0f, 0.0f, 10.0f, 110.0f, 0.0f }; QColor color(0, 255, 0, 255); QMatrix4x4 pmvMatrix; pmvMatrix.ortho(rect()); program.enableAttributeArray(vertexLocation); program.setAttributeArray(vertexLocation, triangleVertices, 3); program.setUniformValue(matrixLocation, pmvMatrix); program.setUniformValue(colorLocation, color); glDrawArrays(GL_TRIANGLES, 0, 3); program.disableAttributeArray(vertexLocation);
바이너리 셰이더 및 프로그램
바이너리 셰이더는 QOpenGLShader::shaderId()의 반환 값에 glShaderBinary()
을 사용하여 지정할 수 있습니다. 그런 다음 바이너리가 포함된 QOpenGLShader 인스턴스를 addShader()로 셰이더 프로그램에 추가하고 link()로 일반적인 방식으로 연결할 수 있습니다.
바이너리 프로그램은 programId()의 반환 값에 glProgramBinaryOES()
을 사용하여 지정할 수 있습니다. 그런 다음 애플리케이션에서 link()를 호출하면 프로그램이 이미 지정되고 링크되었음을 알 수 있으므로 셰이더 프로그램에서 다른 작업을 수행할 수 있습니다. 셰이더 프로그램의 ID는 create() 함수를 사용하여 명시적으로 생성할 수 있습니다.
프로그램 바이너리 캐싱
Qt 5.9부터 디스크에 프로그램 바이너리를 캐싱하는 기능이 내장되어 있습니다. 이를 활성화하려면 addCacheableShaderFromSourceCode() 및 addCacheableShaderFromSourceFile() 사용으로 전환하세요. OpenGL ES 3.x 컨텍스트 또는 GL_ARB_get_program_binary
을 지원하는 경우 QStandardPaths::GenericCacheLocation 또는 QStandardPaths::CacheLocation 에서 프로그램 바이너리를 투명하게 캐시합니다. 지원이 제공되지 않는 경우 캐시 가능한 함수 변형을 호출하면 일반 함수와 동일하게 작동합니다.
참고: 일부 드라이버는 확장 기능을 광고하거나 OpenGL ES 3.0을 제공하더라도 바이너리 형식을 지원하지 않습니다. 이 경우 프로그램 바이너리 지원이 비활성화됩니다.
QOpenGLShader 를참조하세요 .
멤버 함수 문서
[explicit]
QOpenGLShaderProgram::QOpenGLShaderProgram(QObject *parent = nullptr)
새 셰이더 프로그램을 생성하여 parent 에 첨부합니다. 이 프로그램은 addShader()이 호출될 때까지 유효하지 않습니다.
셰이더 프로그램은 현재 QOpenGLContext 에 연결됩니다.
addShader()도 참조하세요 .
[virtual noexcept]
QOpenGLShaderProgram::~QOpenGLShaderProgram()
이 셰이더 프로그램을 삭제합니다.
bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const char *source)
지정된 type 및 source 의 셰이더를 이 프로그램에 등록합니다. addShaderFromSourceCode ()와 달리 이 함수는 컴파일을 수행하지 않습니다. 컴파일은 link()로 연기되며, link()는 Qt의 셰이더 디스크 캐시에서 프로그램 바이너리를 사용할 수 있기 때문에 컴파일이 전혀 일어나지 않을 수도 있습니다. 이 경우 일반적으로 성능이 크게 향상됩니다.
셰이더가 등록되었거나 캐시되지 않은 경우 컴파일에 성공하면 참을 반환하고 오류가 발생하면 거짓을 반환합니다. 컴파일 오류 메시지는 log()를 통해 검색할 수 있습니다.
예를 들어 Qt::AA_DisableShaderDiskCache 을 통해 디스크 캐시가 비활성화되어 있거나 OpenGL 컨텍스트가 컨텍스트 바이너리를 지원하지 않는 경우 이 함수를 호출하면 addShaderFromSourceCode()와 동일합니다.
addShaderFromSourceCode() 및 addCacheableShaderFromSourceFile()도 참조하세요 .
bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray &source)
이 함수는 오버로드된 함수입니다.
지정된 type 및 source 의 셰이더를 이 프로그램에 등록합니다. addShaderFromSourceCode ()와 달리 이 함수는 컴파일을 수행하지 않습니다. 컴파일은 link()로 연기되며, link()는 Qt의 셰이더 디스크 캐시에서 프로그램 바이너리를 사용할 수 있기 때문에 전혀 발생하지 않을 수도 있습니다. 이 경우 일반적으로 성능이 크게 향상됩니다.
셰이더가 등록되었거나 캐시되지 않은 경우 컴파일에 성공하면 참을 반환하고 오류가 발생하면 거짓을 반환합니다. 컴파일 오류 메시지는 log()를 통해 검색할 수 있습니다.
예를 들어 Qt::AA_DisableShaderDiskCache 을 통해 디스크 캐시가 비활성화되어 있거나 OpenGL 컨텍스트가 컨텍스트 바이너리를 지원하지 않는 경우 이 함수를 호출하면 addShaderFromSourceCode()와 동일합니다.
addShaderFromSourceCode() 및 addCacheableShaderFromSourceFile()도 참조하세요 .
bool QOpenGLShaderProgram::addCacheableShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString &source)
이 함수는 오버로드된 함수입니다.
지정된 type 및 source 의 셰이더를 이 프로그램에 등록합니다. addShaderFromSourceCode ()와 달리 이 함수는 컴파일을 수행하지 않습니다. 컴파일은 link()로 연기되며, link()는 Qt의 셰이더 디스크 캐시에서 프로그램 바이너리를 사용할 수 있기 때문에 전혀 발생하지 않을 수도 있습니다. 이 경우 일반적으로 성능이 크게 향상됩니다.
예를 들어 Qt::AA_DisableShaderDiskCache 를 통해 디스크 캐시가 비활성화되어 있거나 OpenGL 컨텍스트가 컨텍스트 바이너리를 지원하지 않는 경우 이 함수를 호출하면 addShaderFromSourceCode()와 동일합니다.
addShaderFromSourceCode() 및 addCacheableShaderFromSourceFile()도 참조하세요 .
bool QOpenGLShaderProgram::addCacheableShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString &fileName)
지정된 type 및 fileName 의 셰이더를 이 프로그램에 등록합니다. addShaderFromSourceFile ()와 달리 이 함수는 컴파일을 수행하지 않습니다. 컴파일은 link()로 연기되며, link()는 Qt의 셰이더 디스크 캐시에서 프로그램 바이너리를 사용할 수 있기 때문에 컴파일이 전혀 일어나지 않을 수도 있습니다. 이 경우 일반적으로 성능이 크게 향상됩니다.
파일을 성공적으로 읽으면 참을 반환하고, 파일을 열 수 없거나 캐시되지 않은 셰이더의 정상적인 컴파일에 실패하면 거짓을 반환합니다. 컴파일 오류 메시지는 log()를 통해 검색할 수 있습니다.
예를 들어 Qt::AA_DisableShaderDiskCache 를 통해 디스크 캐시가 비활성화되어 있거나 OpenGL 컨텍스트가 컨텍스트 바이너리를 지원하지 않는 경우 이 함수를 호출하면 addShaderFromSourceFile()와 동일합니다.
addShaderFromSourceFile() 및 addCacheableShaderFromSourceCode()도 참조하세요 .
bool QOpenGLShaderProgram::addShader(QOpenGLShader *shader)
컴파일된 shader 을 이 셰이더 프로그램에 추가합니다. 셰이더를 추가할 수 있으면 true
, 그렇지 않으면 false를 반환합니다.
shader 객체의 소유권은 호출자에게 유지됩니다. 이 QOpenGLShaderProgram 인스턴스가 삭제되어도 삭제되지 않습니다. 이를 통해 호출자는 여러 셰이더 프로그램에 동일한 셰이더를 추가할 수 있습니다.
addShaderFromSourceCode(), addShaderFromSourceFile(), removeShader(), link() 및 removeAllShaders()도 참조하세요 .
bool QOpenGLShaderProgram::addShaderFromSourceCode(QOpenGLShader::ShaderType type, const char *source)
source 을 지정된 type 의 셰이더로 컴파일하여 이 셰이더 프로그램에 추가합니다. 컴파일에 성공하면 true
을 반환하고, 그렇지 않으면 false를 반환합니다. 컴파일 오류 및 경고는 log()를 통해 확인할 수 있습니다.
이 함수는 QOpenGLShader 인스턴스를 먼저 생성하지 않고 버텍스 및 프래그먼트 셰이더를 셰이더 프로그램에 빠르게 추가하기 위한 단축키입니다.
addShader(), addShaderFromSourceFile(), removeShader(), link(), log() 및 removeAllShaders()도 참조하세요 .
bool QOpenGLShaderProgram::addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray &source)
이 함수는 오버로드된 함수입니다.
source 을 지정된 type 의 셰이더로 컴파일하여 이 셰이더 프로그램에 추가합니다. 컴파일에 성공하면 true
을 반환하고, 그렇지 않으면 false를 반환합니다. 컴파일 오류 및 경고는 log()를 통해 제공됩니다.
이 함수는 QOpenGLShader 인스턴스를 먼저 생성하지 않고 버텍스 및 프래그먼트 셰이더를 셰이더 프로그램에 빠르게 추가하기 위한 단축키입니다.
addShader(), addShaderFromSourceFile(), removeShader(), link(), log() 및 removeAllShaders()도 참조하세요 .
bool QOpenGLShaderProgram::addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString &source)
이 함수는 오버로드된 함수입니다.
source 을 지정된 type 의 셰이더로 컴파일하여 이 셰이더 프로그램에 추가합니다. 컴파일에 성공하면 true
을 반환하고, 그렇지 않으면 false를 반환합니다. 컴파일 오류 및 경고는 log()를 통해 제공됩니다.
이 함수는 QOpenGLShader 인스턴스를 먼저 생성하지 않고 버텍스 및 프래그먼트 셰이더를 셰이더 프로그램에 빠르게 추가하기 위한 단축키입니다.
addShader(), addShaderFromSourceFile(), removeShader(), link(), log() 및 removeAllShaders()도 참조하세요 .
bool QOpenGLShaderProgram::addShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString &fileName)
fileName 의 내용을 지정된 type 의 셰이더로 컴파일하여 이 셰이더 프로그램에 추가합니다. 컴파일에 성공하면 true
을 반환하고, 그렇지 않으면 false를 반환합니다. 컴파일 오류 및 경고는 log()를 통해 확인할 수 있습니다.
이 함수는 QOpenGLShader 인스턴스를 먼저 생성하지 않고 버텍스 및 프래그먼트 셰이더를 셰이더 프로그램에 빠르게 추가하기 위한 단축키입니다.
addShader() 및 addShaderFromSourceCode()도 참조하세요 .
int QOpenGLShaderProgram::attributeLocation(const char *name) const
이 셰이더 프로그램의 파라미터 목록에서 name 속성의 위치를 반환합니다. name 이 셰이더 프로그램에 유효한 어트리뷰트가 아닌 경우 -1을 반환합니다.
uniformLocation() 및 bindAttributeLocation()도 참조하십시오 .
int QOpenGLShaderProgram::attributeLocation(const QByteArray &name) const
이 함수는 오버로드된 함수입니다.
이 셰이더 프로그램의 파라미터 목록에서 name 속성의 위치를 반환합니다. name 이 셰이더 프로그램에 유효한 어트리뷰트가 아닌 경우 -1을 반환합니다.
uniformLocation() 및 bindAttributeLocation()도 참조하세요 .
int QOpenGLShaderProgram::attributeLocation(const QString &name) const
이 함수는 오버로드된 함수입니다.
이 셰이더 프로그램의 파라미터 목록에서 name 속성의 위치를 반환합니다. name 이 셰이더 프로그램에 유효한 어트리뷰트가 아닌 경우 -1을 반환합니다.
uniformLocation() 및 bindAttributeLocation()도 참조하세요 .
bool QOpenGLShaderProgram::bind()
이 셰이더 프로그램을 활성 QOpenGLContext 에 바인딩하여 현재 셰이더 프로그램으로 만듭니다. 이전에 바인딩된 셰이더 프로그램은 모두 해제됩니다. 이는 programId()에서 glUseProgram()
을 호출하는 것과 같습니다. 프로그램이 성공적으로 바인딩된 경우 true
을 반환하고, 그렇지 않으면 false 를 반환합니다. 셰이더 프로그램이 아직 링크되지 않았거나 다시 링크해야 하는 경우 이 함수는 link()를 호출합니다.
void QOpenGLShaderProgram::bindAttributeLocation(const char *name, int location)
name 속성을 지정된 location 에 바인딩합니다. 이 함수는 프로그램이 링크되기 전이나 후에 호출할 수 있습니다. 프로그램이 링크될 때 명시적으로 바인딩되지 않은 모든 속성은 자동으로 위치가 할당됩니다.
프로그램이 링크된 후에 이 함수를 호출하면 변경 사항을 적용하려면 프로그램을 다시 링크해야 합니다.
attributeLocation()도 참조하세요 .
void QOpenGLShaderProgram::bindAttributeLocation(const QByteArray &name, int location)
이것은 오버로드된 함수입니다.
name 속성을 지정된 location 에 바인딩합니다. 이 함수는 프로그램이 링크되기 전이나 후에 호출할 수 있습니다. 프로그램이 링크될 때 명시적으로 바인딩되지 않은 모든 속성은 자동으로 위치가 할당됩니다.
프로그램이 링크된 후에 이 함수를 호출하면 변경 사항을 적용하려면 프로그램을 다시 링크해야 합니다.
attributeLocation()도 참조하세요 .
void QOpenGLShaderProgram::bindAttributeLocation(const QString &name, int location)
이것은 오버로드된 함수입니다.
name 속성을 지정된 location 에 바인딩합니다. 이 함수는 프로그램이 링크되기 전이나 후에 호출할 수 있습니다. 프로그램이 링크될 때 명시적으로 바인딩되지 않은 모든 속성은 자동으로 위치가 할당됩니다.
프로그램이 링크된 후에 이 함수를 호출하면 변경 사항을 적용하려면 프로그램을 다시 링크해야 합니다.
attributeLocation()도 참조하세요 .
bool QOpenGLShaderProgram::create()
셰이더 프로그램의 ID를 즉시 생성하도록 요청합니다. 성공하면 true
, 그렇지 않으면 false
을 반환합니다.
이 함수는 주로 GL_OES_get_program_binary
과 같이 셰이더 프로그램 ID에서 직접 작동하는 다른 OpenGL 함수와 QOpenGLShaderProgram 을 결합할 때 유용합니다.
셰이더 프로그램이 정상적으로 사용되는 경우 셰이더 프로그램의 ID는 필요에 따라 생성됩니다.
programId()도 참조하세요 .
QList<float> QOpenGLShaderProgram::defaultInnerTessellationLevels() const
테셀레이션 제어 셰이더가 출력하지 않는 경우 테셀레이션 프리미티브 제너레이터에서 사용할 기본 내부 테셀레이션 레벨을 반환합니다. OpenGL 및 테셀레이션 셰이더에 대한 자세한 내용은 OpenGL 테셀레이션 셰이더를 참조하십시오.
내부 테셀레이션 레벨을 설명하는 QList 플로트를 반환합니다. 벡터에는 항상 두 개의 요소가 있지만 모든 테셀레이션 모드에 모두 적용되는 것은 아닙니다.
참고: 이 함수는 글로벌 OpenGL 상태 값을 반환합니다. 이 QOpenGLShaderProgram 인스턴스에만 국한되지 않습니다.
참고: 이 함수는 OpenGL >= 4.0에서만 지원되며 OpenGL ES 3.2에서는 유효한 결과를 반환하지 않습니다.
setDefaultInnerTessellationLevels() 및 defaultOuterTessellationLevels()도 참조하세요 .
QList<float> QOpenGLShaderProgram::defaultOuterTessellationLevels() const
테셀레이션 제어 셰이더가 출력하지 않는 경우 테셀레이션 프리미티브 제너레이터에서 사용할 기본 외부 테셀레이션 레벨을 반환합니다. OpenGL 및 테셀레이션 셰이더에 대한 자세한 내용은 OpenGL 테셀레이션 셰이더를 참조하십시오.
외부 테셀레이션 레벨을 설명하는 QList 플로트를 반환합니다. 벡터에는 항상 4개의 요소가 포함되지만 모든 테셀레이션 모드에 모두 적용되는 것은 아닙니다.
참고: 글로벌 OpenGL 상태 값을 반환합니다. 이 QOpenGLShaderProgram 인스턴스에만 국한되지 않습니다.
참고: 이 함수는 OpenGL >= 4.0에서만 지원되며 OpenGL ES 3.2에서는 유효한 결과를 반환하지 않습니다.
setDefaultOuterTessellationLevels() 및 defaultInnerTessellationLevels()도 참조하세요 .
void QOpenGLShaderProgram::disableAttributeArray(int location)
이전에 enableAttributeArray() 호출로 활성화된 이 셰이더 프로그램에서 location 의 버텍스 배열을 비활성화합니다.
enableAttributeArray(), setAttributeArray(), setAttributeValue() 및 setUniformValue()도 참조하십시오 .
void QOpenGLShaderProgram::disableAttributeArray(const char *name)
이 함수는 오버로드된 함수입니다.
이전에 enableAttributeArray() 호출로 활성화된 이 셰이더 프로그램에서 name 이라는 버텍스 배열을 비활성화합니다.
enableAttributeArray(), setAttributeArray(), setAttributeValue() 및 setUniformValue()도 참조하십시오 .
void QOpenGLShaderProgram::enableAttributeArray(int location)
이 셰이더 프로그램에서 location 의 버텍스 배열을 활성화하여 location 에서 setAttributeArray()로 설정한 값을 셰이더 프로그램에서 사용하도록 합니다.
disableAttributeArray(), setAttributeArray(), setAttributeValue() 및 setUniformValue()도 참조하십시오 .
void QOpenGLShaderProgram::enableAttributeArray(const char *name)
이 함수는 오버로드된 함수입니다.
이 셰이더 프로그램에서 name 라는 버텍스 배열을 활성화하여 name 에서 setAttributeArray()로 설정한 값을 셰이더 프로그램에서 사용하도록 합니다.
disableAttributeArray(), setAttributeArray(), setAttributeValue() 및 setUniformValue()도 참조하십시오 .
[static]
bool QOpenGLShaderProgram::hasOpenGLShaderPrograms(QOpenGLContext *context = nullptr)
이 시스템에서 OpenGL 셰이딩 언어(GLSL)로 작성된 셰이더 프로그램이 지원되는 경우 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
context 은 GLSL 확장을 확인하는 데 사용됩니다. context 가 nullptr
인 경우 QOpenGLContext::currentContext()가 사용됩니다.
bool QOpenGLShaderProgram::isLinked() const
이 셰이더 프로그램이 링크된 경우 true
, 그렇지 않으면 false를 반환합니다.
link()도 참조하십시오 .
[virtual]
bool QOpenGLShaderProgram::link()
이 프로그램에 추가된 셰이더를 addShader()로 연결합니다. 링크가 성공하면 true
, 그렇지 않으면 false를 반환합니다. 링크에 실패한 경우 log()로 오류 메시지를 검색할 수 있습니다.
서브클래스는 이 함수를 재정의하여 특정 셰이더 프로그램에서 사용할 어트리뷰트와 균일 변수를 초기화할 수 있습니다.
셰이더 프로그램이 이미 링크된 경우 이 함수를 다시 호출하면 강제로 다시 링크됩니다.
addCacheableShaderFromSourceCode() 또는 addCacheableShaderFromSourceFile()를 통해 셰이더를 이 프로그램에 추가한 경우 프로그램 바이너리가 지원되고 디스크에 캐시된 바이너리가 있는 경우 실제 컴파일 및 링크는 건너뜁니다. 대신 link()는 glProgramBinary()를 통해 바이너리 블롭으로 프로그램을 초기화합니다. 프로그램의 캐시된 버전이 없거나 다른 드라이버 버전으로 생성된 경우 셰이더는 소스에서 컴파일되고 프로그램은 정상적으로 링크됩니다. 따라서 호환되지 않을 수 있는 바이너리 형식에 대해 걱정할 필요 없이 그래픽 드라이버를 원활하게 업그레이드할 수 있습니다.
QString QOpenGLShaderProgram::log() const
명시적으로 지정된 소스 코드와 함께 지난 link() 또는 addShader() 중에 발생한 오류 및 경고를 반환합니다.
link()도 참조하세요 .
int QOpenGLShaderProgram::maxGeometryOutputVertices() const
지오메트리 셰이더가 출력할 수 있는 버텍스 수에 대한 하드웨어 제한을 반환합니다.
int QOpenGLShaderProgram::patchVertexCount() const
렌더링할 때 사용할 패치당 버텍스 수를 반환합니다.
참고: 글로벌 OpenGL 상태 값을 반환합니다. 이 QOpenGLShaderProgram 인스턴스에만 국한되지 않습니다.
setPatchVertexCount()도 참조하세요 .
GLuint QOpenGLShaderProgram::programId() const
이 셰이더 프로그램과 연관된 OpenGL 식별자를 반환합니다.
QOpenGLShader::shaderId()도 참조하십시오 .
void QOpenGLShaderProgram::release()
현재 QOpenGLContext 에서 활성 셰이더 프로그램을 해제합니다. 이는 glUseProgram(0)
을 호출하는 것과 같습니다.
bind()도 참조하십시오 .
void QOpenGLShaderProgram::removeAllShaders()
이전에 이 프로그램에 추가한 모든 셰이더를 제거합니다. 셰이더에 대한 QOpenGLShader 객체는 외부에서 생성된 경우 삭제되지 않습니다. QOpenGLShader 객체는 QOpenGLShaderProgram 에서 내부적으로 생성된 경우 삭제됩니다.
addShader() 및 removeShader()도 참조하세요 .
void QOpenGLShaderProgram::removeShader(QOpenGLShader *shader)
이 셰이더 프로그램에서 shader 을 제거합니다. 개체는 삭제되지 않습니다.
셰이더 프로그램은 현재 QOpenGLContext 에서 유효해야 합니다.
addShader(), link() 및 removeAllShaders()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(int location, const QVector2D *values, int stride = 0)
이 셰이더 프로그램에서 location 속성에 2D 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
location 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 location 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(int location, const QVector3D *values, int stride = 0)
이 셰이더 프로그램에서 location 속성에 3D 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
location 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 location 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(int location, const QVector4D *values, int stride = 0)
이 셰이더 프로그램에서 location 속성에 4D 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
location 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 location 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(int location, const GLfloat *values, int tupleSize, int stride = 0)
이 셰이더 프로그램에서 location 속성의 버텍스 values 배열을 설정합니다. tupleSize 은 버텍스당 컴포넌트 수(1, 2, 3 또는 4)를 나타내고 stride 은 버텍스 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
location 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 location 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(int location, GLenum type, const void *values, int tupleSize, int stride = 0)
이 셰이더 프로그램에서 location 속성의 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
type 은 values 배열의 요소 유형(일반적으로 GL_FLOAT
, GL_UNSIGNED_BYTE
등)을 나타냅니다. tupleSize 은 정점당 컴포넌트 수(1, 2, 3 또는 4)를 나타냅니다.
location 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 location 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeBuffer() 함수는 버텍스 버퍼 내의 오프셋으로 속성 배열을 설정하는 데 사용할 수 있습니다.
참고: 정규화가 활성화됩니다. 이를 원하지 않는 경우 QOpenGLFunctions 를 통해 glVertexAttribPointer를 직접 호출하세요.
setAttributeValue(), setUniformValue(), enableAttributeArray(), disableAttributeArray(), setAttributeBuffer()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(const char *name, const QVector2D *values, int stride = 0)
이것은 오버로드된 함수입니다.
이 셰이더 프로그램에서 name 이라는 속성에 2D 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값은 0으로 정점이 values 에 밀집되어 있음을 나타냅니다.
name 에서 enableAttributeArray()가 호출되면 배열이 활성화됩니다. 그렇지 않으면 name 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(const char *name, const QVector3D *values, int stride = 0)
이것은 오버로드된 함수입니다.
이 셰이더 프로그램에서 name 어트리뷰트에 3D 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값은 0으로 정점이 values 에 밀집되어 있음을 나타냅니다.
name 에서 enableAttributeArray()가 호출되면 배열이 활성화됩니다. 그렇지 않으면 name 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(const char *name, const QVector4D *values, int stride = 0)
이것은 오버로드된 함수입니다.
이 셰이더 프로그램에서 name 이라는 어트리뷰트에 4D 버텍스 values 의 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값은 0으로 정점이 values 에 밀집되어 있음을 나타냅니다.
name 에서 enableAttributeArray()가 호출되면 배열이 활성화됩니다. 그렇지 않으면 name 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(const char *name, const GLfloat *values, int tupleSize, int stride = 0)
이것은 오버로드된 함수입니다.
이 셰이더 프로그램에서 name 이라는 속성에 버텍스 values 의 배열을 설정합니다. tupleSize 은 버텍스당 컴포넌트 수(1, 2, 3, 4)를 나타내고 stride 은 버텍스 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
name 에서 enableAttributeArray()가 호출되면 배열이 활성화됩니다. 그렇지 않으면 name 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeValue(), setUniformValue(), enableAttributeArray() 및 disableAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeArray(const char *name, GLenum type, const void *values, int tupleSize, int stride = 0)
이것은 오버로드된 함수입니다.
이 셰이더 프로그램에서 name 이라는 어트리뷰트에 버텍스 values 배열을 설정합니다. stride 은 정점 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 정점이 values 에 밀집되어 있음을 나타냅니다.
type 은 values 배열의 요소 유형(보통 GL_FLOAT
, GL_UNSIGNED_BYTE
등)을 나타냅니다. tupleSize 은 정점당 컴포넌트 수(1, 2, 3 또는 4)를 나타냅니다.
name 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 name 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeBuffer() 함수는 버텍스 버퍼 내의 오프셋으로 속성 배열을 설정하는 데 사용할 수 있습니다.
setAttributeValue(), setUniformValue(), enableAttributeArray(), disableAttributeArray() 및 setAttributeBuffer()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeBuffer(int location, GLenum type, int offset, int tupleSize, int stride = 0)
이 셰이더 프로그램에서 현재 바인딩된 버텍스 버퍼의 특정 offset 에서 시작하여 location 의 어트리뷰트에 버텍스 값 배열을 설정합니다. stride 은 버텍스 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 버텍스가 값 배열에 밀집되어 있음을 나타냅니다.
type 은 정점 값 배열의 요소 유형(일반적으로 GL_FLOAT
, GL_UNSIGNED_BYTE
등)을 나타냅니다. tupleSize 은 정점당 컴포넌트 수(1, 2, 3 또는 4)를 나타냅니다.
location 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 location 에 setAttributeValue()로 지정된 값이 사용됩니다.
참고: 정규화가 활성화됩니다. 이를 원하지 않는 경우 QOpenGLFunctions 를 통해 glVertexAttribPointer를 직접 호출합니다.
setAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeBuffer(const char *name, GLenum type, int offset, int tupleSize, int stride = 0)
오버로드된 함수입니다.
현재 바인딩된 버텍스 버퍼의 특정 offset 에서 시작하여 이 셰이더 프로그램에서 name 라는 속성에 버텍스 값의 배열을 설정합니다. stride 은 버텍스 사이의 바이트 수를 나타냅니다. 기본값인 stride 값 0은 버텍스가 값 배열에 밀집되어 있음을 나타냅니다.
type 은 정점 값 배열의 요소 유형(일반적으로 GL_FLOAT
, GL_UNSIGNED_BYTE
등)을 나타냅니다. tupleSize 은 정점당 컴포넌트 수(1, 2, 3 또는 4)를 나타냅니다.
name 에서 enableAttributeArray()를 호출하면 배열이 활성화됩니다. 그렇지 않으면 name 에 setAttributeValue()로 지정된 값이 사용됩니다.
setAttributeArray()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat value)
현재 컨텍스트에서 location 의 속성을 value 으로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, const QColor &value)
현재 컨텍스트에서 location 의 속성을 value 으로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, const QVector2D &value)
현재 컨텍스트에서 location 의 속성을 value 으로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, const QVector3D &value)
현재 컨텍스트에서 location 의 속성을 value 으로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, const QVector4D &value)
현재 컨텍스트에서 location 의 속성을 value 으로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y)
현재 컨텍스트에서 location 의 속성을 2D 벡터 (x, y)로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z)
현재 컨텍스트에서 location 의 속성을 3D 벡터 (x, y, z)로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, const GLfloat *values, int columns, int rows)
현재 컨텍스트의 location 속성을 columns 요소로 구성된 values 의 콘텐츠로 설정합니다( 요소는 각각 rows 요소로 구성됨). rows 값은 1, 2, 3 또는 4여야 합니다. 이 함수는 일반적으로 행렬 값과 열 벡터를 설정하는 데 사용됩니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
현재 컨텍스트에서 location 의 속성을 4D 벡터 (x, y, z, w)로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 value 로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, const QColor &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 value 로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, const QVector2D &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 value 로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, const QVector3D &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 value 로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, const QVector4D &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 value 로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 2D 벡터 (x, y)로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 3D 벡터 (x, y, z)로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, const GLfloat *values, int columns, int rows)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 columns 요소와 rows 요소로 구성된 values 의 콘텐츠로 설정합니다. rows 값은 1, 2, 3 또는 4여야 합니다. 이 함수는 일반적으로 행렬 값과 열 벡터를 설정하는 데 사용됩니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 속성을 4D 벡터 (x, y, z, w)로 설정합니다.
setUniformValue()도 참조하세요 .
void QOpenGLShaderProgram::setDefaultInnerTessellationLevels(const QList<float> &levels)
테셀레이션 제어 셰이더가 levels 으로 출력하지 않는 경우 테셀레이션 프리미티브 제너레이터에서 사용할 기본 외부 테셀레이션 레벨을 설정합니다. OpenGL 및 테셀레이션 셰이더에 대한 자세한 내용은 OpenGL 테셀레이션 셰이더를 참조하십시오.
levels 인수는 2개의 부동 소수점으로 구성된 QList 이어야 합니다. 모든 값이 모든 테셀레이션 모드에 적합한 것은 아닙니다. 요소가 2개 미만인 벡터를 지정하면 나머지 요소는 기본값인 1로 지정됩니다.
참고: 이는 글로벌 OpenGL 상태를 수정하며 이 QOpenGLShaderProgram 인스턴스에만 국한되지 않습니다. QOpenGLShaderProgram 에서는 이를 적용하지 않으므로 필요한 경우 렌더링 함수에서 이 함수를 호출해야 합니다. 이 함수는 순전히 편의성 함수입니다.
참고: 이 함수는 OpenGL >= 4.0에서만 사용할 수 있으며 OpenGL ES 3.2에서는 지원되지 않습니다.
defaultInnerTessellationLevels() 및 setDefaultOuterTessellationLevels()도 참조하세요 .
void QOpenGLShaderProgram::setDefaultOuterTessellationLevels(const QList<float> &levels)
테셀레이션 제어 셰이더가 levels 으로 출력하지 않는 경우 테셀레이션 프리미티브 제너레이터에서 사용할 기본 외부 테셀레이션 레벨을 설정합니다. OpenGL 및 테셀레이션 셰이더에 대한 자세한 내용은 OpenGL 테셀레이션 셰이더를 참조하십시오.
levels 인수는 4개의 부동 소수점으로 구성된 QList 이어야 합니다. 모든 값이 모든 테셀레이션 모드에 적합한 것은 아닙니다. 요소가 4개 미만인 벡터를 지정하면 나머지 요소는 기본값인 1로 지정됩니다.
참고: 이는 글로벌 OpenGL 상태를 수정하며 이 QOpenGLShaderProgram 인스턴스에만 국한되지 않습니다. QOpenGLShaderProgram 에서는 이를 적용하지 않으므로 필요한 경우 렌더링 함수에서 이 함수를 호출해야 합니다. 이 함수는 순전히 편의성 함수입니다.
참고: 이 함수는 OpenGL >= 4.0에서만 사용할 수 있으며 OpenGL ES 3.2에서는 지원되지 않습니다.
defaultOuterTessellationLevels() 및 setDefaultInnerTessellationLevels()도 참조하세요 .
void QOpenGLShaderProgram::setPatchVertexCount(int count)
이 함수를 사용하여 패치의 버텍스 수를 count 에 지정할 수 있습니다. 패치는 테셀레이션 셰이더 스테이지에 의해 해석이 전적으로 정의되는 커스텀 OpenGL 프리미티브입니다. 따라서 이 함수를 호출하는 것은 테셀레이션 스테이지 셰이더가 포함된 QOpenGLShaderProgram 을 사용할 때만 의미가 있습니다. OpenGL 테셀레이션을 사용할 때 glDraw*()
함수로 렌더링할 수 있는 유일한 프리미티브는 GL_PATCHES
입니다.
이는 glPatchParameteri(GL_PATCH_VERTICES, count)를 호출하는 것과 동일합니다.
참고: 이 함수는 글로벌 OpenGL 상태를 수정하며 이 QOpenGLShaderProgram 인스턴스에 한정되지 않습니다. QOpenGLShaderProgram 에서는 이를 적용하지 않으므로 필요할 때 렌더 함수에서 호출해야 합니다. 이것은 순전히 편의용 함수입니다.
patchVertexCount()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, GLfloat value)
현재 컨텍스트에서 location 의 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, GLint value)
현재 컨텍스트에서 location 의 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix3x4 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 3x4 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat3x4와 같은 GLSL 유형을 인식하지 못합니다. 대신 이 함수는 유니폼을 vec4 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix4x2 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 4x2 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat4x2와 같은 GLSL 유형을 인식하지 못합니다. 대신 이 함수는 유니폼을 vec2 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix4x3 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 4x3 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat4x3과 같은 GLSL 유형을 인식하지 못합니다. 대신 유니폼을 vec3의 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix4x4 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 4x4 행렬 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QPoint &point)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 와 연결된 균일 변수를 point 의 x 및 y 좌표로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QPointF &point)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 와 연결된 균일 변수를 point 의 x 및 y 좌표로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QSize &size)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 와 연결된 균일 변수를 지정된 size 의 너비와 높이로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QSizeF &size)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 와 연결된 균일 변수를 지정된 size 의 너비와 높이로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QTransform &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 QTransform 값으로 지정된 3x3 변환 행렬 value 로 설정합니다.
셰이더에서 QTransform 값을 4x4 행렬로 설정하려면 setUniformValue(name, QMatrix4x4(value))
을 사용합니다.
void QOpenGLShaderProgram::setUniformValue(const char *name, const QVector2D &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QVector3D &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QVector4D &value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const GLfloat[2][2] value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 location 의 균일 변수를 2x2 행렬 value 로 설정합니다. 행렬 요소는 열 대소문자 순서로 지정해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const GLfloat[3][3] value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 location 의 균일 변수를 3x3 행렬 value 로 설정합니다. 행렬 요소는 열 대소문자 순서로 지정해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const GLfloat[4][4] value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 location 의 균일 변수를 4x4 행렬 value 로 설정합니다. 행렬 요소는 열 대소문자 순서로 지정해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 2D 벡터 (x, y)로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 3D 벡터 (x, y, z)로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 4D 벡터 (x, y, z, w)로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, GLuint value)
현재 컨텍스트에서 location 의 균일 변수를 value 로 설정합니다. 이 함수는 샘플러 값을 설정할 때 사용해야 합니다.
참고: 이 함수는 최신 OpenGL 버전에서 부호 없는 int 지원을 인식하지 못하므로 value 를 GLint로 취급하고 glUniform1i를 호출합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QColor &color)
현재 컨텍스트에서 location 의 균일 변수를 color 의 빨강, 초록, 파랑 및 알파 구성 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix2x2 &value)
현재 컨텍스트에서 location 의 균일 변수를 2x2 행렬 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix2x3 &value)
현재 컨텍스트에서 location 의 균일 변수를 2x3 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비제곱 행렬 지원, 즉 mat2x3과 같은 GLSL 유형을 인식하지 못합니다. 대신 유니폼을 vec3의 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix2x4 &value)
현재 컨텍스트에서 location 의 균일 변수를 2x4 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비제곱 행렬 지원, 즉 mat2x4와 같은 GLSL 유형을 인식하지 못합니다. 대신 유니폼을 vec4의 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix3x2 &value)
현재 컨텍스트에서 location 의 균일 변수를 3x2 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비제곱 행렬 지원, 즉 mat3x2와 같은 GLSL 유형을 인식하지 못합니다. 대신 이 함수는 유니폼을 vec2 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix3x3 &value)
현재 컨텍스트에서 location 의 균일 변수를 3x3 행렬 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix3x4 &value)
현재 컨텍스트에서 location 의 균일 변수를 3x4 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비제곱 행렬 지원, 즉 mat3x4와 같은 GLSL 유형을 인식하지 못합니다. 대신 이 함수는 유니폼을 vec4 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x2 &value)
현재 컨텍스트에서 location 의 균일 변수를 4x2 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat4x2와 같은 GLSL 유형을 인식하지 못합니다. 대신 이 함수는 유니폼을 vec2 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x3 &value)
현재 컨텍스트에서 location 의 균일 변수를 4x3 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat4x3과 같은 GLSL 유형을 인식하지 못합니다. 대신 유니폼을 vec3의 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QMatrix4x4 &value)
현재 컨텍스트에서 location 의 균일 변수를 4x4 행렬 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QPoint &point)
현재 컨텍스트에서 location 의 균일 변수를 point 의 x 및 y 좌표로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QPointF &point)
현재 컨텍스트에서 location 의 균일 변수를 point 의 x 및 y 좌표로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QSize &size)
현재 컨텍스트에서 location 의 균일 변수를 주어진 size 의 너비와 높이로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QSizeF &size)
현재 컨텍스트에서 location 의 균일 변수를 주어진 size 의 너비와 높이로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QTransform &value)
현재 컨텍스트에서 location 의 균일 변수를 QTransform 값으로 지정된 3x3 변환 행렬 value 로 설정합니다.
셰이더에서 QTransform 값을 4x4 행렬로 설정하려면 setUniformValue(location, QMatrix4x4(value))
을 사용합니다.
void QOpenGLShaderProgram::setUniformValue(int location, const QVector2D &value)
현재 컨텍스트에서 location 의 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QVector3D &value)
현재 컨텍스트에서 location 의 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, const QVector4D &value)
현재 컨텍스트에서 location 의 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y)
현재 컨텍스트에서 location 의 균일 변수를 2D 벡터 (x, y)로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z)
현재 컨텍스트에서 location 의 균일 변수를 3D 벡터 (x, y, z)로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
현재 컨텍스트에서 location 의 균일 변수를 4D 벡터 (x, y, z, w)로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, GLfloat value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, GLint value)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, GLuint value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 value 로 설정합니다. 이 함수는 샘플러 값을 설정할 때 사용해야 합니다.
참고: 이 함수는 최신 OpenGL 버전에서 부호 없는 int 지원을 인식하지 못하므로 value 를 GLint로 취급하고 glUniform1i를 호출합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const GLfloat[2][2] value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 2x2 행렬 value 로 설정합니다. 행렬 요소는 열 대소문자 순서로 지정해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const GLfloat[3][3] value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 3x3 행렬 value 로 설정합니다. 행렬 요소는 열 대소문자 순서로 지정해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const GLfloat[4][4] value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 4x4 행렬 value 로 설정합니다. 행렬 요소는 열 대소문자 순서로 지정해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QColor &color)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 color 의 빨강, 초록, 파랑 및 알파 구성 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix2x2 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 2x2 행렬 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix2x3 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 2x3 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat2x3과 같은 GLSL 유형을 인식하지 못합니다. 대신 유니폼을 vec3의 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix2x4 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 2x4 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat2x4와 같은 GLSL 유형을 인식하지 못합니다. 대신 유니폼을 vec4의 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix3x2 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 3x2 행렬 value 로 설정합니다.
참고: 이 함수는 최신 OpenGL 버전에 있는 비사각형 행렬 지원, 즉 mat3x2와 같은 GLSL 유형을 인식하지 못합니다. 대신 이 함수는 유니폼을 vec2 배열로 취급합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValue(const char *name, const QMatrix3x3 &value)
이 함수는 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수를 3x3 행렬 value 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const GLint *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const GLuint *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 요소로 설정합니다. 이 오버로드는 샘플러 값의 배열을 설정할 때 사용해야 합니다.
참고: 이 함수는 최신 OpenGL 버전에서 부호 없는 int 지원을 인식하지 못하므로 values 를 GLint로 취급하고 glUniform1iv를 호출합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix2x2 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 2x2 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix2x3 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 2x3 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix2x4 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 2x4 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix3x2 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 3x2 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix3x3 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 3x3 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix3x4 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 3x4 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x2 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 4x2 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x3 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 4x3 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QMatrix4x4 *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 4x4 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector2D *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 count 의 2D 벡터 요소 values 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector3D *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 3D 벡터 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const QVector4D *values, int count)
현재 컨텍스트에서 location 의 균일 변수 배열을 count 의 4D 벡터 요소 values 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(int location, const GLfloat *values, int count, int tupleSize)
현재 컨텍스트에서 location 의 균일 변수 배열을 values 의 count 요소로 설정합니다. 각 요소에는 tupleSize 구성 요소가 있습니다. tupleSize 은 1, 2, 3 또는 4여야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const GLint *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const GLuint *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 요소로 설정합니다. 이 오버로드는 샘플러 값의 배열을 설정할 때 사용해야 합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x2 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 2x2 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x3 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 2x3 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix2x4 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 2x4 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x2 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 3x2 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x3 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 3x3 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix3x4 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 3x4 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x2 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 4x2 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x3 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 4x3 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QMatrix4x4 *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 4x4 행렬 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QVector2D *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 2D 벡터 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QVector3D *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 3D 벡터 요소로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const QVector4D *values, int count)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 count 의 4D 벡터 요소 values 로 설정합니다.
setAttributeValue()도 참조하세요 .
void QOpenGLShaderProgram::setUniformValueArray(const char *name, const GLfloat *values, int count, int tupleSize)
이것은 오버로드된 함수입니다.
현재 컨텍스트에서 name 라는 균일 변수 배열을 values 의 count 요소로 설정합니다. 각 요소에는 tupleSize 구성 요소가 있습니다. tupleSize 은 1, 2, 3 또는 4여야 합니다.
setAttributeValue()도 참조하세요 .
QList<QOpenGLShader *> QOpenGLShaderProgram::shaders() const
addShader()를 사용하여 이 셰이더 프로그램에 추가된 모든 셰이더의 목록을 반환합니다.
addShader() 및 removeShader()도 참조하십시오 .
int QOpenGLShaderProgram::uniformLocation(const char *name) const
이 셰이더 프로그램의 파라미터 목록 내에서 균일 변수 name 의 위치를 반환합니다. name 가 이 셰이더 프로그램에 유효한 균일 변수가 아닌 경우 -1을 반환합니다.
attributeLocation()도 참조하십시오 .
int QOpenGLShaderProgram::uniformLocation(const QByteArray &name) const
이 함수는 오버로드된 함수입니다.
이 셰이더 프로그램의 파라미터 목록 내에서 균일 변수 name 의 위치를 반환합니다. name 가 이 셰이더 프로그램에 유효한 균일 변수가 아닌 경우 -1을 반환합니다.
attributeLocation()도 참조하세요 .
int QOpenGLShaderProgram::uniformLocation(const QString &name) const
이 함수는 오버로드된 함수입니다.
이 셰이더 프로그램의 파라미터 목록 내에서 균일 변수 name 의 위치를 반환합니다. name 가 이 셰이더 프로그램에 유효한 균일 변수가 아닌 경우 -1을 반환합니다.
attributeLocation()도 참조하세요 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.