void CDX10Core::OnResize(int width, int height) { SAFE_DX_RELEASE( m_pRenderTargetView); SAFE_DX_RELEASE( m_pDepthStencilView); // Resize the swap chain and recreate the render target view. HR(m_pSwapChain->ResizeBuffers(1, width, height, DXGI_FORMAT_R8G8B8A8_UNORM, 0)); InitRenderAndDepthStencilTargets( width, height ); // Set the viewport transform. D3D10_VIEWPORT vp; vp.TopLeftX = 0; vp.TopLeftY = 0; vp.Width = width; vp.Height = height; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; m_pDevice->RSSetViewports( 1, &vp ); InitMatrices(vp.Width, vp.Height); InitDepthStencilState(); InitFont(); }
bool CDX10Core::Init( HWND hWnd, const DXInitDesc &initDesc ) { m_bInitialized = false; // Save new window handle for future use m_hWnd = hWnd; // Save new init description for future use m_initDesc = initDesc; // Use init description in building specific init description DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( &sd, sizeof( sd ) ); sd.BufferCount = initDesc.bufferCount; sd.BufferDesc.Width = initDesc.bufferDesc.width; sd.BufferDesc.Height = initDesc.bufferDesc.height; sd.BufferDesc.Format = ( DXGI_FORMAT )initDesc.bufferDesc.format; sd.BufferDesc.RefreshRate.Numerator = initDesc.bufferDesc.refreshRate.numerator; sd.BufferDesc.RefreshRate.Denominator = initDesc.bufferDesc.refreshRate.denominator; sd.BufferUsage = initDesc.bufferUsage; sd.OutputWindow = initDesc.hOutputWindow; sd.SampleDesc.Count = initDesc.sampleDesc.count; sd.SampleDesc.Quality = initDesc.sampleDesc.quality; sd.Windowed = initDesc.bWindowed; // Create d3d device, swap chain HR( D3D10CreateDeviceAndSwapChain1( NULL, D3D10_DRIVER_TYPE_HARDWARE, NULL, 0, D3D10_FEATURE_LEVEL_10_1, D3D10_1_SDK_VERSION, &sd, &m_pSwapChain, &m_pDevice ) ); InitRenderAndDepthStencilTargets( sd.BufferDesc.Width, sd.BufferDesc.Height ); // Set the viewport transform. D3D10_VIEWPORT vp; vp.TopLeftX = 0; vp.TopLeftY = 0; vp.Width = sd.BufferDesc.Width; vp.Height = sd.BufferDesc.Height; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; m_pDevice->RSSetViewports( 1, &vp ); InitMatrices(vp.Width, vp.Height); InitRasterizerState(); InitDepthStencilState(); InitBasicEffects(); InitializeBuffers(); InitFont(); m_bInitialized = true; return true; }
void Init(void) { glClearColor(0.2f, 0.2f, 0.6f, 1.0f); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glEnable(GL_TEXTURE_2D); glEnable(GL_DEPTH_TEST); setCheckedTexture(); InitMatrices(); }
bool CDX10Core::Init( HWND hWnd ) { m_hWnd = hWnd; SetDefaultSettings(); DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( &sd, sizeof( sd ) ); sd.BufferCount = m_initDesc.bufferCount; sd.BufferDesc.Width = m_initDesc.bufferDesc.width; sd.BufferDesc.Height = m_initDesc.bufferDesc.height; sd.BufferDesc.Format = ( DXGI_FORMAT ) m_initDesc.bufferDesc.format; sd.BufferDesc.RefreshRate.Numerator = m_initDesc.bufferDesc.refreshRate.numerator; sd.BufferDesc.RefreshRate.Denominator = m_initDesc.bufferDesc.refreshRate.denominator; sd.BufferDesc.ScanlineOrdering = ( DXGI_MODE_SCANLINE_ORDER ) m_initDesc.bufferDesc.scanlineOrdering; sd.BufferDesc.Scaling = ( DXGI_MODE_SCALING )m_initDesc.bufferDesc.scaling; sd.BufferUsage = m_initDesc.bufferUsage; sd.OutputWindow = m_initDesc.hOutputWindow; sd.SampleDesc.Count = m_initDesc.sampleDesc.count; sd.SampleDesc.Quality = m_initDesc.sampleDesc.quality; sd.Windowed = m_initDesc.bWindowed; sd.Flags = m_initDesc.flags; sd.SwapEffect = ( DXGI_SWAP_EFFECT ) m_initDesc.swapEffect; UINT createDeviceFlags = 0; //#if defined(DEBUG) || defined(_DEBUG) // createDeviceFlags |= D3D10_CREATE_DEVICE_DEBUG; //#endif HR( D3D10CreateDeviceAndSwapChain1( NULL, D3D10_DRIVER_TYPE_HARDWARE, NULL, createDeviceFlags, D3D10_FEATURE_LEVEL_10_1, D3D10_1_SDK_VERSION, &sd, &m_pSwapChain, &m_pDevice ) ); InitRenderAndDepthStencilTargets( sd.BufferDesc.Width, sd.BufferDesc.Height ); // Set the viewport transform. D3D10_VIEWPORT vp; vp.TopLeftX = 0; vp.TopLeftY = 0; vp.Width = sd.BufferDesc.Width; vp.Height = sd.BufferDesc.Height; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; m_pDevice->RSSetViewports( 1, &vp ); InitMatrices(vp.Width, vp.Height); InitRasterizerState(); InitDepthStencilState(); InitBasicEffects(); InitializeBuffers(); InitFont(); m_bInitialized = true; return true; }