반응형
DX SDK 튜토리얼을 대충 보면.. 이상한 것이 생겼다.
(Tutorial 01: Direct3D 10 Basics  중...)

DXGI_SWAP_CHAIN_DESC sd;
    ZeroMemory( &sd, sizeof(sd) );
    sd.BufferCount = 1;
    sd.BufferDesc.Width = 640;
    sd.BufferDesc.Height = 480;
    sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    sd.BufferDesc.RefreshRate.Numerator = 60;
    sd.BufferDesc.RefreshRate.Denominator = 1;
    sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
    sd.OutputWindow = g_hWnd;
    sd.SampleDesc.Count = 1;
    sd.SampleDesc.Quality = 0;
    sd.Windowed = TRUE;

    if( FAILED( D3D10CreateDeviceAndSwapChain( NULL, D3D10_DRIVER_TYPE_REFERENCE, NULL,
                     0, D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice ) ) )
    {
        return FALSE;
    }

음.. 스왑체인.. XNA에서도 비슷한걸 본 기억이 있어서 MDSN을 뒤져보니


D3D10CreateDeviceAndSwapChain(
    IDXGIAdapter *pAdapter,
    D3D10_DRIVER_TYPE DriverType,
    HMODULE Software,
    UINT Flags,
    UINT SDKVersion,
    DXGI_SWAP_CHAIN_DESC *pSwapChainDesc,
    IDXGISwapChain **ppSwapChain,
    ID3D10Device **pDevice
);

이렇게 되어있다... 음.. DX9때도 뭔가 복잡해서 그만뒀는데...
뭔가 이것도 복잡하지만 쉽게쉽게 파헤쳐보자..

뭐 그래픽어댑터는 NULL이 Default 값으로 쓰인다.
그래픽어댑터가 뜻하는건 그래픽카드를 말하는듯 싶다.

DriverType은 D3D10_DRIVER_TYPE_REFERENCE로 되어있는데 이것은
그래픽카드가 10을 지원하니 하드웨어를 사용하라.. 정도인거 같다.
다른값을 쓸 경우엔 소프트웨어로 돌릴수 있는듯한데 DX10이 쉐이더 4이상을 쓰려고
공부하는거니까.. 그냥 하드웨어로 하고 넘어가도록하자...
(사실 뒤지기가 귀찮다)

HMODULE Software는 코드의 핸들인데 뭐 그냥 그런게 있다고 알아두고 넘어가고

Flag는 디바이를 어떻게 사용할것인지에 대한것인데 그냥 디폴트인 0으로 놓고 쓰자
(자세한건 알아보기 귀찮아서...)

SDK버전은 이미 10으로 설치했으므로 D3D10_SDK_VERSION으로 하면된다.
이미 10.1을 라데온 그래픽카드에서 지원해 준다.
(그러나 10.1은 뭐 아직 10도 제대로 못하는데..-_-)

pSwapChainDesc은 그냥 새로 추가된 스왑체인에 관한 속성인듯하다.
ppSwapChain은 생성된 스왑체인의 속성을 받고
pDevice에선 디바이스의 속성을 받는듯 하다...


음.. 열심히 내용을 뒤지다보니...
어느 좋은 홈피를 찾았는데...


.....

연구실형의 홈페이지인듯하다...
이런..-_-

DX10에 관련된 좋은 내용들이 많으니...
(사실 위에꺼도 이리저리 뒤져보긴 했는데 거의 여기에 다 있어서...그냥 배꼈다)

젠장...

문제의 그 홈페이지 : http://duckii.egloos.com/
반응형

+ Recent posts