MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / RenderInventoryScene

Method RenderInventoryScene

TombEngine/Renderer/RendererDrawMenu.cpp:1254–1367  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1252 }
1253
1254 void Renderer::RenderInventoryScene(RenderTarget2D* renderTarget, TextureBase* background, float backgroundFade)
1255 {
1256 // Set basic render states
1257 SetBlendMode(BlendMode::Opaque, true);
1258 SetDepthState(DepthState::Write, true);
1259 SetCullMode(CullMode::CounterClockwise, true);
1260
1261 // Bind and clear render target
1262 ID3D11RenderTargetView* pRenderViewPtrs[2];
1263 pRenderViewPtrs[0] = _renderTarget.RenderTargetView.Get();
1264 pRenderViewPtrs[1] = _emissiveAndRoughnessRenderTarget.RenderTargetView.Get();
1265
1266 _context->RSSetViewports(1, &_viewport);
1267 ResetScissor();
1268
1269 _context->ClearDepthStencilView(_renderTarget.DepthStencilView.Get(), D3D11_CLEAR_STENCIL | D3D11_CLEAR_DEPTH, 1.0f, 0);
1270 _context->ClearRenderTargetView(_renderTarget.RenderTargetView.Get(), Colors::Black);
1271 _context->ClearRenderTargetView(_emissiveAndRoughnessRenderTarget.RenderTargetView.Get(), Colors::Transparent);
1272
1273 if (background != nullptr)
1274 DrawFullScreenImage(background->ShaderResourceView.Get(), backgroundFade, _renderTarget.RenderTargetView.Get(), _renderTarget.DepthStencilView.Get());
1275
1276 _context->OMSetRenderTargets(2, &pRenderViewPtrs[0], _renderTarget.DepthStencilView.Get());
1277 _context->ClearDepthStencilView(_renderTarget.DepthStencilView.Get(), D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0);
1278
1279 unsigned int stride = sizeof(Vertex);
1280 unsigned int offset = 0;
1281
1282 // Set vertex buffer.
1283 _context->IASetVertexBuffers(0, 1, _moveablesVertexBuffer.Buffer.GetAddressOf(), &stride, &offset);
1284 _context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
1285 _context->IASetInputLayout(_inputLayout.Get());
1286 _context->IASetIndexBuffer(_moveablesIndexBuffer.Buffer.Get(), DXGI_FORMAT_R32_UINT, 0);
1287
1288 // Set shaders.
1289 _shaders.Bind(Shader::Inventory);
1290
1291 if (CurrentLevel == 0)
1292 {
1293 auto titleMenu = g_Gui.GetMenuToDisplay();
1294 bool drawLogo = (titleMenu == Menu::Title || titleMenu == Menu::Options);
1295
1296 if (drawLogo && _logo.Texture != nullptr)
1297 {
1298 auto& settings = g_GameFlow->GetSettings()->UI;
1299
1300 float factorX = (float)_screenWidth / DISPLAY_SPACE_RES.x;
1301 float factorY = (float)_screenHeight / DISPLAY_SPACE_RES.y;
1302 float scale = _screenWidth > _screenHeight ? factorX : factorY;
1303
1304 float logoWidthScaled = _logo.Width * settings.TitleLogoScale;
1305 float logoHeightScaled = _logo.Height * settings.TitleLogoScale;
1306
1307 float centerX = (settings.TitleLogoPosition.x / 100.0f) * DISPLAY_SPACE_RES.x;
1308 float centerY = (settings.TitleLogoPosition.y / 100.0f) * DISPLAY_SPACE_RES.y;
1309
1310 float logoLeft = centerX - logoWidthScaled * 0.5f;
1311 float logoRight = centerX + logoWidthScaled * 0.5f;

Callers

nothing calls this directly

Calls 12

GetAddressOfMethod · 0.80
BindMethod · 0.80
GetMenuToDisplayMethod · 0.80
GetSettingsMethod · 0.80
GetInventoryModeMethod · 0.80
Vector4Function · 0.50
GetMethod · 0.45
GetRMethod · 0.45
GetGMethod · 0.45
GetBMethod · 0.45
GetAMethod · 0.45
DrawMethod · 0.45

Tested by

no test coverage detected