Freigeben über


IDirect3DSurface Schnittstelle

Definition

Dies stellt eine IDXGISurface dar und kann verwendet werden, um zwischen Windows-Runtime Komponenten zu interopieren, die IDXGISurface-Verweise austauschen müssen.

public interface class IDirect3DSurface : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(200581446, 5057, 18068, 190, 227, 122, 191, 21, 234, 245, 134)]
struct IDirect3DSurface : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(200581446, 5057, 18068, 190, 227, 122, 191, 21, 234, 245, 134)]
public interface IDirect3DSurface : System.IDisposable
Public Interface IDirect3DSurface
Implements IDisposable
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

// Create a new Windows Console Application (C++/WinRT) project, and
// replace the contents of `pch.h` and `main.cpp` source code files with the code below.
// Be aware that the code below omits the details of obtaining a WinRT Direct3DSurface in
// the first segment of code, and obtaining a native DirectX surface in the second segment.
// The code shows only how to perform the conversion between the two.

// pch.h
#pragma once
#include <d3d11_4.h>
#include <Windows.Graphics.DirectX.Direct3D11.interop.h>
#include <unknwn.h>

#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.Graphics.DirectX.Direct3D11.h>

// main.cpp
#include "pch.h"

int main()
{
    winrt::init_apartment();

    // To get the native DirectX surface that is wrapped by a Direct3DSurface.

    winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface d3dSurface /* = ... */;
    winrt::com_ptr<::Windows::Graphics::DirectX::Direct3D11::IDirect3DDxgiInterfaceAccess> dxgiInterfaceAccess{
        d3dSurface.as<::Windows::Graphics::DirectX::Direct3D11::IDirect3DDxgiInterfaceAccess>()
    };
    winrt::com_ptr<::IDXGISurface> nativeSurface;
    winrt::check_hresult(dxgiInterfaceAccess->GetInterface(
        __uuidof(nativeSurface),
        nativeSurface.put_void()));

    // To create a new Direct3DSurface object wrapping a native DirectX surface.

    winrt::com_ptr<::IDXGISurface> nativeSurface2 /* = ... */;
    winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface d3dSurface2{ nullptr };
    winrt::check_hresult(::CreateDirect3D11SurfaceFromDXGISurface(
        nativeSurface2.get(),
        reinterpret_cast<::IInspectable**>(winrt::put_abi(d3dSurface2))));
}
// First include the necessary headers and namespaces.
#include <Windows.Graphics.DirectX.Direct3D11.interop.h>
#include <dxgi.h>

using namespace Windows::Graphics::DirectX::Direct3D11;
using namespace Microsoft::WRL;

// To get the native DirectX surface that is wrapped by a Direct3DSurface.

IDirect3DSurface^ d3dSurface = ...;  
ComPtr<IDXGISurface> nativeSurface;

HRESULT hr = GetDXGIInterface(d3dSurface, nativeSurface.GetAddressOf());

// To create a new Direct3DSurface object wrapping a native DirectX surface.

ComPtr<IDXGISurface> nativeSurface = ...;
IDirect3DSurface^ d3dSurface = CreateDirect3DSurface(nativeSurface.Get());

Hinweise

Um zwischen IDirect3DSurface und IDXGISurface hin- und herzuwechseln, verwenden Sie die Funktionen CreateDirect3DSurface und GetDXGIInterface(IDirect3DSurface^, DXGI_TYPE**).

Eigenschaften

Description

Ruft eine Direct3DSurfaceDescription ab, die die Oberfläche beschreibt.

Methoden

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

Gilt für:

Weitere Informationen