/* * Copyright (c) 2014, Oculus VR, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * RakNet License.txt file in the licenses directory of this source tree. An additional grant * of patent rights can be found in the RakNet Patents.txt file in the same directory. * */ #pragma once #include "DirectXHelper.h" // Helper class that initializes DirectX APIs for 3D rendering. ref class Direct3DBase abstract { internal: Direct3DBase(); public: virtual void Initialize(Windows::UI::Core::CoreWindow^ window); virtual void HandleDeviceLost(); virtual void CreateDeviceResources(); virtual void CreateWindowSizeDependentResources(); virtual void UpdateForWindowSizeChange(); virtual void ReleaseResourcesForSuspending(); virtual void Render() = 0; virtual void Present(); virtual float ConvertDipsToPixels(float dips); protected private: // Direct3D Objects. Microsoft::WRL::ComPtr m_d3dDevice; Microsoft::WRL::ComPtr m_d3dContext; Microsoft::WRL::ComPtr m_swapChain; Microsoft::WRL::ComPtr m_renderTargetView; Microsoft::WRL::ComPtr m_depthStencilView; // Cached renderer properties. D3D_FEATURE_LEVEL m_featureLevel; Windows::Foundation::Size m_renderTargetSize; Windows::Foundation::Rect m_windowBounds; Platform::Agile m_window; };