이 페이지에서

QSurfaceFormat Class

QSurfaceFormat 클래스는 QSurface 의 형식을 나타냅니다. 더 보기...

헤더: #include <QSurfaceFormat>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

공개 타입

enum FormatOption { StereoBuffers, DebugContext, DeprecatedFunctions, ResetNotification, ProtectedContent }
flags FormatOptions
enum OpenGLContextProfile { NoProfile, CoreProfile, CompatibilityProfile }
enum RenderableType { DefaultRenderableType, OpenGL, OpenGLES, OpenVG }
enum SwapBehavior { DefaultSwapBehavior, SingleBuffer, DoubleBuffer, TripleBuffer }

공개 함수

QSurfaceFormat()
QSurfaceFormat(QSurfaceFormat::FormatOptions options)
QSurfaceFormat(const QSurfaceFormat &other)
~QSurfaceFormat()
int alphaBufferSize() const
int blueBufferSize() const
const QColorSpace &colorSpace() const
int depthBufferSize() const
int greenBufferSize() const
bool hasAlpha() const
int majorVersion() const
int minorVersion() const
QSurfaceFormat::FormatOptions options() const
QSurfaceFormat::OpenGLContextProfile profile() const
int redBufferSize() const
QSurfaceFormat::RenderableType renderableType() const
int samples() const
void setAlphaBufferSize(int size)
void setBlueBufferSize(int size)
(since 6.0) void setColorSpace(const QColorSpace &colorSpace)
void setDepthBufferSize(int size)
void setGreenBufferSize(int size)
void setMajorVersion(int major)
void setMinorVersion(int minor)
void setOption(QSurfaceFormat::FormatOption option, bool on = true)
void setOptions(QSurfaceFormat::FormatOptions options)
void setProfile(QSurfaceFormat::OpenGLContextProfile profile)
void setRedBufferSize(int size)
void setRenderableType(QSurfaceFormat::RenderableType type)
void setSamples(int numSamples)
void setStencilBufferSize(int size)
void setStereo(bool enable)
void setSwapBehavior(QSurfaceFormat::SwapBehavior behavior)
void setSwapInterval(int interval)
void setVersion(int major, int minor)
int stencilBufferSize() const
bool stereo() const
QSurfaceFormat::SwapBehavior swapBehavior() const
int swapInterval() const
bool testOption(QSurfaceFormat::FormatOption option) const
std::pair<int, int> version() const
QSurfaceFormat &operator=(const QSurfaceFormat &other)

정적 공용 멤버

QSurfaceFormat defaultFormat()
void setDefaultFormat(const QSurfaceFormat &format)
bool operator!=(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)
bool operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

상세 설명

이 형식에는 색상 버퍼(빨강, 녹색, 파랑)의 크기, 알파 버퍼의 크기, 깊이 및 스텐실 버퍼의 크기, 멀티샘플링을 위한 픽셀당 샘플 수가 포함됩니다. 또한, 이 형식에는 렌더링을 위한 OpenGL 프로필 및 버전, 스테레오 버퍼 활성화 여부, 스왑 동작과 같은 표면 구성 매개변수가 포함됩니다.

참고: 컨텍스트 또는 창 형식 문제를 해결할때는 로깅 범주 qt.qpa.gl 를 활성화하는 것이 도움이 될 수 있습니다. 플랫폼에 따라, 이는 OpenGL 초기화 및 QSurfaceFormat이 매핑되는 네이티브 비주얼 또는 프레임버퍼 구성과 관련하여 유용한 디버그 정보를 출력할 수 있습니다.

멤버 유형 문서

enum QSurfaceFormat::FormatOption
flags QSurfaceFormat::FormatOptions

이 열거형에는 ` QSurfaceFormat`와 함께 사용하는 형식 옵션이 포함되어 있습니다.

상수값설명
QSurfaceFormat::StereoBuffers0x0001서피스 형식에서 스테레오 버퍼를 요청하는 데 사용됩니다.
QSurfaceFormat::DebugContext0x0002추가 디버깅 정보가 포함된 디버그 컨텍스트를 요청하는 데 사용됩니다.
QSurfaceFormat::DeprecatedFunctions0x0004OpenGL 컨텍스트 프로필에 더 이상 사용되지 않는 함수가 포함되도록 요청하는 데 사용됩니다. 지정하지 않으면, 더 이상 사용되지 않는 것으로 표시된 기능을 지원하지 않는, 앞으로의 버전과 호환되는 컨텍스트를 얻게 됩니다. 이를 위해서는 OpenGL 버전 3.0 이상이 필요합니다.
QSurfaceFormat::ResetNotification0x0008OpenGL 컨텍스트 재설정에 대한 알림을 활성화합니다. 이후 컨텍스트의 ` isValid()` 함수를 통해 상태를 조회할 수 있습니다. 이 플래그를 설정하지 않는다고 해서 컨텍스트 상태 손실이 절대 발생하지 않는 것은 아니라는 점에 유의하십시오. 또한, 일부 구현에서는 이 플래그와 관계없이 컨텍스트 손실을 보고할 수도 있습니다. WGL이 포함된 Windows나 GLX가 포함된 Linux/X11(xcb)과 같이 컨텍스트 손실 모니터링을 동적으로 활성화하는 기능을 지원하는 플랫폼은 makeCurrent() 함수가 호출될 때마다 상태를 모니터링합니다. 이에 대한 자세한 내용은 isValid()을 참조하십시오.
QSurfaceFormat::ProtectedContent0x0010보호된 콘텐츠에 대한 액세스를 활성화합니다. 이를 통해 GPU는 DRM으로 보호된 비디오 콘텐츠와 같은 보호된 리소스(서피스, 버퍼, 텍스처)를 처리할 수 있습니다. 현재 EGL에서만 구현되어 있습니다.

FormatOptions 유형은 QFlags<FormatOption>에 대한 typedef입니다. 이 유형은 FormatOption 값들의 OR 조합을 저장합니다.

enum QSurfaceFormat::OpenGLContextProfile

이 열거형은 QSurfaceFormat::setMajorVersion() 및 QSurfaceFormat::setMinorVersion() 함수와 함께 OpenGL 컨텍스트 프로파일을 지정하는 데 사용됩니다.

프로필은 OpenGL 3.2 이상 버전에서 제공되며, 제한된 코어 프로필과 더 이상 사용되지 않는 지원 기능이 포함될 수 있는 호환성 프로필 중에서 선택하는 데 사용됩니다.

코어 프로파일에도 더 높은 버전에서 제거될 예정인 사용 중단된 기능이 포함될 수 있다는 점에 유의하십시오. 설정된 OpenGL 버전에서 코어 프로파일의 사용 중단된 기능에 액세스하려면 QSurfaceFormat 형식 옵션 QSurfaceFormat::DeprecatedFunctions 을 사용할 수 있습니다.

상수값설명
QSurfaceFormat::NoProfile0OpenGL 버전이 3.2보다 낮습니다. 3.2 이상에서는 CoreProfile과 동일합니다.
QSurfaceFormat::CoreProfile1OpenGL 버전 3.0에서 사용 중단된 기능은 사용할 수 없습니다.
QSurfaceFormat::CompatibilityProfile2이전 OpenGL 버전의 기능은 사용할 수 있습니다.

enum QSurfaceFormat::RenderableType

이 열거형은 서페이스의 렌더링 백엔드를 지정합니다.

상수값설명
QSurfaceFormat::DefaultRenderableType0x0기본값인, 지정되지 않은 렌더링 방법
QSurfaceFormat::OpenGL0x1데스크톱 OpenGL 렌더링
QSurfaceFormat::OpenGLES0x2OpenGL ES 2.0 렌더링
QSurfaceFormat::OpenVG0x4오픈 벡터 그래픽스 렌더링

enum QSurfaceFormat::SwapBehavior

이 열거형은 QSurfaceFormat 에서 서페이스의 스왑 동작을 지정하는 데 사용됩니다. 스왑 동작은 애플리케이션에 있어 대체로 투명하게 처리되지만, 렌더링 지연 시간 및 처리량과 같은 요소에는 영향을 미칩니다.

상수값설명
QSurfaceFormat::DefaultSwapBehavior0플랫폼의 기본값이자 명시되지 않은 스왑 동작입니다.
QSurfaceFormat::SingleBuffer1단일 버퍼링을 요청하는 데 사용되며, 중간 오프스크린 버퍼 없이 OpenGL 렌더링이 화면에 직접 수행될 경우 플리커링이 발생할 수 있습니다.
QSurfaceFormat::DoubleBuffer2이는 일반적으로 데스크톱 플랫폼의 기본 스왑 동작으로, 하나의 백 버퍼와 하나의 프론트 버퍼로 구성됩니다. 렌더링은 백 버퍼로 수행된 후, 구현 방식에 따라 백 버퍼와 프론트 버퍼가 스왑되거나 백 버퍼의 내용이 프론트 버퍼로 복사됩니다.
QSurfaceFormat::TripleBuffer3이 스왑 동작은 렌더링 속도가 화면 재생률을 간신히 따라가는 상황에서 프레임 누락 위험을 줄이기 위해 때때로 사용됩니다. 플랫폼에 따라 파이프라인 동작이 개선되어 GPU 사용 효율이 약간 높아질 수도 있습니다. 트리플 버퍼링은 메모리 사용량과 지연 시간이 한 프레임분 추가되는 대가를 치러야 하며, 기본 플랫폼에 따라 지원되지 않을 수도 있습니다.

멤버 함수 문서

QSurfaceFormat::QSurfaceFormat()

기본값으로 초기화된 QSurfaceFormat을 생성합니다.

참고: 플랫폼 및 OpenGL 구현 간에 최고의 이식성을 보장하기 위해기본적으로 OpenGL 2.0이 요청됩니다.

QSurfaceFormat::QSurfaceFormat(QSurfaceFormat::FormatOptions options)

주어진 형식 options 을 사용하여 QSurfaceFormat을 생성합니다.

QSurfaceFormat::QSurfaceFormat(const QSurfaceFormat &other)

other 의 복사본을 생성합니다.

[noexcept] QSurfaceFormat::~QSurfaceFormat()

QSurfaceFormat 를 삭제합니다.

int QSurfaceFormat::alphaBufferSize() const

색상 버퍼의 알파 채널 크기를 비트 단위로 가져옵니다.

setAlphaBufferSize()도 참조하십시오 .

int QSurfaceFormat::blueBufferSize() const

색상 버퍼의 파란색 채널 크기를 비트 단위로 가져옵니다.

setBlueBufferSize()도 참조하십시오 .

const QColorSpace &QSurfaceFormat::colorSpace() const

색 공간을 반환합니다.

setColorSpace()도 참조하십시오 .

[static] QSurfaceFormat QSurfaceFormat::defaultFormat()

전역 기본 표면 형식을 반환합니다.

setDefaultFormat()가 호출되지 않은 경우, 이는 기본 생성된 QSurfaceFormat 입니다.

setDefaultFormat()도 참조하십시오 .

int QSurfaceFormat::depthBufferSize() const

깊이 버퍼의 크기를 반환합니다.

setDepthBufferSize()도 참조하십시오 .

int QSurfaceFormat::greenBufferSize() const

색상 버퍼의 녹색 채널 크기를 비트 단위로 가져옵니다.

setGreenBufferSize()도 참조하십시오 .

bool QSurfaceFormat::hasAlpha() const

알파 버퍼 크기가 0보다 크면 ` true `를 반환합니다.

이는 해당 서페이스가 픽셀 단위 반투명 효과와 함께 사용될 수 있음을 의미합니다.

int QSurfaceFormat::majorVersion() const

OpenGL의 주요 버전을 반환합니다.

기본 버전은 2.0입니다.

setMajorVersion()도 참조하십시오 .

int QSurfaceFormat::minorVersion() const

OpenGL의 부버전을 반환합니다.

setMinorVersion()도 참조하십시오 .

QSurfaceFormat::FormatOptions QSurfaceFormat::options() const

현재 설정된 형식 옵션을 반환합니다.

setOption(), setOptions(), testOption()도 참조하십시오 .

QSurfaceFormat::OpenGLContextProfile QSurfaceFormat::profile() const

구성된 OpenGL 컨텍스트 프로필을 가져옵니다.

요청된 OpenGL 버전이 3.2 미만인 경우 이 설정은 무시됩니다.

setProfile()도 참조하십시오 .

int QSurfaceFormat::redBufferSize() const

색상 버퍼의 빨간색 채널 크기를 비트 단위로 가져옵니다.

setRedBufferSize()도 참조하십시오 .

QSurfaceFormat::RenderableType QSurfaceFormat::renderableType() const

렌더링 가능한 유형을 가져옵니다.

데스크톱 OpenGL, OpenGL ES 및 OpenVG 중에서 선택합니다.

setRenderableType()도 참조하십시오 .

int QSurfaceFormat::samples() const

멀티샘플링이 활성화된 경우 픽셀당 샘플 수를 반환하고, 멀티샘플링이 비활성화된 경우 ` -1 `를 반환합니다. 기본 반환 값은 ` -1`입니다.

setSamples()도 참조하십시오 .

void QSurfaceFormat::setAlphaBufferSize(int size)

색상 버퍼의 알파 채널 비트에 원하는 size 를 설정합니다.

alphaBufferSize()함수도 참조하십시오 .

void QSurfaceFormat::setBlueBufferSize(int size)

색상 버퍼의 파란색 채널에 원하는 size 을 비트 단위로 설정합니다.

blueBufferSize()도 참조하십시오 .

[since 6.0] void QSurfaceFormat::setColorSpace(const QColorSpace &colorSpace)

선호하는 colorSpace 를 설정합니다.

예를 들어, 이를 통해 sRGB를 지원하는 플랫폼에서 sRGB를 지원하는 기본 프레임버퍼를 가진 창을 요청할 수 있습니다.

참고: 요청된 색 공간이 플랫폼에서 지원되지 않는경우 , 해당 요청은 무시됩니다. 창 생성 후 QSurfaceFormat 를 조회하여 색 공간 요청이 수용될 수 있는지 확인하십시오.

참고: 이 설정은 창의 기본 프레임버퍼가 주어진 색 공간에서 업데이트 및 블렌딩을 수행할 수 있는지 여부를 제어합니다. 이 설정 자체로는 애플리케이션의 출력이 변경되지 않습니다. 애플리케이션의 렌더링 코드는 표준 선형 연산을 사용하는 대신 주어진 색 공간에서 업데이트 및 블렌딩이 수행되도록 하려면 적절한 OpenGL 호출을 통해 이를 활성화해야 합니다.

이 함수는 Qt 6.0에서 도입되었습니다.

colorSpace()도 참조하십시오 .

[static] void QSurfaceFormat::setDefaultFormat(const QSurfaceFormat &format)

전역 기본 표면 format 을 설정합니다.

이 형식은 QOpenGLContext, QWindow, QOpenGLWidget 및 이와 유사한 클래스에서 기본적으로 사용됩니다.

해당 클래스 고유의 setFormat() 함수를 사용하여 인스턴스 단위로 언제든지 재정의할 수 있습니다. 그러나 애플리케이션 시작 시 모든 창의 형식을 한 번에 설정하는 것이 더 편리한 경우가 많습니다. 또한 이 함수를 통해 형식을 설정하면 Qt가 내부적으로 생성한 컨텍스트와 서피스까지 포함하여 모든 컨텍스트와 서피스가 동일한 형식을 사용하게 되므로, 공유 컨텍스트가 필요한 경우에도 올바른 동작이 보장됩니다.

defaultFormat()도 참조하십시오 .

void QSurfaceFormat::setDepthBufferSize(int size)

최소 깊이 버퍼 크기를 size 로 설정합니다.

depthBufferSize()도 참조하십시오 .

void QSurfaceFormat::setGreenBufferSize(int size)

색상 버퍼의 녹색 채널 비트에 원하는 size 값을 설정합니다.

greenBufferSize()함수도 참조하십시오 .

void QSurfaceFormat::setMajorVersion(int major)

원하는 OpenGL 버전( major )을 설정합니다.

majorVersion()도 참조하십시오 .

void QSurfaceFormat::setMinorVersion(int minor)

원하는 OpenGL 버전( minor )을 설정합니다.

기본 버전은 2.0입니다.

minorVersion()도 참조하십시오 .

void QSurfaceFormat::setOption(QSurfaceFormat::FormatOption option, bool on = true)

on 가 true인 경우 형식 옵션 option 을 설정하고, 그렇지 않은 경우 해당 옵션을 해제합니다.

옵션이 제대로 적용되었는지 확인하려면, 표면/컨텍스트 생성 후 실제 형식과 요청된 형식을 비교하십시오.

setOptions(), options(), testOption()도 참조하십시오 .

void QSurfaceFormat::setOptions(QSurfaceFormat::FormatOptions options)

options 로 형식 옵션을 설정합니다.

옵션이 올바르게 적용되었는지 확인하려면, 표면/컨텍스트 생성 후 실제 형식과 요청된 형식을 비교하십시오.

options() 및 testOption()도 참조하십시오 .

void QSurfaceFormat::setProfile(QSurfaceFormat::OpenGLContextProfile profile)

원하는 OpenGL 컨텍스트 profile 를 설정합니다.

요청된 OpenGL 버전이 3.2 미만이면 이 설정은 무시됩니다.

profile()도 참조하십시오 .

void QSurfaceFormat::setRedBufferSize(int size)

색상 버퍼의 빨간색 채널 비트에 원하는 size 값을 설정합니다.

redBufferSize()도 참조하십시오 .

void QSurfaceFormat::setRenderableType(QSurfaceFormat::RenderableType type)

원하는 렌더링 가능한 객체 type 를 설정합니다.

데스크톱 OpenGL, OpenGL ES 및 OpenVG 중에서 선택합니다.

renderableType()도 참조하십시오 .

void QSurfaceFormat::setSamples(int numSamples)

멀티샘플링이 활성화되어 있을 때 픽셀당 샘플 수를 numSamples 로 설정하십시오. 기본적으로 멀티샘플링은 비활성화되어 있습니다.

samples()도 참조하십시오 .

void QSurfaceFormat::setStencilBufferSize(int size)

선호하는 스텐실 버퍼 크기를 size 비트로 설정합니다.

stencilBufferSize()도 참조하십시오 .

void QSurfaceFormat::setStereo(bool enable)

enable 가 true인 경우 스테레오 버퍼링을 활성화하고, 그렇지 않은 경우 비활성화합니다.

스테레오 버퍼링은 기본적으로 비활성화되어 있습니다.

스테레오 버퍼링은 왼쪽 눈과 오른쪽 눈용 이미지를 생성하기 위해 추가적인 컬러 버퍼를 제공합니다.

stereo()도 참조하십시오 .

void QSurfaceFormat::setSwapBehavior(QSurfaceFormat::SwapBehavior behavior)

서페이스의 스왑 behavior 을 설정합니다.

스왑 동작은 싱글, 더블 또는 트리플 버퍼링 중 어느 것을 사용할지 지정합니다. 기본값인 DefaultSwapBehavior 는 플랫폼의 기본 스왑 동작을 적용합니다.

swapBehavior()도 참조하십시오 .

void QSurfaceFormat::setSwapInterval(int interval)

선호하는 스왑 간격을 설정합니다. 스왑 간격은 버퍼 스왑이 발생하기 전에 표시되는 최소 비디오 프레임 수를 지정합니다. 이 설정을 사용하면 창에 그려지는 GL 그래픽을 화면의 수직 갱신 주기와 동기화할 수 있습니다.

interval 값을 0으로 설정하면 수직 갱신 동기화가 해제되며, 0보다 큰 값을 설정하면 수직 동기화가 활성화됩니다. 예를 들어 interval 을 10과 같이 더 큰 값으로 설정하면, 버퍼 스왑 사이에 10회의 수직 리트레이스가 발생합니다.

기본 간격은 1입니다.

스왑 간격 변경이 기본 플랫폼에서 지원되지 않을 수 있습니다. 이 경우 요청은 아무런 오류 메시지 없이 무시됩니다.

swapInterval()도 참조하십시오 .

void QSurfaceFormat::setVersion(int major, int minor)

원하는 OpenGL 버전( major )과 OpenGL 버전( minor )을 설정합니다.

기본 버전은 2.0입니다.

version()도 참조하십시오 .

int QSurfaceFormat::stencilBufferSize() const

스텐실 버퍼의 크기를 비트 단위로 반환합니다.

setStencilBufferSize()도 참조하십시오 .

bool QSurfaceFormat::stereo() const

스테레오 버퍼링이 활성화되어 있으면 true 를 반환하고, 그렇지 않으면 false를 반환합니다. 스테레오 버퍼링은 기본적으로 비활성화되어 있습니다.

setStereo()도 참조하십시오 .

QSurfaceFormat::SwapBehavior QSurfaceFormat::swapBehavior() const

구성된 스왑 동작을 반환합니다.

setSwapBehavior()도 참조하십시오 .

int QSurfaceFormat::swapInterval() const

스왑 간격을 반환합니다.

setSwapInterval()도 참조하십시오 .

bool QSurfaceFormat::testOption(QSurfaceFormat::FormatOption option) const

option 형식 옵션이 설정되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

options()도 참조하십시오 .

std::pair<int, int> QSurfaceFormat::version() const

OpenGL 버전을 나타내는 std::pair<int, int>를 반환합니다.

버전 확인에 유용합니다. 예를 들어, format.version() >= std::pair(3, 2)

setVersion()도 참조하십시오 .

QSurfaceFormat &QSurfaceFormat::operator=(const QSurfaceFormat &other)

이 객체에 ` other `를 할당합니다.

관련 비회원

[noexcept] bool operator!=(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

두 QSurfaceFormat 객체( lhs 및 rhs )의 모든 옵션이 동일하면 false 를 반환하고, 그렇지 않으면 true 를 반환합니다.

[noexcept] bool operator==(const QSurfaceFormat &lhs, const QSurfaceFormat &rhs)

두 QSurfaceFormat 객체 lhs 와 rhs 의 모든 옵션이 동일할 경우, true 를 반환합니다.

© 2026 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.