本文整理汇总了C++中Appearance::GetTextureRV方法的典型用法代码示例。如果您正苦于以下问题:C++ Appearance::GetTextureRV方法的具体用法?C++ Appearance::GetTextureRV怎么用?C++ Appearance::GetTextureRV使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Appearance
的用法示例。
在下文中一共展示了Appearance::GetTextureRV方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Draw
void Application::Draw()
{
//
// Clear buffers
//
float ClearColor[4] = { 0.5f, 0.5f, 0.5f, 1.0f }; // red,green,blue,alpha
_pImmediateContext->ClearRenderTargetView(_pRenderTargetView, ClearColor);
_pImmediateContext->ClearDepthStencilView(_depthStencilView, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0);
//
// Setup buffers and render scene
//
_pImmediateContext->IASetInputLayout(_pVertexLayout);
_pImmediateContext->VSSetShader(_pVertexShader, nullptr, 0);
_pImmediateContext->PSSetShader(_pPixelShader, nullptr, 0);
_pImmediateContext->VSSetConstantBuffers(0, 1, &_pConstantBuffer);
_pImmediateContext->PSSetConstantBuffers(0, 1, &_pConstantBuffer);
_pImmediateContext->PSSetSamplers(0, 1, &_pSamplerLinear);
ConstantBuffer cb;
XMFLOAT4X4 viewAsFloats = _camera->GetView();
XMFLOAT4X4 projectionAsFloats = _camera->GetProjection();
XMMATRIX view = XMLoadFloat4x4(&viewAsFloats);
XMMATRIX projection = XMLoadFloat4x4(&projectionAsFloats);
cb.View = XMMatrixTranspose(view);
cb.Projection = XMMatrixTranspose(projection);
cb.light = basicLight;
cb.EyePosW = _camera->GetPosition();
// Render all scene objects
for (auto gameObject : _gameObjects)
{
// Get render material
Appearance * appearance = gameObject->GetAppearance();
Material material = appearance->GetMaterial();
// Copy material to shader
cb.surface.AmbientMtrl = material.ambient;
cb.surface.DiffuseMtrl = material.diffuse;
cb.surface.SpecularMtrl = material.specular;
// Set world matrix
cb.World = XMMatrixTranspose(gameObject->GetTransform()->GetWorldMatrix());
// Set texture
if (appearance->HasTexture())
{
ID3D11ShaderResourceView * textureRV = appearance->GetTextureRV();
_pImmediateContext->PSSetShaderResources(0, 1, &textureRV);
cb.HasTexture = 1.0f;
}
else
{
cb.HasTexture = 0.0f;
}
// Update constant buffer
_pImmediateContext->UpdateSubresource(_pConstantBuffer, 0, nullptr, &cb, 0, 0);
// Draw object
gameObject->Draw(_pImmediateContext);
}
//
// Present our back buffer to our front buffer
//
_pSwapChain->Present(0, 0);
}