mirror of
https://github.com/ZuneDev/Xune.git
synced 2026-07-27 13:13:10 -07:00
Added raw UIX.RenderApi project
This commit is contained in:
+219
@@ -0,0 +1,219 @@
|
||||
// Decompiled with JetBrains decompiler
|
||||
// Type: Microsoft.Iris.Render.Protocols.Splash.Rendering.RemoteDynamicSurfaceFactory
|
||||
// Assembly: UIX.RenderApi, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
|
||||
// MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1
|
||||
// Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll
|
||||
|
||||
using Microsoft.Iris.Render.Protocol;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Microsoft.Iris.Render.Protocols.Splash.Rendering
|
||||
{
|
||||
internal class RemoteDynamicSurfaceFactory : RemoteObject
|
||||
{
|
||||
private static ushort[] s_priv_ByteOrder_Msg0_CloseInstance;
|
||||
private static ushort[] s_priv_ByteOrder_Msg1_CreateVideoInstance;
|
||||
private static ushort[] s_priv_ByteOrder_Msg2_CreateSurfaceInstance;
|
||||
|
||||
protected RemoteDynamicSurfaceFactory()
|
||||
{
|
||||
}
|
||||
|
||||
public static unsafe void BuildCloseInstance(
|
||||
out RenderPort _priv_portUse,
|
||||
out Message* _priv_pmsgUse,
|
||||
ProtocolSplashRendering _priv_protocolInstance,
|
||||
int nUniqueID)
|
||||
{
|
||||
RenderPort port = _priv_protocolInstance.Port;
|
||||
_priv_portUse = port;
|
||||
RENDERHANDLE factoryClassHandle = _priv_protocolInstance.DynamicSurfaceFactory_ClassHandle;
|
||||
_priv_portUse.ValidateHandle(factoryClassHandle);
|
||||
uint size = (uint) sizeof (RemoteDynamicSurfaceFactory.Msg0_CloseInstance);
|
||||
RemoteDynamicSurfaceFactory.Msg0_CloseInstance* msg0CloseInstancePtr = (RemoteDynamicSurfaceFactory.Msg0_CloseInstance*) _priv_portUse.AllocMessageBuffer(size);
|
||||
msg0CloseInstancePtr->_priv_size = size;
|
||||
msg0CloseInstancePtr->_priv_msgid = 0U;
|
||||
msg0CloseInstancePtr->nUniqueID = nUniqueID;
|
||||
msg0CloseInstancePtr->_priv_idObjectSubject = factoryClassHandle;
|
||||
if (_priv_portUse.ForeignByteOrder)
|
||||
MarshalHelper.SwapByteOrder((byte*) msg0CloseInstancePtr, ref RemoteDynamicSurfaceFactory.s_priv_ByteOrder_Msg0_CloseInstance, typeof (RemoteDynamicSurfaceFactory.Msg0_CloseInstance), 0, 0);
|
||||
_priv_pmsgUse = (Message*) msg0CloseInstancePtr;
|
||||
}
|
||||
|
||||
public static unsafe void SendCloseInstance(
|
||||
ProtocolSplashRendering _priv_protocolInstance,
|
||||
int nUniqueID)
|
||||
{
|
||||
RenderPort _priv_portUse;
|
||||
Message* _priv_pmsgUse;
|
||||
RemoteDynamicSurfaceFactory.BuildCloseInstance(out _priv_portUse, out _priv_pmsgUse, _priv_protocolInstance, nUniqueID);
|
||||
_priv_portUse.SendRemoteMessage(_priv_pmsgUse);
|
||||
}
|
||||
|
||||
public static unsafe void BuildCreateVideoInstance(
|
||||
out RenderPort _priv_portUse,
|
||||
out Message* _priv_pmsgUse,
|
||||
ProtocolSplashRendering _priv_protocolInstance,
|
||||
int nUniqueID,
|
||||
RENDERHANDLE idClassContext,
|
||||
RemoteDevice devOwner,
|
||||
RemoteSurface surScene,
|
||||
RemoteVideoPool poolScene)
|
||||
{
|
||||
RenderPort port = _priv_protocolInstance.Port;
|
||||
_priv_portUse = port;
|
||||
RENDERHANDLE factoryClassHandle = _priv_protocolInstance.DynamicSurfaceFactory_ClassHandle;
|
||||
_priv_portUse.ValidateHandle(factoryClassHandle);
|
||||
if (devOwner != null)
|
||||
_priv_portUse.ValidateHandleOrNull(devOwner.RenderHandle);
|
||||
if (surScene != null)
|
||||
_priv_portUse.ValidateHandleOrNull(surScene.RenderHandle);
|
||||
if (poolScene != null)
|
||||
_priv_portUse.ValidateHandleOrNull(poolScene.RenderHandle);
|
||||
uint size = (uint) sizeof (RemoteDynamicSurfaceFactory.Msg1_CreateVideoInstance);
|
||||
RemoteDynamicSurfaceFactory.Msg1_CreateVideoInstance* createVideoInstancePtr = (RemoteDynamicSurfaceFactory.Msg1_CreateVideoInstance*) _priv_portUse.AllocMessageBuffer(size);
|
||||
createVideoInstancePtr->_priv_size = size;
|
||||
createVideoInstancePtr->_priv_msgid = 1U;
|
||||
createVideoInstancePtr->nUniqueID = nUniqueID;
|
||||
createVideoInstancePtr->idClassContext = idClassContext;
|
||||
createVideoInstancePtr->devOwner = devOwner != null ? devOwner.RenderHandle : RENDERHANDLE.NULL;
|
||||
createVideoInstancePtr->surScene = surScene != null ? surScene.RenderHandle : RENDERHANDLE.NULL;
|
||||
createVideoInstancePtr->poolScene = poolScene != null ? poolScene.RenderHandle : RENDERHANDLE.NULL;
|
||||
createVideoInstancePtr->_priv_idObjectSubject = factoryClassHandle;
|
||||
if (_priv_portUse.ForeignByteOrder)
|
||||
MarshalHelper.SwapByteOrder((byte*) createVideoInstancePtr, ref RemoteDynamicSurfaceFactory.s_priv_ByteOrder_Msg1_CreateVideoInstance, typeof (RemoteDynamicSurfaceFactory.Msg1_CreateVideoInstance), 0, 0);
|
||||
_priv_pmsgUse = (Message*) createVideoInstancePtr;
|
||||
}
|
||||
|
||||
public static unsafe void SendCreateVideoInstance(
|
||||
ProtocolSplashRendering _priv_protocolInstance,
|
||||
int nUniqueID,
|
||||
RENDERHANDLE idClassContext,
|
||||
RemoteDevice devOwner,
|
||||
RemoteSurface surScene,
|
||||
RemoteVideoPool poolScene)
|
||||
{
|
||||
RenderPort _priv_portUse;
|
||||
Message* _priv_pmsgUse;
|
||||
RemoteDynamicSurfaceFactory.BuildCreateVideoInstance(out _priv_portUse, out _priv_pmsgUse, _priv_protocolInstance, nUniqueID, idClassContext, devOwner, surScene, poolScene);
|
||||
_priv_portUse.SendRemoteMessage(_priv_pmsgUse);
|
||||
}
|
||||
|
||||
public static unsafe void BuildCreateSurfaceInstance(
|
||||
out RenderPort _priv_portUse,
|
||||
out Message* _priv_pmsgUse,
|
||||
ProtocolSplashRendering _priv_protocolInstance,
|
||||
int nUniqueID,
|
||||
RENDERHANDLE idClassContext,
|
||||
RemoteDevice devOwner,
|
||||
RemoteSurface surScene,
|
||||
RemoteVideoPool poolScene)
|
||||
{
|
||||
RenderPort port = _priv_protocolInstance.Port;
|
||||
_priv_portUse = port;
|
||||
RENDERHANDLE factoryClassHandle = _priv_protocolInstance.DynamicSurfaceFactory_ClassHandle;
|
||||
_priv_portUse.ValidateHandle(factoryClassHandle);
|
||||
if (devOwner != null)
|
||||
_priv_portUse.ValidateHandleOrNull(devOwner.RenderHandle);
|
||||
if (surScene != null)
|
||||
_priv_portUse.ValidateHandleOrNull(surScene.RenderHandle);
|
||||
if (poolScene != null)
|
||||
_priv_portUse.ValidateHandleOrNull(poolScene.RenderHandle);
|
||||
uint size = (uint) sizeof (RemoteDynamicSurfaceFactory.Msg2_CreateSurfaceInstance);
|
||||
RemoteDynamicSurfaceFactory.Msg2_CreateSurfaceInstance* createSurfaceInstancePtr = (RemoteDynamicSurfaceFactory.Msg2_CreateSurfaceInstance*) _priv_portUse.AllocMessageBuffer(size);
|
||||
createSurfaceInstancePtr->_priv_size = size;
|
||||
createSurfaceInstancePtr->_priv_msgid = 2U;
|
||||
createSurfaceInstancePtr->nUniqueID = nUniqueID;
|
||||
createSurfaceInstancePtr->idClassContext = idClassContext;
|
||||
createSurfaceInstancePtr->devOwner = devOwner != null ? devOwner.RenderHandle : RENDERHANDLE.NULL;
|
||||
createSurfaceInstancePtr->surScene = surScene != null ? surScene.RenderHandle : RENDERHANDLE.NULL;
|
||||
createSurfaceInstancePtr->poolScene = poolScene != null ? poolScene.RenderHandle : RENDERHANDLE.NULL;
|
||||
createSurfaceInstancePtr->_priv_idObjectSubject = factoryClassHandle;
|
||||
if (_priv_portUse.ForeignByteOrder)
|
||||
MarshalHelper.SwapByteOrder((byte*) createSurfaceInstancePtr, ref RemoteDynamicSurfaceFactory.s_priv_ByteOrder_Msg2_CreateSurfaceInstance, typeof (RemoteDynamicSurfaceFactory.Msg2_CreateSurfaceInstance), 0, 0);
|
||||
_priv_pmsgUse = (Message*) createSurfaceInstancePtr;
|
||||
}
|
||||
|
||||
public static unsafe void SendCreateSurfaceInstance(
|
||||
ProtocolSplashRendering _priv_protocolInstance,
|
||||
int nUniqueID,
|
||||
RENDERHANDLE idClassContext,
|
||||
RemoteDevice devOwner,
|
||||
RemoteSurface surScene,
|
||||
RemoteVideoPool poolScene)
|
||||
{
|
||||
RenderPort _priv_portUse;
|
||||
Message* _priv_pmsgUse;
|
||||
RemoteDynamicSurfaceFactory.BuildCreateSurfaceInstance(out _priv_portUse, out _priv_pmsgUse, _priv_protocolInstance, nUniqueID, idClassContext, devOwner, surScene, poolScene);
|
||||
_priv_portUse.SendRemoteMessage(_priv_pmsgUse);
|
||||
}
|
||||
|
||||
public static RemoteDynamicSurfaceFactory CreateFromHandle(
|
||||
RenderPort port,
|
||||
RENDERHANDLE handle)
|
||||
{
|
||||
return new RemoteDynamicSurfaceFactory(port, handle, true);
|
||||
}
|
||||
|
||||
public static RemoteDynamicSurfaceFactory CreateFromExternalHandle(
|
||||
RenderPort port,
|
||||
RENDERHANDLE handle,
|
||||
IRenderHandleOwner owner)
|
||||
{
|
||||
port.RegisterKnownHandle(owner, handle);
|
||||
return new RemoteDynamicSurfaceFactory(port, handle, false);
|
||||
}
|
||||
|
||||
protected RemoteDynamicSurfaceFactory(
|
||||
RenderPort port,
|
||||
RENDERHANDLE handle,
|
||||
bool fFreeOnDispose)
|
||||
: base(port, handle, fFreeOnDispose)
|
||||
{
|
||||
}
|
||||
|
||||
protected RemoteDynamicSurfaceFactory(RenderPort port, IRenderHandleOwner owner)
|
||||
: base(port, owner)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool Equals(object other) => other is RemoteDynamicSurfaceFactory && this.m_renderHandle == ((RemoteObject) other).m_renderHandle;
|
||||
|
||||
public override int GetHashCode() => base.GetHashCode();
|
||||
|
||||
[ComVisible(false)]
|
||||
private struct Msg0_CloseInstance
|
||||
{
|
||||
public uint _priv_size;
|
||||
public uint _priv_msgid;
|
||||
public RENDERHANDLE _priv_idObjectSubject;
|
||||
public int nUniqueID;
|
||||
}
|
||||
|
||||
[ComVisible(false)]
|
||||
private struct Msg1_CreateVideoInstance
|
||||
{
|
||||
public uint _priv_size;
|
||||
public uint _priv_msgid;
|
||||
public RENDERHANDLE _priv_idObjectSubject;
|
||||
public int nUniqueID;
|
||||
public RENDERHANDLE idClassContext;
|
||||
public RENDERHANDLE devOwner;
|
||||
public RENDERHANDLE surScene;
|
||||
public RENDERHANDLE poolScene;
|
||||
}
|
||||
|
||||
[ComVisible(false)]
|
||||
private struct Msg2_CreateSurfaceInstance
|
||||
{
|
||||
public uint _priv_size;
|
||||
public uint _priv_msgid;
|
||||
public RENDERHANDLE _priv_idObjectSubject;
|
||||
public int nUniqueID;
|
||||
public RENDERHANDLE idClassContext;
|
||||
public RENDERHANDLE devOwner;
|
||||
public RENDERHANDLE surScene;
|
||||
public RENDERHANDLE poolScene;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user