コード例 #1
0
ファイル: Context.cs プロジェクト: zeta1999/Vrmac
        void iContent.releaseCachedResources(eReleaseResources what)
        {
            try
            {
                if (null == timersHardPause)
                {
                    timersHardPause = animation.timers.hardPause();
                }

                foreach (var rr in releaseResources)
                {
                    rr(what);
                }

                ComUtils.clear(ref cachedRtv);
                ComUtils.clear(ref cachedDsv);
                context?.SetRenderTargets(0, null, null, ResourceStateTransitionMode.None);

                if (what == eReleaseResources.Buffers)
                {
                    return;
                }

                context?.Dispose();
                context = null;
                if (what == eReleaseResources.Context)
                {
                    return;
                }

                swapChain?.Dispose();
                swapChain = null;
            }
            catch (Exception ex)
            {
                NativeContext.cacheException(ex);
                throw;
            }
        }