Compartir a través de


IDirect3DSurface Interfaz

Definición

Esto representa un IDXGISurface y se puede usar para interoperabilidad entre componentes de Windows Runtime que necesitan intercambiar referencias IDXGISurface.

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
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

// 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());

Comentarios

Para desplazarse entre IDirect3DSurface e IDXGISurface, use las funciones CreateDirect3DSurface y GetDXGIInterface(IDirect3DSurface^, DXGI_TYPE**).

Propiedades

Description

Obtiene un Direct3DSurfaceDescription que describe la superficie.

Métodos

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.

Se aplica a

Consulte también