필수 Direct3D 9 기능

애플리케이션이 Microsoft Direct3D 버전 9_1, 9_2 및 9_3의 기능에 완전히 액세스하려면 사용자 모드 드라이버가 특정 하드웨어 기능을 노출해야 합니다. 이러한 기능은 사용자 모드 드라이버의 GetCaps 함수에서 반환되는 D3DCAPS9 구조의 관점에서 표현됩니다. 기능을 지원함을 나타내려면 드라이버는 이러한 D3DCAPS9 멤버를 각 플래그 값의 비트 OR로 설정해야 합니다.

Direct3D 수준 9_1에 대한 최소 기능

D3DCAPS9 멤버 플래그 값
Caps2

D3DCAPS2_DYNAMICTEXTURES

D3DCAPS2_FULLSCREENGAMMA

PresentationIntervals

D3DPRESENT_INTERVAL_IMMEDIATE

D3DPRESENT_INTERVAL_ONE

PrimitiveMiscCaps

D3DPMISCCAPS_COLORWRITEENABLE

ShadeCaps

D3DPSHADECAPS_ALPHAGOURAUDBLEND

D3DPSHADECAPS_COLORGOURAUDRGB

D3DPSHADECAPS_FOGGOURAUD

D3DPSHADECAPS_SPECULARGOURAUDRGB

TextureFilterCaps

D3DPTFILTERCAPS_MINFLINEAR

D3DPTFILTERCAPS_MINFPOINT

D3DPTFILTERCAPS_MAGFLINEAR

D3DPTFILTERCAPS_MAGFPOINT

TextureCaps

(참고 참조)

D3DPTEXTURECAPS_ALPHA

D3DPTEXTURECAPS_CUBEMAP

D3DPTEXTURECAPS_MIPMAP

D3DPTEXTURECAPS_PERSPECTIVE

TextureAddressCaps

D3DPTADDRESSCAPS_CLAMP

D3DPTADDRESSCAPS_INDEPENDENTUV

D3DPTADDRESSCAPS_MIRROR

D3DPTADDRESSCAPS_WRAP

TextureOpCaps

D3DTEXOPCAPS_DISABLE

D3DTEXOPCAPS_MODULATE

D3DTEXOPCAPS_SELECTARG1

D3DTEXOPCAPS_SELECTARG2

SrcBlendCaps

D3DPBLENDCAPS_INVDESTALPHA

D3DPBLENDCAPS_INVDESTCOLOR

D3DPBLENDCAPS_INVSRCALPHA

D3DPBLENDCAPS_ONE

D3DPBLENDCAPS_SRCALPHA

D3DPBLENDCAPS_ZERO

DestBlendCaps

D3DPBLENDCAPS_ONE

D3DPBLENDCAPS_INVSRCALPHA

D3DPBLENDCAPS_INVSRCCOLOR

D3DPBLENDCAPS_SRCALPHA

D3DPBLENDCAPS_ZERO

StretchRectFilterCaps

D3DPTFILTERCAPS_MAGFLINEAR

D3DPTFILTERCAPS_MAGFPOINT

D3DPTFILTERCAPS_MINFLINEAR

D3DPTFILTERCAPS_MINFPOINT

ZCmpCaps

D3DPCMPCAPS_ALWAYS

D3DPCMPCAPS_LESSEQUAL

RasterCaps

D3DPRASTERCAPS_DEPTHBIAS

D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS

StencilCaps

D3DSTENCILCAPS_TWOSIDED

MaxTextureWidth

2048

MaxTextureHeight

2048

NumSimultaneousRTs

1

MaxSimultaneousTextures

8

MaxTextureBlendStages

8

PixelShaderVersion

D3DPS_VERSION(2,0)

MaxPrimitiveCount

65535

MaxVertexIndex

65534

MaxVolumeExtent

256

MaxTextureRepeat

0 또는 128 이상이어야 합니다.

MaxAnisotropy

2

MaxVertexW

0.f

참고 이러한 요구 사항도 적용됩니다.

  • 또한 드라이버는 TextureCaps 멤버를 D3DPTEXTURECAPS_NONPOW2CONDITIONAL 및 D3DPTEXTURECAPS_POW2 값으로 설정하거나 둘 다로 설정해야 합니다.
  • 드라이버가 이벤트에 응답할 때 D3DDDIARG_CREATEQUERY. QueryType 은 D3DDDIQUERYTYPE_EVENT 응답할 때 항상 이벤트의 BOOL 값을 TRUE 로 설정해야 합니다. CreateQueryD3DDDIARG_CREATEQUERY 참조하세요.

Direct3D 수준 9_2에 대한 최소 기능

이러한 기능은 Direct3D 수준 9_1에 나열된 기능 외에도 설정해야 합니다.

D3DCAPS9 멤버 플래그 값
PrimitiveMiscCaps

D3DPMISCCAPS_SEPARATEALPHABLEND

DevCaps2

D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET

TextureAddressCaps

D3DPTADDRESSCAPS_MIRRORONCE

VolumeTextureAddressCaps

D3DPTADDRESSCAPS_MIRRORONCE

MaxTextureWidth

2048

MaxTextureHeight

2048

MaxTextureRepeat

0 또는 2048 이상이어야 합니다.

VertexShaderVersion

D3DVS_VERSION(2,0)

MaxAnisotropy

16

MaxPrimitiveCount

1048575

MaxVertexIndex

1048575

MaxVertexW

100000000000.f

참고 이 요구 사항도 적용됩니다.

  • 드라이버가 z-testing 쿼리에 응답하면 여기서 D3DDDIARG_CREATEQUERY. QueryType 은 D3DDDIQUERYTYPE_OCCLUSION 응답할 때 항상 쿼리의 UINT 값을 0이 아닌 값으로 설정해야 합니다. CreateQueryD3DDDIARG_CREATEQUERY 참조하세요.

Direct3D 수준 9_3의 최소 기능

이러한 기능은 Direct3D 수준 9_1 및 9_2에 나열된 기능 외에 설정해야 합니다.

D3DCAPS9 멤버 플래그 값
PS20Caps-Caps>

D3DPS20CAPS_GRADIENTINSTRUCTIONS

PrimitiveMiscCaps

D3DPMISCCAPS_INDEPENDENTWRITEMASKS

D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING

TextureAddressCaps

D3DPTADDRESSCAPS_BORDER

MaxTextureWidth

4096

MaxTextureHeight

4096

MaxTextureRepeat

0 또는 8192 이상이어야 합니다.

NumSimultaneousRTs

4

PS20Caps-NumInstructionSlots>

512(픽셀 셰이더 버전 2b)

PS20Caps-NumTemps>

32(픽셀 셰이더 버전 2b)

VS20Caps-NumTemps>

32(꼭짓점 셰이더 버전 2a)

MaxVertexShaderConst

256(꼭짓점 셰이더 버전 2a)

VertexShaderVersion

D3DVS_VERSION(3,0)(참고 참조)

참고 D3DVS_VERSION(3,0)의 VertexShaderVersion 값은 인스턴스화 지원을 보장합니다. Direct3D 10Level 9는 셰이더 모델 3.0을 노출하지 않습니다.