private void CoreInitialize(
            DeviceManager manager,
            ID3D12Device *device,
            IDXGISwapChain3 *swapChain,
            GraphicalConfiguration config,
            ScreenData screenData
            )
        {
            _resourceCount = config.BufferCount;
            _resourceIndex = swapChain->GetCurrentBackBufferIndex();
            _allocator     = manager.Allocator;

            CreateRtvAndDsvResources(swapChain, config, screenData);
            CreateRtvAndDsvDescriptorHeaps(device, config);
            CreateRtvAndDsvViews(device, config);
        }
        internal static void Initialize(
            DeviceManager manager,
            ID3D12Device *device,
            IDXGISwapChain3 *swapChain,
            GraphicalConfiguration config,
            ScreenData screenData
            )
        {
            // TODO could probably use CAS/System.Threading.LazyInitializer
            lock (Lock)
            {
                Debug.Assert(!_initialized);

                _initialized = true;
                Value.CoreInitialize(manager, device, swapChain, config, screenData);
            }
        }
 private void CreateRtvAndDsvResources(
     IDXGISwapChain3 *swapChain,
     GraphicalConfiguration config,
     in ScreenData screenData
Beispiel #4
0
 /// <summary>
 /// Initialize the single instance of this type
 /// </summary>
 public static void Initialize(GraphicalConfiguration config, in ScreenData screenData)