Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __thiscall fb::DxDebugRenderer::DxDebugRenderer(fb::DxDebugRenderer *this)
- {
- int v1; // edi@0
- fb::DxDebugRenderer *v2; // esi@1
- void *v3; // eax@8
- int v4; // eax@9
- fb::ViewportRect *(__thiscall *v5)(fb::IRenderContext *); // eax@11
- ID3D11Device *v6; // esi@11
- char *v7; // ecx@11
- ID3D11Buffer *v8; // eax@11
- void *v9; // eax@12
- HRESULT v10; // eax@13
- fb::DxDebugRenderer *v11; // eax@13
- HRESULT v12; // eax@15
- char *v13; // ecx@15
- ID3D11BlendState *v14; // eax@15
- void *v15; // eax@16
- HRESULT v16; // eax@17
- char *v17; // ecx@17
- ID3D11DepthStencilState *v18; // eax@17
- void *v19; // eax@18
- HRESULT v20; // eax@19
- char *v21; // ecx@19
- ID3D11DepthStencilState *v22; // eax@19
- HRESULT v23; // eax@21
- char *v24; // eax@21
- ID3D11DepthStencilState *v25; // ecx@21
- void *v26; // ecx@22
- HRESULT v27; // eax@23
- HRESULT v28; // eax@23
- HRESULT v29; // eax@23
- HRESULT v30; // eax@23
- char *v31; // edi@23
- ID3D11SamplerState *v32; // eax@23
- HRESULT v33; // eax@25
- D3D11_BLEND_DESC blendState; // [sp+0h] [bp-204h]@4
- D3D11_SAMPLER_DESC samplerDesc; // [sp+130h] [bp-D4h]@23
- D3D11_DEPTH_STENCIL_DESC depthDesc; // [sp+164h] [bp-A0h]@17
- D3D11_BUFFER_DESC cbDesc; // [sp+198h] [bp-6Ch]@11
- D3D11_BUFFER_DESC vbDesc; // [sp+1B0h] [bp-54h]@13
- D3D11_RASTERIZER_DESC rasterizerDesc; // [sp+1C8h] [bp-3Ch]@23
- fb::DxDebugRenderer *v40; // [sp+1F0h] [bp-14h]@1
- void *v41; // [sp+1F4h] [bp-10h]@8
- int v42; // [sp+200h] [bp-4h]@1
- v2 = this;
- v40 = this;
- fb::BaseDebugRenderer::BaseDebugRenderer(&this->baseclass_0);
- v2->baseclass_0.baseclass_0.baseclass_0.baseclass_0.vfptr = (fb::IRefCountVtbl *)fb::DxDebugRenderer::_vftable_;
- v42 = 0;
- if ( !fb::g_dxShaderProgramDatabase && fb::checkAssertLimit(&dword_37A87F8) )
- {
- if ( fb::Log::c_logFilter & 0x100 )
- {
- fb::Log::Stream::Stream((fb::Log::Stream *)&blendState, &stru_39EB2DC, s_logContext);
- LOBYTE(v42) = 1;
- fb::operator<<((fb::OutAsciiStream *)&blendState, "No shader program database loaded");
- fb::Log::Stream::process((fb::Log::Stream *)&blendState);
- LOBYTE(v42) = 0;
- fb::Log::Stream::_Stream((fb::Log::Stream *)&blendState);
- }
- if ( fb::Log::shouldBreak() )
- __debugbreak();
- }
- if ( fb::DxDebugRenderer::s_resources )
- {
- ++fb::DxDebugRenderer::s_resources->refCount;
- }
- else
- {
- v3 = fb::MemoryArena::alloc(&fb::s_globalHeapArena, 0x3Cu, 0x10u, 0);
- v41 = v3;
- LOBYTE(v42) = 2;
- if ( v3 )
- fb::DxDebugRenderer::Resources::Resources((fb::DxDebugRenderer::Resources *)v3);
- else
- v4 = 0;
- fb::DxDebugRenderer::s_resources = (fb::DxDebugRenderer::Resources *)v4;
- *(_DWORD *)(v4 + 56) = 1;
- v5 = fb::g_dxRenderer->baseclass_0.baseclass_0.vfptr[1].getViewport;
- LOBYTE(v42) = 0;
- ((void (__stdcall *)(int))v5)(v1);
- v6 = fb::DxRenderer::getDevice(fb::g_dxRenderer);
- fb::DxDebugRenderer::createPropFontTexture();
- v7 = (char *)&fb::DxDebugRenderer::s_resources->constantBuffer;
- cbDesc.ByteWidth = 80;
- cbDesc.Usage = 2;
- cbDesc.BindFlags = 4;
- cbDesc.CPUAccessFlags = 65536;
- cbDesc.MiscFlags = 0;
- v8 = fb::DxDebugRenderer::s_resources->constantBuffer.m_ptr;
- v41 = &fb::DxDebugRenderer::s_resources->constantBuffer;
- if ( v8 )
- {
- v8->baseclass_0.baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v8);
- v9 = v41;
- *(_DWORD *)v41 = 0;
- v7 = (char *)v9;
- }
- v10 = ((int (__stdcall *)(ID3D11Device *, D3D11_BUFFER_DESC *, _DWORD, char *))v6->baseclass_0.lpVtbl[1].QueryInterface)(
- v6,
- &cbDesc,
- 0,
- v7);
- fb::validateDxResult(v10, "device->CreateBuffer(&cbDesc, 0, &s_resources->constantBuffer.assignGet())");
- v11 = v40;
- fb::DxDebugRenderer::s_resources->maxVertexCount = v40->baseclass_0.m_settings.m_ptr->m_dxMaxVertexCount;
- fb::DxDebugRenderer::s_resources->currentStartVertex = 0;
- vbDesc.ByteWidth = 32 * v11->baseclass_0.m_settings.m_ptr->m_dxMaxVertexCount;
- vbDesc.Usage = 2;
- vbDesc.BindFlags = 1;
- vbDesc.CPUAccessFlags = 65536;
- vbDesc.MiscFlags = 0;
- v41 = fb::DxDebugRenderer::s_resources;
- if ( fb::DxDebugRenderer::s_resources->vertexBuffer.m_ptr )
- {
- fb::DxDebugRenderer::s_resources->vertexBuffer.m_ptr->baseclass_0.baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)fb::DxDebugRenderer::s_resources->vertexBuffer.m_ptr);
- *(_DWORD *)v41 = 0;
- }
- v12 = ((int (__stdcall *)(ID3D11Device *, D3D11_BUFFER_DESC *, _DWORD, void *))v6->baseclass_0.lpVtbl[1].QueryInterface)(
- v6,
- &vbDesc,
- 0,
- v41);
- fb::validateDxResult(v12, "device->CreateBuffer(&vbDesc, 0, &s_resources->vertexBuffer.assignGet())");
- memset(&blendState.RenderTarget[1], 0, 0x108u);
- blendState.RenderTarget[1].BlendOp = 5;
- blendState.RenderTarget[1].BlendOpAlpha = 5;
- v13 = (char *)&fb::DxDebugRenderer::s_resources->blendState;
- blendState.RenderTarget[1].BlendEnable = 0;
- blendState.RenderTarget[1].SrcBlend = 0;
- blendState.RenderTarget[1].DestBlend = 1;
- blendState.RenderTarget[1].SrcBlendAlpha = 6;
- blendState.RenderTarget[1].DestBlendAlpha = 1;
- *(_DWORD *)&blendState.RenderTarget[1].RenderTargetWriteMask = 6;
- blendState.RenderTarget[2].BlendEnable = 1;
- LOBYTE(blendState.RenderTarget[2].SrcBlend) = 15;
- v14 = fb::DxDebugRenderer::s_resources->blendState.m_ptr;
- v41 = &fb::DxDebugRenderer::s_resources->blendState;
- if ( v14 )
- {
- v14->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v14);
- v15 = v41;
- *(_DWORD *)v41 = 0;
- v13 = (char *)v15;
- }
- v16 = ((int (__stdcall *)(ID3D11Device *, D3D11_RENDER_TARGET_BLEND_DESC *, char *))v6->baseclass_0.lpVtbl[6].Release)(
- v6,
- &blendState.RenderTarget[1],
- v13);
- fb::validateDxResult(v16, "device->CreateBlendState(&blendState, &s_resources->blendState.assignGet())");
- memset(&depthDesc, 0, 0x34u);
- v17 = (char *)fb::DxDebugRenderer::s_resources->depthStates;
- depthDesc.DepthFunc = 4;
- depthDesc.StencilEnable = 0;
- depthDesc.DepthEnable = 0;
- depthDesc.DepthWriteMask = 0;
- v18 = fb::DxDebugRenderer::s_resources->depthStates[0].m_ptr;
- v41 = fb::DxDebugRenderer::s_resources->depthStates;
- if ( v18 )
- {
- v18->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v18);
- v19 = v41;
- *(_DWORD *)v41 = 0;
- v17 = (char *)v19;
- }
- v20 = v6->baseclass_0.lpVtbl[7].QueryInterface((IUnknown *)v6, (_GUID *const )&depthDesc, (void **)v17);
- fb::validateDxResult(v20, "device->CreateDepthStencilState(&depthDesc, &s_resources->depthStates[0].assignGet())");
- v21 = (char *)&fb::DxDebugRenderer::s_resources->depthStates[1];
- depthDesc.DepthEnable = 1;
- depthDesc.DepthWriteMask = 0;
- v22 = fb::DxDebugRenderer::s_resources->depthStates[1].m_ptr;
- v41 = &fb::DxDebugRenderer::s_resources->depthStates[1];
- if ( v22 )
- {
- v22->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v22);
- v21 = (char *)v41;
- *(_DWORD *)v41 = 0;
- }
- v23 = v6->baseclass_0.lpVtbl[7].QueryInterface((IUnknown *)v6, (_GUID *const )&depthDesc, (void **)v21);
- fb::validateDxResult(v23, "device->CreateDepthStencilState(&depthDesc, &s_resources->depthStates[1].assignGet())");
- v24 = (char *)&fb::DxDebugRenderer::s_resources->depthStates[2];
- depthDesc.DepthEnable = 1;
- depthDesc.DepthWriteMask = 1;
- v25 = fb::DxDebugRenderer::s_resources->depthStates[2].m_ptr;
- v41 = &fb::DxDebugRenderer::s_resources->depthStates[2];
- if ( v25 )
- {
- v25->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v25);
- v26 = v41;
- *(_DWORD *)v41 = 0;
- v24 = (char *)v26;
- }
- v27 = v6->baseclass_0.lpVtbl[7].QueryInterface((IUnknown *)v6, (_GUID *const )&depthDesc, (void **)v24);
- fb::validateDxResult(v27, "device->CreateDepthStencilState(&depthDesc, &s_resources->depthStates[2].assignGet())");
- rasterizerDesc.FillMode = 3;
- rasterizerDesc.CullMode = 3;
- rasterizerDesc.FrontCounterClockwise = 1;
- rasterizerDesc.MultisampleEnable = 0;
- rasterizerDesc.AntialiasedLineEnable = 0;
- rasterizerDesc.DepthBias = 0;
- LODWORD(rasterizerDesc.DepthBiasClamp) = 0;
- rasterizerDesc.DepthClipEnable = 1;
- LODWORD(rasterizerDesc.SlopeScaledDepthBias) = 0;
- rasterizerDesc.ScissorEnable = 0;
- v28 = ((int (__stdcall *)(ID3D11Device *, D3D11_RASTERIZER_DESC *, fb::SmartComRef<ID3D11RasterizerState> *))v6->baseclass_0.lpVtbl[7].AddRef)(
- v6,
- &rasterizerDesc,
- &fb::DxDebugRenderer::s_resources->rasterizerStateCullBack);
- fb::validateDxResult(v28, "device->CreateRasterizerState(&rasterizerDesc, &s_resources->rasterizerStateCullBack)");
- rasterizerDesc.CullMode = 1;
- v29 = ((int (__stdcall *)(ID3D11Device *, D3D11_RASTERIZER_DESC *, fb::SmartComRef<ID3D11RasterizerState> *))v6->baseclass_0.lpVtbl[7].AddRef)(
- v6,
- &rasterizerDesc,
- &fb::DxDebugRenderer::s_resources->rasterizerStateCullNone);
- fb::validateDxResult(v29, "device->CreateRasterizerState(&rasterizerDesc, &s_resources->rasterizerStateCullNone)");
- rasterizerDesc.MultisampleEnable = 0;
- rasterizerDesc.AntialiasedLineEnable = 1;
- v30 = ((int (__stdcall *)(_DWORD, _DWORD, _DWORD))v6->baseclass_0.lpVtbl[7].AddRef)(
- v6,
- &rasterizerDesc,
- &fb::DxDebugRenderer::s_resources->rasterizerStateLineAA);
- fb::validateDxResult(v30, "device->CreateRasterizerState(&rasterizerDesc, &s_resources->rasterizerStateLineAA)");
- memset(&samplerDesc, 0, 0x34u);
- LODWORD(samplerDesc.MipLODBias) = 0;
- samplerDesc.Filter = 0;
- samplerDesc.AddressU = 3;
- samplerDesc.AddressV = 3;
- samplerDesc.AddressW = 3;
- samplerDesc.MaxAnisotropy = 1;
- samplerDesc.ComparisonFunc = 1;
- samplerDesc.MinLOD = _real_ff7fffff;
- v31 = (char *)&fb::DxDebugRenderer::s_resources->fontSamplerState;
- samplerDesc.MaxLOD = _real;
- v32 = fb::DxDebugRenderer::s_resources->fontSamplerState.m_ptr;
- if ( v32 )
- {
- v32->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)fb::DxDebugRenderer::s_resources->fontSamplerState.m_ptr);
- *(_DWORD *)v31 = 0;
- }
- v33 = ((int (__stdcall *)(ID3D11Device *, D3D11_SAMPLER_DESC *))v6->baseclass_0.lpVtbl[7].Release)(v6, &samplerDesc);
- fb::validateDxResult(v33, "device->CreateSamplerState(&samplerDesc, &s_resources->fontSamplerState.assignGet())");
- ((void (*)(void))fb::g_dxRenderer->baseclass_0.baseclass_0.vfptr[1].beginShaderStates)();
- }
- }
Add Comment
Please, Sign In to add comment