인프런 커뮤니티 질문&답변
CommandQueue 질문
해결된 질문
작성
·
276
0
RenderBegin()과 RenderEnd()의 실행 과정이 제가 이해한 내용이 맞는지 모르겠어서 질문드립니다.
만약 [0] [1] 의 더블버퍼가 있다고 가정할 때, swapChain의 BackBuffer가 1일 경우 RenderBegin에서 1의 상태를 <화면출력> 상태에서
<외주 결과물> 상태로 바꿔주고 GPU가 사용할 수 있게 만든 후, GPU의 처리가 끝나고 결과물을 화면에 출력하기위해 RenderEnd를 이용하여 1의 상태를 <외주 결과물>에서 <화면 출력>으로 바꿔주고 GPU는 이어서 0을 사용해야하기 때문에 SwapChain의 백버퍼를 0으로 바꿔준다고 이해했는데.. 이게 맞나요? 쓰면서도 제가 무슨 말 을하는지 모르겠네요...
퀴즈
51%나 틀려요. 한번 도전해보세요!
윈도우즈 API 기반 게임 프로그램의 주 실행 루프가 콘솔 프로그램과 다른 근본적인 이유는 무엇일까요?
백그라운드에서만 실행되기 때문에
시스템 자원을 최소한으로 사용해야 해서
표준 입출력을 사용하지 않기 때문에
사용자 입력을 기다리지 않고 지속적으로 화면을 업데이트해야 해서
답변 1
1
Rookiss
지식공유자
그 부분은 후반에 RenderTarget을 다룰 때 계속 해보기 때문에, 일단 넘어가셔도 됩니다.
RenderBegin/RenderEnd 보다는 사실 OMSetRenderTarget 이라는 API가 핵심인데
결과적으로 우리는 2개의 버퍼를 만들어서 매 프레임마다 교체를 해주고 있습니다.
2개 버퍼 중 하나는 실제 출력 용도,
하나는 다음 프레임 화면을 그리는 대상으로 사용하는 것이죠.





