Zuordnung von DirectX 9-Funktionen zu DirectX 11-APIsMap DirectX 9 features to DirectX 11 APIs

Erfahren Sie, wie die Features Ihres Direct3D 9-Spiels zu Direct3D 11 und zur Universellen Windows-Plattform (UWP) zugeordnet werden.Understand how the features your Direct3D 9 game uses will translate to Direct3D 11 and the Universal Windows Platform (UWP).

Siehe auch Planen Ihres DirectX-Portsund wichtige Änderungen von Direct3D 9 bis Direct3D 11.Also see Plan your DirectX port, and Important changes from Direct3D 9 to Direct3D 11.

Zuordnen von Direct3D 9-Features zu DirectX 11-APIsMapping Direct3D 9 to DirectX 11 APIs

Direct3D ist nach wie vor die Grundlage von DirectX-Grafiken; die API wurde seit DirectX 9 jedoch geändert:Direct3D is still the foundation of DirectX graphics, but the API has changed since DirectX 9:

  • Zum Einrichten von Grafikadaptern wird die Microsoft DirectX Graphics Infrastructure (DXGI) verwendet.Microsoft DirectX Graphics Infrastructure (DXGI) is used to set up graphics adapters. Verwenden Sie DXGI zum Auswählen von Pufferformaten, Erstellen von Swapchains, Darstellen von Frames und Erstellen freigegebener Ressourcen.Use DXGI to select buffer formats, create swap chains, present frames, and create shared resources. Siehe Übersicht über DXGI.See DXGI Overview.
  • Ein Direct3D-Gerätekontext wird zum Festlegen des Pipelinestatus und Generieren von Renderbefehlen verwendet.A Direct3D device context is used to set pipeline state and generate rendering commands. In den meisten unserer Beispiele wird ein unmittelbarer Kontext verwendet, um direkt auf dem Gerät zu rendern. Direct3D 11 unterstützt auch das Multithread-Rendering, wobei dann verzögerte Kontexte verwendet werden.Most of our samples use an immediate context to render directly to the device; Direct3D 11 also supports multithreaded rendering, in which case deferred contexts are used. Siehe Einführung in ein Gerät in Direct3D 11.See Introduction to a Device in Direct3D 11.
  • Einige Funktionen sind veraltet und nicht mehr verfügbar. Zu beachten ist insbesondere, dass es die Pipeline mit fester Funktion nicht mehr gibt.Some features have been deprecated, most notably the fixed function pipeline. Siehe Veraltete Funktionen.See Deprecated Features.

Eine vollständige Liste der Direct3D 11-Funktionen finden Sie unter Features von Direct3D 11 und Features von Direct3D 11.1.For a full list of Direct3D 11 features, see Direct3D 11 Features and Direct3D 11 Features.

Umstellung von Direct2D 9 auf Direct2D 11Moving from Direct2D 9 to Direct2D 11

Direct2D (Windows) ist weiterhin ein wichtiger Bestandteil von DirectX-Grafiken und Windows.Direct2D (Windows) is still an important part of DirectX graphics and Windows. Sie können mit Direct2D weiterhin 2D-Spiele und Direct3D-basierte Überlagerungen (HUDs) zeichnen.You can still use Direct2D to draw 2D games, and to draw overlays (HUDs) on top of Direct3D.

Direct2D baut auf Direct3D auf. 2D-Spiele können mit beiden APIs implementiert werden.Direct2D runs on top of Direct3D; 2D games can be implemented using either API. Ein mit Direct3D implementiertes 2D-Spiel kann z. B. die orthografische Projektion verwenden, Z-Werte zum Steuern der Zeichnungsreihenfolge von Grundtypen festlegen und mit Pixelshadern Spezialeffekte hinzufügen.For example, a 2D game implemented using Direct3D can use orthographic projection, set Z-values to control the drawing order of primitives, and use pixel shaders to add special effects.

Da Direct2D auf Direct3D basiert, verwendet es ebenfalls DXGI und Gerätekontexte.Since Direct2D is based on Direct3D it also uses DXGI and device contexts. Siehe Übersicht über die Direct2D-API.See Direct2D API Overview.

Die DirectWrite-API bietet Unterstützung für formatierten Text mit Direct2D.The DirectWrite API adds support for formatted text using Direct2D. Siehe Einführung in DirectWrite.See Introducing DirectWrite.

Ersetzen veralteter HilfsbibliothekenReplace deprecated helper libraries

D3DX und DXUT sind veraltet und können nicht in UWP-Spielen verwendet werden.D3DX and DXUT are deprecated and cannot be used by UWP games. Von diesen Hilfsbibliotheken wurden Ressourcen für Aufgaben wie das Laden von Texturen und Gittern bereitgestellt.These helper libraries provided resources for tasks such as texture loading and mesh loading.

Umstellung von Shaderprogrammen von FX auf HLSLMove shader programs from FX to HLSL

Die D3DX-Hilfsprogrammbibliothek (D3DX 9, D3DX 10 und D3DX 11), einschließlich Effects, ist veraltet und für UWP nicht mehr verfügbar.The D3DX utility library (D3DX 9, D3DX 10, and D3DX 11), including Effects, is deprecated for UWP. Alle DirectX-Spiele für UWP steuern die Grafikpipeline mit HLSL ohne Effects.All DirectX games for UWP drive the graphics pipeline using HLSL without Effects.

Visual Studio verwendet FXC weiterhin im Hintergrund zum Kompilieren von Shaderobjekten.Visual Studio still uses FXC under the hood to compile shader objects. UWP-Spielshader werden vorab kompiliert.UWP game shaders are compiled ahead of time. Der Bytecode wird zur Laufzeit geladen. Anschließend wird jede Shaderressource während des entsprechenden Renderingdurchgangs an die Grafikpipeline gebunden.The bytecode is loaded at runtime, then each shader resource is bound to the graphics pipeline during the appropriate rendering pass. Shader sollten in eigene separate HLSL-Dateien verschoben werden, und Renderingtechniken sollten im C++-Code implementiert werden.Shaders should be moved to their own separate .HLSL files and rendering techniques should be implemented in your C++ code.

Einen kurzen Überblick über das Laden von Shaderressourcen finden Sie unter Einfache Portierung von Direct3D 9 zu UWP.For a quick look at loading shader resources see Simple port from Direct3D 9 to UWP.

In Direct3D 11 wurde das Shader-Modell 5 eingeführt, das Direct3D-Funktionsebene 11 _ 0 (oder höher) erfordert.Direct3D 11 introduced Shader Model 5, which requires Direct3D feature level 11_0 (or above). Siehe Funktionen von HLSL-Shadermodell 5 für Direct3D 11.See HLSL Shader Model 5 Features for Direct3D 11.

Ersetzen von XNAMath und D3DXMathReplace XNAMath and D3DXMath

Code mit XNAMath (oder D3DXMath) sollte zu DirectXMath migriert werden.Code using XNAMath (or D3DXMath) should be migrated to DirectXMath. DirectXMath enthält Typen, die zwischen x86, x64 und ARM portierbar sind.DirectXMath includes types that are portable across x86, x64, and ARM. Siehe Codemigration von der XNAMath-Bibliothek.See Code Migration from the XNA Math Library.

Beachten Sie, dass sich Float-Typen von DirectXMath zur Verwendung mit Shadern eignen.Note that DirectXMath float types are convenient for use with shaders. Mit XMFLOAT4 und XMFLOAT4X4 können z. B. auf einfache Weise Daten für Konstantenpuffer ausgerichtet werden.For example XMFLOAT4 and XMFLOAT4X4 conveniently align data for constant buffers.

Ersetzen von DirectSound durch XAudio2 (und Hintergrundaudio)Replace DirectSound with XAudio2 (and background audio)

DirectSound wird für UWP nicht unterstützt:DirectSound is not supported for UWP:

  • Verwenden Sie XAudio2, um Ihrem Spiel Soundeffekte hinzuzufügen.Use XAudio2 to add sound effects to your game.

Ersetzen von DirectInput durch XInput-und Windows-Runtime-APIsReplace DirectInput with XInput and Windows Runtime APIs

DirectInput wird für UWP nicht unterstützt:DirectInput is not supported for UWP:

  • Verwenden Sie CoreWindow-Eingabeereignisrückrufe für Maus-, Tastatur- und Toucheingabe.Use CoreWindow input event callbacks for mouse, keyboard, and touch input.
  • Verwenden Sie XInput 1.4 zur Unterstützung von Gamecontrollern (und Gamecontroller-Headsets).Use XInput 1.4 for game controller support (and game controller headset support). Wenn Sie eine freigegebene Codebasis für Desktop und UWP verwenden, finden Sie unter XInput-Versionen Informationen zur Abwärtskompatibilität.If you are using a shared code base for desktop and UWP, see XInput Versions for information on backwards compatibility.
  • Registrieren Sie EdgeGesture-Ereignisse, wenn die App-Leiste in Ihrem Spiel verwendet werden muss.Register for EdgeGesture events if your game needs to use the app bar.

Verwenden von Microsoft Media Foundation anstelle von DirectShowUse Microsoft Media Foundation instead of DirectShow

DirectShow ist nicht mehr in der DirectX-API (oder der Windows-API) enthalten.DirectShow is no longer part of the DirectX API (or the Windows API). Microsoft Media Foundation stellt Videoinhalte mithilfe von freigegebenen Oberflächen für Direct3D bereit.Microsoft Media Foundation provides video content to Direct3D using shared surfaces. Siehe Direct3D 11-Video-APIs.See Direct3D 11 Video APIs.

Ersetzen von DirectPlay durch NetzwerkcodeReplace DirectPlay with networking code

Microsoft DirectPlay ist veraltet und nicht mehr verfügbar.Microsoft DirectPlay has been deprecated. Falls Ihr Spiel Netzwerkdienste verwendet, müssen Sie Netzwerkcode bereitstellen, der den UWP-Anforderungen entspricht.If your game uses network services, you need to provide networking code that complies with UWP requirements. Verwenden Sie die folgenden APIs:Use the following APIs:

In den folgenden Artikeln finden Sie Informationen zum Hinzufügen von Netzwerkfunktionen und Deklarieren der Netzwerkunterstützung im Paketmanifest Ihrer App.The following articles help you add networking features and declare support for networking in your app's package manifest.

Beachten Sie, dass alle UWP-Apps (einschließlich Spiele) bestimmte Hintergrundaufgaben verwenden, um die Verbindung aufrechtzuerhalten, während die App angehalten ist.Note that all UWP apps (including games) use specific types of background tasks to maintain connectivity while the app is suspended. Wenn Ihr Spiel den Verbindungsstatus aufrechterhalten muss, während es angehalten ist, gehen Sie wie unter Grundlagen zum Netzwerk beschrieben vor.If your game needs to maintain connection state while suspended see Networking basics.

FunktionszuordnungFunction mapping

Ziehen Sie beim Konvertieren von Code von Direct3D 9 in Direct3D 11 die folgende Tabelle zurate.Use the following table to help convert code from Direct3D 9 to Direct3D 11. Diese Informationen können Ihnen auch die Unterscheidung zwischen Gerät und Gerätekontext erleichtern.This can also help distinguish between the device and device context.

Direct3D9Direct3D9 Direct3D 11-EntsprechungDirect3D 11 Equivalent

IDirect3DDevice9IDirect3DDevice9

ID3D11Device2ID3D11Device2

ID3D11DeviceContext2ID3D11DeviceContext2

Die Grafikpipelinestufen werden unter Grafikpipeline erläutert.The graphics pipeline stages are described in Graphics Pipeline.

IDirect3D9IDirect3D9

IDXGIFactory2IDXGIFactory2

IDXGIAdapter2IDXGIAdapter2

"Idxgidevice3IDXGIDevice3

IDirect3DDevice9::P erneut gesendet.IDirect3DDevice9::Present

IDXGISwapChain1::Present1IDXGISwapChain1::Present1

IDirect3DDevice9:: TestCooperativeLevelIDirect3DDevice9::TestCooperativeLevel

Nennen Sie IDXGISwapChain1::P resent1 , wobei das DXGI_PRESENT_TEST-Flag festgelegt ist.Call IDXGISwapChain1::Present1 with the DXGI_PRESENT_TEST flag set.

IDirect3DBaseTexture9IDirect3DBaseTexture9

IDirect3DTexture9IDirect3DTexture9

IDirect3DCubeTexture9IDirect3DCubeTexture9

IDirect3DVolumeTexture9IDirect3DVolumeTexture9

IDirect3DIndexBuffer9IDirect3DIndexBuffer9

IDirect3DVertexBuffer9IDirect3DVertexBuffer9

ID3D11BufferID3D11Buffer

ID3D11Texture1DID3D11Texture1D

ID3D11Texture2DID3D11Texture2D

ID3D11Texture3DID3D11Texture3D

ID3D11ShaderResourceViewID3D11ShaderResourceView

ID3D11RenderTargetViewID3D11RenderTargetView

ID3D11DepthStencilViewID3D11DepthStencilView

IDirect3DVertexShader9IDirect3DVertexShader9

IDirect3DPixelShader9IDirect3DPixelShader9

ID3D11VertexShaderID3D11VertexShader

ID3D11PixelShaderID3D11PixelShader

IDirect3DVertexDeclaration9IDirect3DVertexDeclaration9

ID3D11InputLayoutID3D11InputLayout

IDirect3DDevice9:: \* Trend List StateIDirect3DDevice9::SetRenderState

IDirect3DDevice9:: setsamplerstateIDirect3DDevice9::SetSamplerState

ID3D11BlendState1ID3D11BlendState1

ID3D11DepthStencilStateID3D11DepthStencilState

ID3D11RasterizerState1ID3D11RasterizerState1

ID3D11SamplerStateID3D11SamplerState

IDirect3DDevice9::D rawindexedprimitivIDirect3DDevice9::DrawIndexedPrimitive

IDirect3DDevice9::D rawprimitivIDirect3DDevice9::DrawPrimitive

Verknüpfung id3d11devicecontext aus::D RAWID3D11DeviceContext::Draw

Verknüpfung id3d11devicecontext aus::D rawindebugID3D11DeviceContext::DrawIndexed

Verknüpfung id3d11devicecontext aus::D rawindexedinstangeleitetID3D11DeviceContext::DrawIndexedInstanced

Verknüpfung id3d11devicecontext aus::D rawinstanzierteID3D11DeviceContext::DrawInstanced

Verknüpfung id3d11devicecontext aus:: iasetprimitivetopologyID3D11DeviceContext::IASetPrimitiveTopology

Verknüpfung id3d11devicecontext aus::D rawautoID3D11DeviceContext::DrawAuto

IDirect3DDevice9:: BeginSceneIDirect3DDevice9::BeginScene

IDirect3DDevice9:: EndSceneIDirect3DDevice9::EndScene

IDirect3DDevice9::D rawprimitiveupIDirect3DDevice9::DrawPrimitiveUP

IDirect3DDevice9::D rawindexedprimitiveupIDirect3DDevice9::DrawIndexedPrimitiveUP

Keine direkte EntsprechungNo direct equivalent

IDirect3DDevice9:: ShowCursorIDirect3DDevice9::ShowCursor

IDirect3DDevice9:: setcurrsorpositionIDirect3DDevice9::SetCursorPosition

IDirect3DDevice9:: setcurrsorpropertiesIDirect3DDevice9::SetCursorProperties

Verwenden Sie standardmäßige Cursor-APIs.Use standard cursor APIs.

IDirect3DDevice9:: ResetIDirect3DDevice9::Reset

"LOST device" und POOL_MANAGED sind nicht mehr verfügbar.LOST device and POOL_MANAGED no longer exist. IDXGISwapChain1::P resent1 kann mit einem DXGI_ERROR_DEVICE_REMOVED Rückgabewert fehlschlagen.IDXGISwapChain1::Present1 can fail with a DXGI_ERROR_DEVICE_REMOVED return value.

IDirect3DDevice9: drawrectpatchIDirect3DDevice9:DrawRectPatch

IDirect3DDevice9: drawtpatchIDirect3DDevice9:DrawTriPatch

IDirect3DDevice9: lightenableIDirect3DDevice9:LightEnable

IDirect3DDevice9: MultiplyTransformIDirect3DDevice9:MultiplyTransform

IDirect3DDevice9: setlightIDirect3DDevice9:SetLight

IDirect3DDevice9: setmaterialIDirect3DDevice9:SetMaterial

IDirect3DDevice9: setnpatchmodeIDirect3DDevice9:SetNPatchMode

IDirect3DDevice9: setTransformIDirect3DDevice9:SetTransform

IDirect3DDevice9: setf-VFIDirect3DDevice9:SetFVF

IDirect3DDevice9: settexturestagestateIDirect3DDevice9:SetTextureStageState

Die Pipeline mit fester Funktion ist veraltet und nicht mehr verfügbar.The fixed-function pipeline has been deprecated.

IDirect3DDevice9: checkdepthstencilmatchIDirect3DDevice9:CheckDepthStencilMatch

IDirect3DDevice9: CheckDeviceFormatIDirect3DDevice9:CheckDeviceFormat

IDirect3DDevice9: getde vicecapsIDirect3DDevice9:GetDeviceCaps

IDirect3DDevice9: ValidateDeviceIDirect3DDevice9:ValidateDevice

Funktionalitäts Bits werden durch Funktionsebenen ersetzt.Capability bits are replaced by feature levels. Nur einige wenige Format- und Funktionsverwendungsfälle sind für alle Funktionsebenen optional.Only a few format and feature usage cases are optional for any given feature level. Diese können mit ID3D11Device:: checkfeaturesupport und ID3D11Device:: checkformatsupportüberprüft werden.These can be checked with ID3D11Device::CheckFeatureSupport and ID3D11Device::CheckFormatSupport.

OberflächenformatzuordnungSurface format mapping

Ziehen Sie beim Konvertieren von Direct3D 9-Formaten in DXGI-Formate die folgende Tabelle heran.Use the following table to convert Direct3D 9 formats into DXGI formats.

Direct3D 9-FormatDirect3D 9 Format Direct3D 11-FormatDirect3D 11 Format

D3DFMT_UNKNOWND3DFMT_UNKNOWN

DXGI_FORMAT_UNKNOWNDXGI_FORMAT_UNKNOWN

D3DFMT_R8G8B8D3DFMT_R8G8B8

Nicht verfügbarNot available

D3DFMT_A8R8G8B8D3DFMT_A8R8G8B8

DXGI_FORMAT_B8G8R8A8_UNORMDXGI_FORMAT_B8G8R8A8_UNORM

DXGI_FORMAT_B8G8R8A8_UNORM_SRGBDXGI_FORMAT_B8G8R8A8_UNORM_SRGB

D3DFMT_X8R8G8B8D3DFMT_X8R8G8B8

DXGI_FORMAT_B8G8R8X8_UNORMDXGI_FORMAT_B8G8R8X8_UNORM

DXGI_FORMAT_B8G8R8X8_UNORM_SRGBDXGI_FORMAT_B8G8R8X8_UNORM_SRGB

D3DFMT_R5G6B5D3DFMT_R5G6B5

DXGI_FORMAT_B5G6R5_UNORMDXGI_FORMAT_B5G6R5_UNORM

D3DFMT_X1R5G5B5D3DFMT_X1R5G5B5

Nicht verfügbarNot available

D3DFMT_A1R5G5B5D3DFMT_A1R5G5B5

DXGI_FORMAT_B5G5R5A1_UNORMDXGI_FORMAT_B5G5R5A1_UNORM

D3DFMT_A4R4G4B4D3DFMT_A4R4G4B4

DXGI_FORMAT_B4G4R4A4_UNORMDXGI_FORMAT_B4G4R4A4_UNORM

D3DFMT_R3G3B2D3DFMT_R3G3B2

Nicht verfügbarNot available

D3DFMT_A8D3DFMT_A8

DXGI_FORMAT_A8_UNORMDXGI_FORMAT_A8_UNORM

D3DFMT_A8R3G3B2D3DFMT_A8R3G3B2

Nicht verfügbarNot available

D3DFMT_X4R4G4B4D3DFMT_X4R4G4B4

Nicht verfügbarNot available

D3DFMT_A2B10G10R10D3DFMT_A2B10G10R10

DXGI_FORMAT_R10G10B10A2DXGI_FORMAT_R10G10B10A2

D3DFMT_A8B8G8R8D3DFMT_A8B8G8R8

DXGI_FORMAT_R8G8B8A8_UNORMDXGI_FORMAT_R8G8B8A8_UNORM

DXGI_FORMAT_R8G8B8A8_UNORM_SRGBDXGI_FORMAT_R8G8B8A8_UNORM_SRGB

D3DFMT_X8B8G8R8D3DFMT_X8B8G8R8

Nicht verfügbarNot available

D3DFMT_G16R16D3DFMT_G16R16

DXGI_FORMAT_R16G16_UNORMDXGI_FORMAT_R16G16_UNORM

D3DFMT_A2R10G10B10D3DFMT_A2R10G10B10

Nicht verfügbarNot available

D3DFMT_A16B16G16R16D3DFMT_A16B16G16R16

DXGI_FORMAT_R16G16B16A16_UNORMDXGI_FORMAT_R16G16B16A16_UNORM

D3DFMT_A8P8D3DFMT_A8P8

Nicht verfügbarNot available

D3DFMT_P8D3DFMT_P8

Nicht verfügbarNot available

D3DFMT_L8D3DFMT_L8

DXGI_FORMAT_R8_UNORMDXGI_FORMAT_R8_UNORM

Hinweis    Verwenden Sie. r Swizzle in Shader, um rot zu anderen Komponenten zu duplizieren, um das Direct3D 9-Verhalten zu erhalten. Note   Use .r swizzle in shader to duplicate red to other components to get Direct3D 9 behavior.
 

D3DFMT_A8L8D3DFMT_A8L8

DXGI_FORMAT_R8G8_UNORMDXGI_FORMAT_R8G8_UNORM

Hinweis    Verwenden Sie Swizzle. rrrg im Shader, um rot zu duplizieren, und bewegen Sie grün zu den Alpha Komponenten, um Direct3D 9-Verhalten zu erhalten. Note   Use swizzle .rrrg in shader to duplicate red and move green to the alpha components to get Direct3D 9 behavior.
 

D3DFMT_A4L4D3DFMT_A4L4

Nicht verfügbarNot available

D3DFMT_V8U8D3DFMT_V8U8

DXGI_FORMAT_R8G8_SNORMDXGI_FORMAT_R8G8_SNORM

D3DFMT_L6V5U5D3DFMT_L6V5U5

Nicht verfügbarNot available

D3DFMT_X8L8V8U8D3DFMT_X8L8V8U8

Nicht verfügbarNot available

D3DFMT_Q8W8V8U8D3DFMT_Q8W8V8U8

DXGI_FORMAT_R8G8B8A8_SNORMDXGI_FORMAT_R8G8B8A8_SNORM

D3DFMT_V16U16D3DFMT_V16U16

DXGI_FORMAT_R16G16_SNORMDXGI_FORMAT_R16G16_SNORM

D3DFMT_W11V11U10D3DFMT_W11V11U10

Nicht verfügbarNot available

D3DFMT_A2W10V10U10D3DFMT_A2W10V10U10

Nicht verfügbarNot available

D3DFMT_UYVYD3DFMT_UYVY

Nicht verfügbarNot available

D3DFMT_R8G8_B8G8D3DFMT_R8G8_B8G8

DXGI_FORMAT_G8R8_G8B8_UNORMDXGI_FORMAT_G8R8_G8B8_UNORM

Hinweis    In Direct3D 9 wurden die Daten um 255.0 f zentral hochskaliert, dies kann jedoch im Shader behandelt werden. Note   In Direct3D 9 the data was scaled up by 255.0f, but this can be handled in the shader.
 

D3DFMT_YUY2D3DFMT_YUY2

Nicht verfügbarNot available

D3DFMT_G8R8_G8B8D3DFMT_G8R8_G8B8

DXGI_FORMAT_R8G8_B8G8_UNORMDXGI_FORMAT_R8G8_B8G8_UNORM

Hinweis    In Direct3D 9 wurden die Daten um 255.0 f zentral hochskaliert, dies kann jedoch im Shader behandelt werden. Note   In Direct3D 9 the data was scaled up by 255.0f, but this can be handled in the shader.
 

D3DFMT_DXT1D3DFMT_DXT1

DXGI_FORMAT_BC1_UNORM & DXGI_FORMAT_BC1_UNORM_SRGBDXGI_FORMAT_BC1_UNORM & DXGI_FORMAT_BC1_UNORM_SRGB

D3DFMT_DXT2D3DFMT_DXT2

DXGI_FORMAT_BC1_UNORM & DXGI_FORMAT_BC1_UNORM_SRGBDXGI_FORMAT_BC1_UNORM & DXGI_FORMAT_BC1_UNORM_SRGB

Hinweis    DXT1 und DXT2 sind im Hinblick auf die API/Hardware identisch. Note   DXT1 and DXT2 are the same from an API/hardware perspective. Der einzige Unterschied besteht darin, ob prämultipliziertes Alpha verwendet wird, was von einer App nachverfolgt werden kann und kein separates Format erfordert.The only difference is whether premultiplied alpha is used, which can be tracked by an application and doesn't need a separate format.
 

D3DFMT_DXT3D3DFMT_DXT3

DXGI_FORMAT_BC2_UNORM & DXGI_FORMAT_BC2_UNORM_SRGBDXGI_FORMAT_BC2_UNORM & DXGI_FORMAT_BC2_UNORM_SRGB

D3DFMT_DXT4D3DFMT_DXT4

DXGI_FORMAT_BC2_UNORM & DXGI_FORMAT_BC2_UNORM_SRGBDXGI_FORMAT_BC2_UNORM & DXGI_FORMAT_BC2_UNORM_SRGB

Hinweis    DXT3 und DXT4 sind im Hinblick auf die API/Hardware identisch. Note   DXT3 and DXT4 are the same from an API/hardware perspective. Der einzige Unterschied besteht darin, ob prämultipliziertes Alpha verwendet wird, was von einer App nachverfolgt werden kann und kein separates Format erfordert.The only difference is whether premultiplied alpha is used, which can be tracked by an application and doesn't need a separate format.
 

D3DFMT_DXT5D3DFMT_DXT5

DXGI_FORMAT_BC3_UNORM & DXGI_FORMAT_BC3_UNORM_SRGBDXGI_FORMAT_BC3_UNORM & DXGI_FORMAT_BC3_UNORM_SRGB

D3DFMT_D16 & D3DFMT_D16_LOCKABLED3DFMT_D16 & D3DFMT_D16_LOCKABLE

DXGI_FORMAT_D16_UNORMDXGI_FORMAT_D16_UNORM

D3DFMT_D32D3DFMT_D32

Nicht verfügbarNot available

D3DFMT_D15S1D3DFMT_D15S1

Nicht verfügbarNot available

D3DFMT_D24S8D3DFMT_D24S8

Nicht verfügbarNot available

D3DFMT_D24X8D3DFMT_D24X8

Nicht verfügbarNot available

D3DFMT_D24X4S4D3DFMT_D24X4S4

Nicht verfügbarNot available

D3DFMT_D16D3DFMT_D16

DXGI_FORMAT_D16_UNORMDXGI_FORMAT_D16_UNORM

D3DFMT_D32F_LOCKABLED3DFMT_D32F_LOCKABLE

DXGI_FORMAT_D32_FLOATDXGI_FORMAT_D32_FLOAT

D3DFMT_D24FS8D3DFMT_D24FS8

Nicht verfügbarNot available

D3DFMT_S1D15D3DFMT_S1D15

Nicht verfügbarNot available

D3DFMT_S8D24D3DFMT_S8D24

DXGI_FORMAT_D24_UNORM_S8_UINTDXGI_FORMAT_D24_UNORM_S8_UINT

D3DFMT_X8D24D3DFMT_X8D24

Nicht verfügbarNot available

D3DFMT_X4S4D24D3DFMT_X4S4D24

Nicht verfügbarNot available

D3DFMT_L16D3DFMT_L16

DXGI_FORMAT_R16_UNORMDXGI_FORMAT_R16_UNORM

Hinweis    Verwenden Sie. r Swizzle in Shader, um rot zu anderen Komponenten zu duplizieren, um das d3d9-Verhalten zu erhalten. Note   Use .r swizzle in shader to duplicate red to other components to get D3D9 behavior.
 

D3DFMT_INDEX16D3DFMT_INDEX16

DXGI_FORMAT_R16_UINTDXGI_FORMAT_R16_UINT

D3DFMT_INDEX32D3DFMT_INDEX32

DXGI_FORMAT_R32_UINTDXGI_FORMAT_R32_UINT

D3DFMT_Q16W16V16U16D3DFMT_Q16W16V16U16

DXGI_FORMAT_R16G16B16A16_SNORMDXGI_FORMAT_R16G16B16A16_SNORM

D3DFMT_MULTI2_ARGB8D3DFMT_MULTI2_ARGB8

Nicht verfügbarNot available

D3DFMT_R16FD3DFMT_R16F

DXGI_FORMAT_R16_FLOATDXGI_FORMAT_R16_FLOAT

D3DFMT_G16R16FD3DFMT_G16R16F

DXGI_FORMAT_R16G16_FLOATDXGI_FORMAT_R16G16_FLOAT

D3DFMT_A16B16G16R16FD3DFMT_A16B16G16R16F

DXGI_FORMAT_R16G16B16A16_FLOATDXGI_FORMAT_R16G16B16A16_FLOAT

D3DFMT_R32FD3DFMT_R32F

DXGI_FORMAT_R32_FLOATDXGI_FORMAT_R32_FLOAT

D3DFMT_G32R32FD3DFMT_G32R32F

DXGI_FORMAT_R32G32_FLOATDXGI_FORMAT_R32G32_FLOAT

D3DFMT_A32B32G32R32FD3DFMT_A32B32G32R32F

DXGI_FORMAT_R32G32B32A32_FLOATDXGI_FORMAT_R32G32B32A32_FLOAT

D3DFMT_CxV8U8D3DFMT_CxV8U8

Nicht verfügbarNot available

D3DDECLTYPE_FLOAT1D3DDECLTYPE_FLOAT1

DXGI_FORMAT_R32_FLOATDXGI_FORMAT_R32_FLOAT

D3DDECLTYPE_FLOAT2D3DDECLTYPE_FLOAT2

DXGI_FORMAT_R32G32_FLOATDXGI_FORMAT_R32G32_FLOAT

D3DDECLTYPE_FLOAT3D3DDECLTYPE_FLOAT3

DXGI_FORMAT_R32G32B32_FLOATDXGI_FORMAT_R32G32B32_FLOAT

D3DDECLTYPE_FLOAT4D3DDECLTYPE_FLOAT4

DXGI_FORMAT_R32G32B32A32_FLOATDXGI_FORMAT_R32G32B32A32_FLOAT

D3DDECLTYPED3DCOLORD3DDECLTYPED3DCOLOR

Nicht verfügbarNot available

D3DDECLTYPE_UBYTE4D3DDECLTYPE_UBYTE4

DXGI_FORMAT_R8G8B8A8_UINTDXGI_FORMAT_R8G8B8A8_UINT

Hinweis    Der Shader ruft uint-Werte ab, aber wenn die ganzzahligen Gleit Komma Zahlen Direct3D 9 nicht benötigt werden (0,0 f, 1.0 f... 255. f), uint kann einfach im Shader in float32 konvertiert werden. Note   The shader gets UINT values, but if Direct3D 9 style integral floats are needed (0.0f, 1.0f... 255.f), UINT can just be converted to float32 in the shader.
 

D3DDECLTYPE_SHORT2D3DDECLTYPE_SHORT2

DXGI_FORMAT_R16G16_SINTDXGI_FORMAT_R16G16_SINT

Hinweis    Der Shader ruft Sint-Werte ab, aber wenn Direct3D 9-Format ganzzahlige Gleit Komma Zahlen erforderlich sind, kann Sint einfach in float32 im Shader konvertiert werden. Note   The shader gets SINT values, but if Direct3D 9 style integral floats are needed, SINT can just be converted to float32 in the shader.
 

D3DDECLTYPE_SHORT4D3DDECLTYPE_SHORT4

DXGI_FORMAT_R16G16B16A16_SINTDXGI_FORMAT_R16G16B16A16_SINT

Hinweis    Der Shader ruft Sint-Werte ab, aber wenn Direct3D 9-Format ganzzahlige Gleit Komma Zahlen erforderlich sind, kann Sint einfach in float32 im Shader konvertiert werden. Note   The shader gets SINT values, but if Direct3D 9 style integral floats are needed, SINT can just be converted to float32 in the shader.
 

D3DDECLTYPE_UBYTE4ND3DDECLTYPE_UBYTE4N

DXGI_FORMAT_R8G8B8A8_UNORMDXGI_FORMAT_R8G8B8A8_UNORM

D3DDECLTYPE_SHORT2ND3DDECLTYPE_SHORT2N

DXGI_FORMAT_R16G16_SNORMDXGI_FORMAT_R16G16_SNORM

D3DDECLTYPE_SHORT4ND3DDECLTYPE_SHORT4N

DXGI_FORMAT_R16G16B16A16_SNORMDXGI_FORMAT_R16G16B16A16_SNORM

D3DDECLTYPE_USHORT2ND3DDECLTYPE_USHORT2N

DXGI_FORMAT_R16G16_UNORMDXGI_FORMAT_R16G16_UNORM

D3DDECLTYPE_USHORT4ND3DDECLTYPE_USHORT4N

DXGI_FORMAT_R16G16B16A16_UNORMDXGI_FORMAT_R16G16B16A16_UNORM

D3DDECLTYPE_UDEC3D3DDECLTYPE_UDEC3

Nicht verfügbarNot available

D3DDECLTYPE_DEC3ND3DDECLTYPE_DEC3N

Nicht verfügbarNot available

D3DDECLTYPE_FLOAT16_2D3DDECLTYPE_FLOAT16_2

DXGI_FORMAT_R16G16_FLOATDXGI_FORMAT_R16G16_FLOAT

D3DDECLTYPE_FLOAT16_4D3DDECLTYPE_FLOAT16_4

DXGI_FORMAT_R16G16B16A16_FLOATDXGI_FORMAT_R16G16B16A16_FLOAT

FourCC 'ATI1'FourCC 'ATI1'

DXGI_FORMAT_BC4_UNORMDXGI_FORMAT_BC4_UNORM

Hinweis    Erfordert die Featureebene 10,0 oder höher Note   Requires Feature Level 10.0 or later
 

FourCC 'ATI2'FourCC 'ATI2'

DXGI_FORMAT_BC5_UNORMDXGI_FORMAT_BC5_UNORM

Hinweis    Erfordert die Featureebene 10,0 oder höher Note   Requires Feature Level 10.0 or later
 

Weitere Informationen zur ZuordnungAdditional mapping info

Die Steuerung der Hardware-Gamma-Rampe der Grafikkarte durch IDirect3DDevice9:: setgammaramp wird durch idxgioutput:: setgammacontrolersetzt.Control of the video card's hardware gamma ramp through IDirect3DDevice9::SetGammaRamp is replaced by IDXGIOutput::SetGammaControl. Siehe Verwenden von Gammakorrektur.See Using gamma correction.

IDirect3DDevice9::P rocess Vertices wird durch die Stream-Output-Funktionalität von Geometry-Shadern ersetzt.IDirect3DDevice9::ProcessVertices is replaced by the Stream-Output functionality of Geometry Shaders. Weitere Informationen finden Sie unter Getting Started with the Stream-Output Stage.See Getting started with the Stream-Output Stage.

Die IDirect3DDevice9:: setclipplane -Methode zum Festlegen von User Clip-Ebenen wurde entweder durch die HLSL- SV_ClipDistance Vertex-Shader-Ausgabe Semantik (siehe Semantik), verfügbar in VS_4_0 und nach oben oder das neue HLSL clipplane-Funktions Attribut ersetzt (Weitere Informationen finden Sie unter User Clip Plane on Feature Level 9 Hardware).The method IDirect3DDevice9::SetClipPlane to set user clip-planes was replaced by either the HLSL SV_ClipDistance vertex shader output semantic (see Semantics), available in VS_4_0 and up, or the new HLSL clipplanes function attribute (see User clip planes on feature level 9 hardware).

IDirect3DDevice9:: setpaletteentries und IDirect3DDevice9:: setcurrenttexturepalette sind veraltet.IDirect3DDevice9::SetPaletteEntries and IDirect3DDevice9::SetCurrentTexturePalette are deprecated. Ersetzen Sie diese durch einen PixelShader, der stattdessen Farben in einer R8G8B8A8 -Textur von 256x1 sucht.Replace these with a pixel shader that looks up colors in a 256x1 R8G8B8A8 texture instead.

Mosaik Funktionen mit fester Funktionsweise wie drawrectpatch, drawselpatch, setnpatchmodeund deletepatch sind veraltet.Fixed-function tessellation functions like DrawRectPatch, DrawTriPatch, SetNPatchMode, and DeletePatch are deprecated. Ersetzen Sie diese durch Programmier-Shader der programmierbaren SM 5.0-Pipeline (wenn Hardware Mosaik-Shader unterstützt).Replace these with programmable-pipeline SM5.0 Tessellation shaders (if hardware supports tessellation shaders).

IDirect3DDevice9:: setf VF-und f-Code-Codes werden nicht mehr unterstützt.IDirect3DDevice9::SetFVF, and FVF codes, are no longer supported. Vor dem Portieren auf D3D11-Eingabe Layouts sollten Sie aus D3D8/d3d9 FVF-Codes in d3d9 Vertex-Deklarationen portieren.You should port from D3D8/D3D9 FVF codes to D3D9 Vertex Declarations before porting to D3D11 Input Layouts.

Alle D3DDECLTYPE Typen, die nicht direkt unterstützt werden, können mit einer kleinen Anzahl von bitweisen Vorgängen am Anfang eines Vertex-Shaders in VS_4_0 und nach oben Recht effizient emuliert werden.All of the D3DDECLTYPE types that are not directly supported can be emulated fairly efficiently with a small number of bitwise operations at the beginning of a vertex shader in VS_4_0 and up.