QOpenGLShaderProgram

이 클래스는 GLSL과 GLSL/ES로 작성된 셰이더 프로그램을 지원한다. QOpenGLShader와 QOpenGLShaderProgram은 vertex shader와 fragment shader를 컴파일하고 링킹하는 세부 작업들로부터 프로그래머를 보호해준다.

 

다음 예제는 제공된 셰이더 소스코드를 사용하여 버텍스 셰이더 프로그램을 생성하는 것이다. 컴파일 및 링크가 완료되면 셰이더 프로그램은 QOpenGLShaderProgram::bind():를 호출하여 현재 QOpenGLContext에서 활성화된다.

QOpenGLShader shader(QOpenGLShader::Vertex);
shader.compileSourceCode(code);

QOpenGLShaderProgram program(context);
program.addShader(&shader);
program.link();

program.bind();

 

 

QOpenGLShaderProgram::addShaderFromSourceCode

지정된 타입의 셰이더로 소스를 컴파일하여 셰이더 프로그램에 추가한다. 컴파일이 성공적이었다면 true를 반환하고, 그 외의 경우는 false를 반환한다. 해당 컴파일 에러와 경고는 log() 함수를 통해 만들어진다.

 

이 함수는 먼저 QOpenGLShader의 인스턴스를 생성하지 않고도 셰이더 프로그램에 간편하게 버텍스와 프래그먼트 셰이더를 추가하기 위해 고안되었다.

 

 

 

참고 자료

 

 

 

 

 

 

 

'QT' 카테고리의 다른 글

[QT] QApplication  (0) 2025.05.02
[QT] CMake로 환경 설정  (0) 2025.04.30
[QT6] windeployqt를 통한 환경 exe 파일 구동 설정  (0) 2025.04.17