Direct3D9: (WARN) :Ignoring redundant SetTextureStageState
개인 프로젝트를 하던 중 Direct3D 9의 Debug Output Level을 최대로 올리고 실행했다. 보이는 건 토할 정도로 많은 워닝 메시지들뿐.
...
Direct3D9: (WARN) :Ignoring redundant SetTextureStageState. Stage: 0, State: 1
Direct3D9: (WARN) :Ignoring redundant SetTextureStageState. Stage: 0, State: 2
Direct3D9: (WARN) :Ignoring redundant SetTextureStageState. Stage: 0, State: 3
Direct3D9: (WARN) :Ignoring redundant SetTextureStageState. Stage: 0, State: 4
...
중복된 텍스쳐 스테이지 스테이트 설정때문에 나는 워닝이다. 이 워닝을 보지 않으려면 랜더링 코드 이전에 IDirect3DStateBlock9으로 사용할 디바이스 스테이트들을 캡쳐하고 랜더링 코드에서 사용하면 된다.
혹시나 싶어 다이렉트 X 예제(Tutorial 5: Textures)를 실행 시켜봐도 이런 워닝은 여전히 발생한다.
처음 SetTextureStageState
함수를 호출할 때도 워닝이 발생하는 경우가 있는데, 그건 기본값때문에 그렇다.
-----------------------------------------
texture stage : 0
D3DTSS_COLOROP :4
D3DTSS_COLORARG1 :2
D3DTSS_COLORARG2 :1
D3DTSS_ALPHAOP :2
D3DTSS_ALPHAARG1 :2
D3DTSS_ALPHAARG2 :1
D3DTSS_BUMPENVMAT00 :0
D3DTSS_BUMPENVMAT01 :0
D3DTSS_BUMPENVMAT10 :0
D3DTSS_BUMPENVMAT11 :0
D3DTSS_TEXCOORDINDEX :0
D3DTSS_BUMPENVLSCALE :0
D3DTSS_BUMPENVLOFFSET :0
D3DTSS_TEXTURETRANSFORMFLAGS :0
D3DTSS_COLORARG0 :1
D3DTSS_ALPHAARG0 :1
D3DTSS_RESULTARG :1
D3DTSS_CONSTANT :0
-----------------------------------------
texture stage : n [1,7]
D3DTSS_COLOROP :1
D3DTSS_COLORARG1 :2
D3DTSS_COLORARG2 :1
D3DTSS_ALPHAOP :1
D3DTSS_ALPHAARG1 :2
D3DTSS_ALPHAARG2 :1
D3DTSS_BUMPENVMAT00 :0
D3DTSS_BUMPENVMAT01 :0
D3DTSS_BUMPENVMAT10 :0
D3DTSS_BUMPENVMAT11 :0
D3DTSS_TEXCOORDINDEX :n
D3DTSS_BUMPENVLSCALE :0
D3DTSS_BUMPENVLOFFSET :0
D3DTSS_TEXTURETRANSFORMFLAGS :0
D3DTSS_COLORARG0 :1
D3DTSS_ALPHAARG0 :1
D3DTSS_RESULTARG :1
D3DTSS_CONSTANT :0
이제 원인을 확실하게 알았으니 맘 편하게 무시. Debug Output Level은 한 단계 낮추고 실행하기로 했다.