Files
UnrealEngineUWP/Engine/Source/Programs/TextureShare/TextureShareSDK/Public/TextureShareInterface.h
Alejandro Arango 85d83b1ee9 nDisplay,TextureShare: Merge from RES.
#rb
#jira
#rnx

[CL 17223255 by Alejandro Arango in ue5-main branch]
2021-08-18 17:46:21 -04:00

59 lines
2.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "TextureShareDLL.h"
#include "TextureShareContainers.h"
#include <DXGIFormat.h>
struct ID3D11Device;
struct ID3D11Texture2D;
struct ID3D12Device;
struct ID3D12Resource;
class ITextureShareCore;
class FTextureShareInterface
{
public:
TEXTURE_SHARE_SDK_API static FTextureShareSyncPolicySettings GetSyncPolicySettings();
TEXTURE_SHARE_SDK_API static void SetSyncPolicySettings(const FTextureShareSyncPolicySettings& InSyncPolicySettings);
// Create shared resource object
TEXTURE_SHARE_SDK_API static bool CreateTextureShare(const TCHAR* ShareName, ETextureShareProcess Process, FTextureShareSyncPolicy SyncMode, ETextureShareDevice DeviceType, float SyncWaitTime = 0.03);
TEXTURE_SHARE_SDK_API static bool ReleaseTextureShare(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool IsValid(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool IsSessionValid(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static ETextureShareDevice GetDeviceType(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool RegisterTexture(const TCHAR* ShareName, const TCHAR* TextureName, int Width, int Height, ETextureShareFormat InFormat, uint32 InFormatValue, ETextureShareSurfaceOp OperationType);
/* MGPU support*/
TEXTURE_SHARE_SDK_API static bool SetTextureGPUIndex(const TCHAR* ShareName, const TCHAR* TextureName, uint32 GPUIndex);
TEXTURE_SHARE_SDK_API static bool SetDefaultGPUIndex(const TCHAR* ShareName, uint32 GPUIndex);
TEXTURE_SHARE_SDK_API static bool IsRemoteTextureUsed(const TCHAR* ShareName, const TCHAR* TextureName);
TEXTURE_SHARE_SDK_API static bool BeginSession(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool EndSession(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool BeginFrame_RenderThread(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool EndFrame_RenderThread(const TCHAR* ShareName);
TEXTURE_SHARE_SDK_API static bool SetLocalAdditionalData(const TCHAR* ShareName, const FTextureShareSDKAdditionalData& InData);
TEXTURE_SHARE_SDK_API static bool GetRemoteAdditionalData(const TCHAR* ShareName, FTextureShareSDKAdditionalData& OutData);
TEXTURE_SHARE_SDK_API static bool LockTextureD3D11_RenderThread(ID3D11Device* pD3D11Device, const TCHAR* ShareName, const TCHAR* TextureName, ID3D11Texture2D*& OutD3D11Texture);
TEXTURE_SHARE_SDK_API static bool LockTextureD3D12_RenderThread(ID3D12Device* pD3D12Device, const TCHAR* ShareName, const TCHAR* TextureName, ID3D12Resource*& OutD3D12Resource);
TEXTURE_SHARE_SDK_API static bool UnlockTexture_RenderThread(const TCHAR* ShareName, const TCHAR* TextureName);
TEXTURE_SHARE_SDK_API static bool SetCustomProjectionData(const TCHAR* ShareName, const FTextureShareSDKCustomProjectionData& InData);
TEXTURE_SHARE_SDK_API static bool BeginSyncFrame();
TEXTURE_SHARE_SDK_API static bool EndSyncFrame();
};