Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed __int64 __fastcall CGraphicDeviceDx11::EnumAdapters(CGraphicDeviceDx11 *pThis, __int64 a2)
- {
- CHeapInfo *v2; // r15
- CGraphicDeviceDx11 *pGraphicDevice; // r14
- int nAdapters; // ebp
- UINT uAdapters; // edi
- signed __int64 cbAdapterSize; // rax
- unsigned __int8 v7; // cf
- __int64 cbSize; // rax
- CHeapInstance *v9; // rax
- signed __int64 v10; // rbx
- UINT uIndex; // esi
- CAdapter *v12; // rbx
- signed __int64 uDescLength; // r8
- CGraphicDeviceDx11 *v14; // rcx
- IDXGIAdapter *pAdapter; // [rsp+30h] [rbp-188h]
- __int64 v17; // [rsp+38h] [rbp-180h]
- __int64 v18; // [rsp+40h] [rbp-178h]
- CHeapInstance *v19; // [rsp+48h] [rbp-170h]
- DXGI_ADAPTER_DESC AdapterDesc; // [rsp+50h] [rbp-168h]
- v17 = -2i64;
- v2 = (CHeapInfo *)a2;
- pGraphicDevice = pThis;
- v18 = a2;
- nAdapters = 0;
- uAdapters = 0;
- if ( pThis->m_pFactory->lpVtbl->EnumAdapters(pThis->m_pFactory, 0, &pAdapter) != 0x887A0002 )
- {
- do
- ++uAdapters;
- while ( pGraphicDevice->m_pFactory->lpVtbl->EnumAdapters(pGraphicDevice->m_pFactory, uAdapters, &pAdapter) != 0x887A0002 );
- if ( uAdapters )
- {
- cbAdapterSize = 280i64 * uAdapters;
- if ( !is_mul_ok(uAdapters, 280ui64) )
- cbAdapterSize = -1i64;
- v7 = __CFADD__(cbAdapterSize, 8i64);
- cbSize = cbAdapterSize + 8;
- if ( v7 )
- cbSize = -1i64;
- v9 = CHeapInstance::ReserveMemory(v2, cbSize, 0i64, 0);
- v19 = v9;
- if ( v9 )
- {
- v9->m_pVtbl = (CHeapInstanceVtbl *)uAdapters;
- v10 = (signed __int64)&v9->m_Lock;
- sub_7FF718AC5158((__int64)&v9->m_Lock, 280i64, uAdapters, (__int64 (*)(void))CAdapter::CAdapter);
- }
- else
- {
- v10 = 0i64;
- }
- pGraphicDevice->m_pAdapters = (CAdapter *)v10;
- if ( v10 )
- {
- uIndex = 0;
- if ( !uAdapters )
- {
- SetAdapterCount:
- pGraphicDevice->m_nAdapters = nAdapters;
- return 1i64;
- }
- while ( pGraphicDevice->m_pFactory->lpVtbl->EnumAdapters(pGraphicDevice->m_pFactory, uIndex, &pAdapter) != 0x887A0002 )
- {
- v12 = &pGraphicDevice->m_pAdapters[nAdapters];
- if ( pAdapter->lpVtbl->GetDesc(pAdapter, &AdapterDesc) )
- break;
- uDescLength = -1i64;
- do
- ++uDescLength;
- while ( AdapterDesc.Description[uDescLength] );
- memcpy(v12, &AdapterDesc, 2 * uDescLength);
- if ( !(unsigned int)CGraphicDeviceDx11::EnumOutputs(v14, v12, pAdapter, (__int64)v2) )
- break;
- if ( v12->m_uOutputs > 0 )
- {
- v12->m_pAdapter = pAdapter;
- ++nAdapters;
- }
- if ( ++uIndex >= uAdapters )
- goto SetAdapterCount;
- }
- }
- }
- }
- return 0i64;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement