using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;

namespace Decal.Interop.Inject;

[ComImport]
[SuppressUnmanagedCodeSecurity]
[InterfaceType(1)]
[Guid("E4FBF228-D2AA-4298-96EC-6D89A1960731")]
public interface IRender3DSink
{
	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void PreBeginScene([MarshalAs(UnmanagedType.IUnknown)] object pD3D);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void PostBeginScene([MarshalAs(UnmanagedType.IUnknown)] object pD3D);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void PreEndScene([MarshalAs(UnmanagedType.IUnknown)] object pD3D);

	[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
	void PostEndScene([MarshalAs(UnmanagedType.IUnknown)] object pD3D);
}
