예제 #1
0
        public CPass BuildRenderPass(int limitter = int.MaxValue, bool lastestPass = false, bool bImmCBuffer = false)
        {
            ScopeBuildRenderPass.Begin();

            CPass pass = null;

            unsafe
            {
                if (lastestPass)
                {
                    CPass.NativePointer passPtr = new CPass.NativePointer();
                    SDK_ICommandList_BuildRenderPass(CoreObject, vBOOL.FromBoolean(bImmCBuffer), limitter, &passPtr);

                    if (passPtr.GetPointer() != IntPtr.Zero)
                    {
                        pass = CPass.CreatePassFromPtr(passPtr);
                    }
                }
                else
                {
                    SDK_ICommandList_BuildRenderPass(CoreObject, vBOOL.FromBoolean(bImmCBuffer), limitter, null);
                }
            }

            ScopeBuildRenderPass.End();

            return(pass);
        }
예제 #2
0
        public TimeScopeWindows(TimeScope t)
        {
#if PWindow
            mTime = t;
            mTime.Begin();
#endif
        }
예제 #3
0
        public void Commit(CRenderContext RenderContext)
        {
            ScopeExecute.Begin();

            lock (this)
            {
                SDK_ICommandList_Commit(CoreObject, RenderContext.CoreObject);
            }

            ScopeExecute.End();
        }
예제 #4
0
        public void FlushImmContext()
        {
            lock (ImmCommandList)
            {
                SDK_IRenderContext_FlushImmContext(CoreObject);

                ScopeTickSwapChain.Begin();
                CEngine.SDK_RResourceSwapChain_TickSwap(CoreObject);
                ScopeTickSwapChain.End();
            }
        }
예제 #5
0
 public TimeScopeHelper(TimeScope t)
 {
     mTime = t;
     mTime.Begin();
 }