इसके माध्यम से साझा किया गया


IDirect3DSurface Interface

Definition

This represents an IDXGISurface and can be used to interop between Windows Runtime components that need to exchange IDXGISurface references.

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
Attributes
Implements

Windows requirements

Device family
Windows 10 (introduced in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v1.0)

Examples

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

Remarks

To move back and forth between IDirect3DSurface and IDXGISurface, use the CreateDirect3DSurface and GetDXGIInterface(IDirect3DSurface^, DXGI_TYPE**) functions.

Properties

Description

Gets a Direct3DSurfaceDescription describing the surface.

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Applies to

See also