// レンダリング HRESULT Render( void ) { // 画面クリア XMFLOAT4 v4Color = XMFLOAT4( 0.0f, 0.0f, 1.0f, 1.0f ); g_pImmediateContext->ClearRenderTargetView( g_pRTV, ( float * )&v4Color ); // サンプラ・ラスタライザセット g_pImmediateContext->PSSetSamplers( 0, 1, &g_pSamplerState ); g_pImmediateContext->RSSetState( g_pRS ); // 描画設定 UINT nStrides = sizeof( CUSTOMVERTEX ); UINT nOffsets = 0; g_pImmediateContext->IASetVertexBuffers( 0, 1, &g_pD3D11VertexBuffer, &nStrides, &nOffsets ); g_pImmediateContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST ); g_pImmediateContext->IASetInputLayout( g_pInputLayout ); // シェーダ設定 g_pImmediateContext->VSSetShader( g_pVertexShader, NULL, 0 ); g_pImmediateContext->VSSetConstantBuffers( 0, 1, &g_pCBNeverChanges ); g_pImmediateContext->PSSetShader( g_pPixelShader, NULL, 0 ); // 描画 g_pImmediateContext->OMSetBlendState( NULL, NULL, 0xFFFFFFFF ); DrawChangingPictures(); // 表示 FlushDrawingPictures(); return S_OK; }
// レンダリング HRESULT Render( void ) { // 画面クリア XMFLOAT4 v4Color = XMFLOAT4( 0.0f, 0.0f, 0.0f, 1.0f ); g_pImmediateContext->ClearRenderTargetView( g_pRTV, ( float * )&v4Color ); // *** Zバッファクリア *** g_pImmediateContext->ClearDepthStencilView( g_pDepthStencilView, D3D11_CLEAR_DEPTH, 1.0f, 0 ); // サンプラ・ラスタライザセット g_pImmediateContext->PSSetSamplers( 0, 1, &g_pSamplerState ); g_pImmediateContext->RSSetState( g_pRS ); // 描画設定 UINT nStrides = sizeof( CUSTOMVERTEX ); UINT nOffsets = 0; g_pImmediateContext->IASetVertexBuffers( 0, 1, &g_pD3D11VertexBuffer, &nStrides, &nOffsets ); g_pImmediateContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST ); g_pImmediateContext->IASetInputLayout( g_pInputLayout ); // シェーダ設定 g_pImmediateContext->VSSetShader( g_pVertexShader, NULL, 0 ); g_pImmediateContext->VSSetConstantBuffers( 0, 1, &g_pCBNeverChanges ); g_pImmediateContext->PSSetShader( g_pPixelShader, NULL, 0 ); // 変換行列 CBNeverChanges cbNeverChanges; XMMATRIX mWorld; XMMATRIX mView; XMMATRIX mProjection; mWorld = CreateWorldMatrix(); // Initialize the view matrix XMVECTOR Eye = XMVectorSet( 0.0f, 3.0f, -5.0f, 0.0f ); XMVECTOR At = XMVectorSet( 0.0f, 0.0f, 0.0f, 0.0f ); XMVECTOR Up = XMVectorSet( 0.0f, 1.0f, 0.0f, 0.0f ); mView = XMMatrixLookAtLH( Eye, At, Up ); // Initialize the projection matrix mProjection = XMMatrixPerspectiveFovLH( XM_PIDIV4, VIEW_WIDTH / ( FLOAT )VIEW_HEIGHT, 0.01f, 100.0f ); cbNeverChanges.mView = XMMatrixTranspose( mWorld * mView * mProjection ); g_pImmediateContext->UpdateSubresource( g_pCBNeverChanges, 0, NULL, &cbNeverChanges, 0, 0 ); // 描画 g_pImmediateContext->OMSetBlendState( NULL, NULL, 0xFFFFFFFF ); DrawChangingPictures(); // 表示 FlushDrawingPictures(); return S_OK; }