示例#1
0
        public unsafe bool Init(RenderPassDesc desc, RenderTexture2D[] renderTextures)
        {
            ValidateMSAARenderTextures(renderTextures);
            int length = renderTextures.Length;

            InitBase(ref desc, length);
            using (var descNative = new RenderPassDesc_NativeInterop(ref desc))
            {
                var renderTextureHandles = stackalloc IntPtr[length];
                var usages             = stackalloc RenderTextureUsage[length];
                var depthStencilHandle = IntPtr.Zero;
                var stencilUsage       = StencilUsage.Discard;
                if (renderTextures[0].depthStencil != null)
                {
                    depthStencilHandle = renderTextures[0].depthStencil.handle;
                    stencilUsage       = renderTextures[0].depthStencil.stencilUsage;
                }
                for (int i = 0; i != length; ++i)
                {
                    renderTextureHandles[i] = renderTextures[i].handle;
                    usages[i] = renderTextures[i].usage;
                }
                return(Orbital_Video_D3D12_RenderPass_Init_WithRenderTextures(handle, &descNative, renderTextureHandles, usages, (uint)length, depthStencilHandle, stencilUsage) != 0);
            }
        }
示例#2
0
 public unsafe bool Init(RenderPassDesc desc, SwapChain swapChain, DepthStencil depthStencil)
 {
     InitBase(ref desc, 1);
     using (var descNative = new RenderPassDesc_NativeInterop(ref desc))
     {
         return(Orbital_Video_D3D12_RenderPass_Init_WithSwapChain(handle, &descNative, swapChain.handle, depthStencil.handle, depthStencil.stencilUsage) != 0);
     }
 }
示例#3
0
 public unsafe bool Init(RenderPassDesc desc, RenderTexture2D renderTexture, DepthStencil depthStencil)
 {
     InitBase(ref desc, 1);
     using (var descNative = new RenderPassDesc_NativeInterop(ref desc))
     {
         var renderTextureHandle = renderTexture.handle;
         var usage = renderTexture.usage;
         return(Orbital_Video_D3D12_RenderPass_Init_WithRenderTextures(handle, &descNative, &renderTextureHandle, &usage, 1, depthStencil.handle, depthStencil.stencilUsage) != 0);
     }
 }
示例#4
0
 public unsafe bool Init(RenderPassDesc desc, SwapChain swapChain)
 {
     InitBase(ref desc, 1);
     using (var descNative = new RenderPassDesc_NativeInterop(ref desc))
     {
         var depthStencilHandle = IntPtr.Zero;
         var stencilUsage       = StencilUsage.Discard;
         if (swapChain.depthStencil != null)
         {
             depthStencilHandle = swapChain.depthStencilD3D12.handle;
             stencilUsage       = swapChain.depthStencilD3D12.stencilUsage;
         }
         return(Orbital_Video_D3D12_RenderPass_Init_WithSwapChain(handle, &descNative, swapChain.handle, depthStencilHandle, stencilUsage) != 0);
     }
 }
示例#5
0
 public unsafe bool Init(RenderPassDesc desc, RenderTexture2D renderTexture)
 {
     InitBase(ref desc, 1);
     using (var descNative = new RenderPassDesc_NativeInterop(ref desc))
     {
         var renderTextureHandle = renderTexture.handle;
         var usage = renderTexture.usage;
         var depthStencilHandle = IntPtr.Zero;
         var stencilUsage       = StencilUsage.Discard;
         if (renderTexture.depthStencil != null)
         {
             depthStencilHandle = renderTexture.depthStencil.handle;
             stencilUsage       = renderTexture.depthStencil.stencilUsage;
         }
         return(Orbital_Video_D3D12_RenderPass_Init_WithRenderTextures(handle, &descNative, &renderTextureHandle, &usage, 1, depthStencilHandle, stencilUsage) != 0);
     }
 }
示例#6
0
        public unsafe bool Init(RenderPassDesc desc)
        {
            var descNative = new RenderPassDesc_NativeInterop(ref desc);

            return(Orbital_Video_D3D12_RenderPass_Init(handle, &descNative) != 0);
        }