Guest User

Untitled

a guest
Apr 20th, 2014
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.62 KB | None | 0 0
  1. void __thiscall fb::DxDebugRenderer::DxDebugRenderer(fb::DxDebugRenderer *this)
  2. {
  3.   int v1; // edi@0
  4.   fb::DxDebugRenderer *v2; // esi@1
  5.   void *v3; // eax@8
  6.   int v4; // eax@9
  7.   fb::ViewportRect *(__thiscall *v5)(fb::IRenderContext *); // eax@11
  8.   ID3D11Device *v6; // esi@11
  9.   char *v7; // ecx@11
  10.   ID3D11Buffer *v8; // eax@11
  11.   void *v9; // eax@12
  12.   HRESULT v10; // eax@13
  13.   fb::DxDebugRenderer *v11; // eax@13
  14.   HRESULT v12; // eax@15
  15.   char *v13; // ecx@15
  16.   ID3D11BlendState *v14; // eax@15
  17.   void *v15; // eax@16
  18.   HRESULT v16; // eax@17
  19.   char *v17; // ecx@17
  20.   ID3D11DepthStencilState *v18; // eax@17
  21.   void *v19; // eax@18
  22.   HRESULT v20; // eax@19
  23.   char *v21; // ecx@19
  24.   ID3D11DepthStencilState *v22; // eax@19
  25.   HRESULT v23; // eax@21
  26.   char *v24; // eax@21
  27.   ID3D11DepthStencilState *v25; // ecx@21
  28.   void *v26; // ecx@22
  29.   HRESULT v27; // eax@23
  30.   HRESULT v28; // eax@23
  31.   HRESULT v29; // eax@23
  32.   HRESULT v30; // eax@23
  33.   char *v31; // edi@23
  34.   ID3D11SamplerState *v32; // eax@23
  35.   HRESULT v33; // eax@25
  36.   D3D11_BLEND_DESC blendState; // [sp+0h] [bp-204h]@4
  37.   D3D11_SAMPLER_DESC samplerDesc; // [sp+130h] [bp-D4h]@23
  38.   D3D11_DEPTH_STENCIL_DESC depthDesc; // [sp+164h] [bp-A0h]@17
  39.   D3D11_BUFFER_DESC cbDesc; // [sp+198h] [bp-6Ch]@11
  40.   D3D11_BUFFER_DESC vbDesc; // [sp+1B0h] [bp-54h]@13
  41.   D3D11_RASTERIZER_DESC rasterizerDesc; // [sp+1C8h] [bp-3Ch]@23
  42.   fb::DxDebugRenderer *v40; // [sp+1F0h] [bp-14h]@1
  43.   void *v41; // [sp+1F4h] [bp-10h]@8
  44.   int v42; // [sp+200h] [bp-4h]@1
  45.  
  46.   v2 = this;
  47.   v40 = this;
  48.   fb::BaseDebugRenderer::BaseDebugRenderer(&this->baseclass_0);
  49.   v2->baseclass_0.baseclass_0.baseclass_0.baseclass_0.vfptr = (fb::IRefCountVtbl *)fb::DxDebugRenderer::_vftable_;
  50.   v42 = 0;
  51.   if ( !fb::g_dxShaderProgramDatabase && fb::checkAssertLimit(&dword_37A87F8) )
  52.   {
  53.     if ( fb::Log::c_logFilter & 0x100 )
  54.     {
  55.       fb::Log::Stream::Stream((fb::Log::Stream *)&blendState, &stru_39EB2DC, s_logContext);
  56.       LOBYTE(v42) = 1;
  57.       fb::operator<<((fb::OutAsciiStream *)&blendState, "No shader program database loaded");
  58.       fb::Log::Stream::process((fb::Log::Stream *)&blendState);
  59.       LOBYTE(v42) = 0;
  60.       fb::Log::Stream::_Stream((fb::Log::Stream *)&blendState);
  61.     }
  62.     if ( fb::Log::shouldBreak() )
  63.       __debugbreak();
  64.   }
  65.   if ( fb::DxDebugRenderer::s_resources )
  66.   {
  67.     ++fb::DxDebugRenderer::s_resources->refCount;
  68.   }
  69.   else
  70.   {
  71.     v3 = fb::MemoryArena::alloc(&fb::s_globalHeapArena, 0x3Cu, 0x10u, 0);
  72.     v41 = v3;
  73.     LOBYTE(v42) = 2;
  74.     if ( v3 )
  75.       fb::DxDebugRenderer::Resources::Resources((fb::DxDebugRenderer::Resources *)v3);
  76.     else
  77.       v4 = 0;
  78.     fb::DxDebugRenderer::s_resources = (fb::DxDebugRenderer::Resources *)v4;
  79.     *(_DWORD *)(v4 + 56) = 1;
  80.     v5 = fb::g_dxRenderer->baseclass_0.baseclass_0.vfptr[1].getViewport;
  81.     LOBYTE(v42) = 0;
  82.     ((void (__stdcall *)(int))v5)(v1);
  83.     v6 = fb::DxRenderer::getDevice(fb::g_dxRenderer);
  84.     fb::DxDebugRenderer::createPropFontTexture();
  85.     v7 = (char *)&fb::DxDebugRenderer::s_resources->constantBuffer;
  86.     cbDesc.ByteWidth = 80;
  87.     cbDesc.Usage = 2;
  88.     cbDesc.BindFlags = 4;
  89.     cbDesc.CPUAccessFlags = 65536;
  90.     cbDesc.MiscFlags = 0;
  91.     v8 = fb::DxDebugRenderer::s_resources->constantBuffer.m_ptr;
  92.     v41 = &fb::DxDebugRenderer::s_resources->constantBuffer;
  93.     if ( v8 )
  94.     {
  95.       v8->baseclass_0.baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v8);
  96.       v9 = v41;
  97.       *(_DWORD *)v41 = 0;
  98.       v7 = (char *)v9;
  99.     }
  100.     v10 = ((int (__stdcall *)(ID3D11Device *, D3D11_BUFFER_DESC *, _DWORD, char *))v6->baseclass_0.lpVtbl[1].QueryInterface)(
  101.             v6,
  102.             &cbDesc,
  103.             0,
  104.             v7);
  105.     fb::validateDxResult(v10, "device->CreateBuffer(&cbDesc, 0, &s_resources->constantBuffer.assignGet())");
  106.     v11 = v40;
  107.     fb::DxDebugRenderer::s_resources->maxVertexCount = v40->baseclass_0.m_settings.m_ptr->m_dxMaxVertexCount;
  108.     fb::DxDebugRenderer::s_resources->currentStartVertex = 0;
  109.     vbDesc.ByteWidth = 32 * v11->baseclass_0.m_settings.m_ptr->m_dxMaxVertexCount;
  110.     vbDesc.Usage = 2;
  111.     vbDesc.BindFlags = 1;
  112.     vbDesc.CPUAccessFlags = 65536;
  113.     vbDesc.MiscFlags = 0;
  114.     v41 = fb::DxDebugRenderer::s_resources;
  115.     if ( fb::DxDebugRenderer::s_resources->vertexBuffer.m_ptr )
  116.     {
  117.       fb::DxDebugRenderer::s_resources->vertexBuffer.m_ptr->baseclass_0.baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)fb::DxDebugRenderer::s_resources->vertexBuffer.m_ptr);
  118.       *(_DWORD *)v41 = 0;
  119.     }
  120.     v12 = ((int (__stdcall *)(ID3D11Device *, D3D11_BUFFER_DESC *, _DWORD, void *))v6->baseclass_0.lpVtbl[1].QueryInterface)(
  121.             v6,
  122.             &vbDesc,
  123.             0,
  124.             v41);
  125.     fb::validateDxResult(v12, "device->CreateBuffer(&vbDesc, 0, &s_resources->vertexBuffer.assignGet())");
  126.     memset(&blendState.RenderTarget[1], 0, 0x108u);
  127.     blendState.RenderTarget[1].BlendOp = 5;
  128.     blendState.RenderTarget[1].BlendOpAlpha = 5;
  129.     v13 = (char *)&fb::DxDebugRenderer::s_resources->blendState;
  130.     blendState.RenderTarget[1].BlendEnable = 0;
  131.     blendState.RenderTarget[1].SrcBlend = 0;
  132.     blendState.RenderTarget[1].DestBlend = 1;
  133.     blendState.RenderTarget[1].SrcBlendAlpha = 6;
  134.     blendState.RenderTarget[1].DestBlendAlpha = 1;
  135.     *(_DWORD *)&blendState.RenderTarget[1].RenderTargetWriteMask = 6;
  136.     blendState.RenderTarget[2].BlendEnable = 1;
  137.     LOBYTE(blendState.RenderTarget[2].SrcBlend) = 15;
  138.     v14 = fb::DxDebugRenderer::s_resources->blendState.m_ptr;
  139.     v41 = &fb::DxDebugRenderer::s_resources->blendState;
  140.     if ( v14 )
  141.     {
  142.       v14->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v14);
  143.       v15 = v41;
  144.       *(_DWORD *)v41 = 0;
  145.       v13 = (char *)v15;
  146.     }
  147.     v16 = ((int (__stdcall *)(ID3D11Device *, D3D11_RENDER_TARGET_BLEND_DESC *, char *))v6->baseclass_0.lpVtbl[6].Release)(
  148.             v6,
  149.             &blendState.RenderTarget[1],
  150.             v13);
  151.     fb::validateDxResult(v16, "device->CreateBlendState(&blendState, &s_resources->blendState.assignGet())");
  152.     memset(&depthDesc, 0, 0x34u);
  153.     v17 = (char *)fb::DxDebugRenderer::s_resources->depthStates;
  154.     depthDesc.DepthFunc = 4;
  155.     depthDesc.StencilEnable = 0;
  156.     depthDesc.DepthEnable = 0;
  157.     depthDesc.DepthWriteMask = 0;
  158.     v18 = fb::DxDebugRenderer::s_resources->depthStates[0].m_ptr;
  159.     v41 = fb::DxDebugRenderer::s_resources->depthStates;
  160.     if ( v18 )
  161.     {
  162.       v18->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v18);
  163.       v19 = v41;
  164.       *(_DWORD *)v41 = 0;
  165.       v17 = (char *)v19;
  166.     }
  167.     v20 = v6->baseclass_0.lpVtbl[7].QueryInterface((IUnknown *)v6, (_GUID *const )&depthDesc, (void **)v17);
  168.     fb::validateDxResult(v20, "device->CreateDepthStencilState(&depthDesc, &s_resources->depthStates[0].assignGet())");
  169.     v21 = (char *)&fb::DxDebugRenderer::s_resources->depthStates[1];
  170.     depthDesc.DepthEnable = 1;
  171.     depthDesc.DepthWriteMask = 0;
  172.     v22 = fb::DxDebugRenderer::s_resources->depthStates[1].m_ptr;
  173.     v41 = &fb::DxDebugRenderer::s_resources->depthStates[1];
  174.     if ( v22 )
  175.     {
  176.       v22->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v22);
  177.       v21 = (char *)v41;
  178.       *(_DWORD *)v41 = 0;
  179.     }
  180.     v23 = v6->baseclass_0.lpVtbl[7].QueryInterface((IUnknown *)v6, (_GUID *const )&depthDesc, (void **)v21);
  181.     fb::validateDxResult(v23, "device->CreateDepthStencilState(&depthDesc, &s_resources->depthStates[1].assignGet())");
  182.     v24 = (char *)&fb::DxDebugRenderer::s_resources->depthStates[2];
  183.     depthDesc.DepthEnable = 1;
  184.     depthDesc.DepthWriteMask = 1;
  185.     v25 = fb::DxDebugRenderer::s_resources->depthStates[2].m_ptr;
  186.     v41 = &fb::DxDebugRenderer::s_resources->depthStates[2];
  187.     if ( v25 )
  188.     {
  189.       v25->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)v25);
  190.       v26 = v41;
  191.       *(_DWORD *)v41 = 0;
  192.       v24 = (char *)v26;
  193.     }
  194.     v27 = v6->baseclass_0.lpVtbl[7].QueryInterface((IUnknown *)v6, (_GUID *const )&depthDesc, (void **)v24);
  195.     fb::validateDxResult(v27, "device->CreateDepthStencilState(&depthDesc, &s_resources->depthStates[2].assignGet())");
  196.     rasterizerDesc.FillMode = 3;
  197.     rasterizerDesc.CullMode = 3;
  198.     rasterizerDesc.FrontCounterClockwise = 1;
  199.     rasterizerDesc.MultisampleEnable = 0;
  200.     rasterizerDesc.AntialiasedLineEnable = 0;
  201.     rasterizerDesc.DepthBias = 0;
  202.     LODWORD(rasterizerDesc.DepthBiasClamp) = 0;
  203.     rasterizerDesc.DepthClipEnable = 1;
  204.     LODWORD(rasterizerDesc.SlopeScaledDepthBias) = 0;
  205.     rasterizerDesc.ScissorEnable = 0;
  206.     v28 = ((int (__stdcall *)(ID3D11Device *, D3D11_RASTERIZER_DESC *, fb::SmartComRef<ID3D11RasterizerState> *))v6->baseclass_0.lpVtbl[7].AddRef)(
  207.             v6,
  208.             &rasterizerDesc,
  209.             &fb::DxDebugRenderer::s_resources->rasterizerStateCullBack);
  210.     fb::validateDxResult(v28, "device->CreateRasterizerState(&rasterizerDesc, &s_resources->rasterizerStateCullBack)");
  211.     rasterizerDesc.CullMode = 1;
  212.     v29 = ((int (__stdcall *)(ID3D11Device *, D3D11_RASTERIZER_DESC *, fb::SmartComRef<ID3D11RasterizerState> *))v6->baseclass_0.lpVtbl[7].AddRef)(
  213.             v6,
  214.             &rasterizerDesc,
  215.             &fb::DxDebugRenderer::s_resources->rasterizerStateCullNone);
  216.     fb::validateDxResult(v29, "device->CreateRasterizerState(&rasterizerDesc, &s_resources->rasterizerStateCullNone)");
  217.     rasterizerDesc.MultisampleEnable = 0;
  218.     rasterizerDesc.AntialiasedLineEnable = 1;
  219.     v30 = ((int (__stdcall *)(_DWORD, _DWORD, _DWORD))v6->baseclass_0.lpVtbl[7].AddRef)(
  220.             v6,
  221.             &rasterizerDesc,
  222.             &fb::DxDebugRenderer::s_resources->rasterizerStateLineAA);
  223.     fb::validateDxResult(v30, "device->CreateRasterizerState(&rasterizerDesc, &s_resources->rasterizerStateLineAA)");
  224.     memset(&samplerDesc, 0, 0x34u);
  225.     LODWORD(samplerDesc.MipLODBias) = 0;
  226.     samplerDesc.Filter = 0;
  227.     samplerDesc.AddressU = 3;
  228.     samplerDesc.AddressV = 3;
  229.     samplerDesc.AddressW = 3;
  230.     samplerDesc.MaxAnisotropy = 1;
  231.     samplerDesc.ComparisonFunc = 1;
  232.     samplerDesc.MinLOD = _real_ff7fffff;
  233.     v31 = (char *)&fb::DxDebugRenderer::s_resources->fontSamplerState;
  234.     samplerDesc.MaxLOD = _real;
  235.     v32 = fb::DxDebugRenderer::s_resources->fontSamplerState.m_ptr;
  236.     if ( v32 )
  237.     {
  238.       v32->baseclass_0.baseclass_0.lpVtbl->Release((IUnknown *)fb::DxDebugRenderer::s_resources->fontSamplerState.m_ptr);
  239.       *(_DWORD *)v31 = 0;
  240.     }
  241.     v33 = ((int (__stdcall *)(ID3D11Device *, D3D11_SAMPLER_DESC *))v6->baseclass_0.lpVtbl[7].Release)(v6, &samplerDesc);
  242.     fb::validateDxResult(v33, "device->CreateSamplerState(&samplerDesc, &s_resources->fontSamplerState.assignGet())");
  243.     ((void (*)(void))fb::g_dxRenderer->baseclass_0.baseclass_0.vfptr[1].beginShaderStates)();
  244.   }
  245. }
Add Comment
Please, Sign In to add comment