mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-28 10:41:15 +00:00
WIP
This commit is contained in:
parent
50541075eb
commit
29facdf35f
@ -473,8 +473,9 @@ MxS32 MxDeviceEnumerate::ProcessDeviceBytes(MxS32 p_deviceNum, GUID& p_guid)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
GUID4 compareGuid;
|
GUID4 compareGuid;
|
||||||
MxDeviceEnumerateElement& elem = *it;
|
MxDeviceEnumerateElement& deviceEnumerate = *it;
|
||||||
for (list<MxDevice>::iterator it2 = elem.m_devices.begin(); it2 != elem.m_devices.end(); it2++) {
|
for (list<MxDevice>::iterator it2 = deviceEnumerate.m_devices.begin(); it2 != deviceEnumerate.m_devices.end();
|
||||||
|
it2++) {
|
||||||
memcpy(&compareGuid, (*it2).m_guid, sizeof(GUID4));
|
memcpy(&compareGuid, (*it2).m_guid, sizeof(GUID4));
|
||||||
|
|
||||||
if (compareGuid.m_data1 == deviceGuid.m_data1 && compareGuid.m_data2 == deviceGuid.m_data2 &&
|
if (compareGuid.m_data1 == deviceGuid.m_data1 && compareGuid.m_data2 == deviceGuid.m_data2 &&
|
||||||
@ -521,10 +522,51 @@ MxResult MxDeviceEnumerate::GetDevice(
|
|||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1009d0d0
|
// FUNCTION: LEGO1 0x1009d0d0
|
||||||
MxResult MxDeviceEnumerate::FUN_1009d0d0()
|
MxS32 MxDeviceEnumerate::FUN_1009d0d0()
|
||||||
{
|
{
|
||||||
return FAILURE;
|
if (!m_initialized)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (m_list.empty())
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
MxS32 i = 0;
|
||||||
|
MxS32 j = 0;
|
||||||
|
MxS32 k = -1;
|
||||||
|
MxU32 und = FUN_1009d1a0();
|
||||||
|
|
||||||
|
for (list<MxDeviceEnumerateElement>::iterator it = m_list.begin();; it++) {
|
||||||
|
if (it == m_list.end())
|
||||||
|
return k;
|
||||||
|
|
||||||
|
for (list<MxDevice>::iterator it2 = (*it).m_devices.begin(); it2 != (*it).m_devices.end(); it2++) {
|
||||||
|
if ((*it2).m_HWDesc.dcmColorModel)
|
||||||
|
return j;
|
||||||
|
|
||||||
|
if ((und && (*it2).m_HELDesc.dcmColorModel == D3DCOLOR_RGB && i == 0) ||
|
||||||
|
(*it2).m_HELDesc.dcmColorModel == D3DCOLOR_MONO && i == 0 && k < 0)
|
||||||
|
k = j;
|
||||||
|
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x1009d1a0
|
||||||
|
undefined4 MxDeviceEnumerate::FUN_1009d1a0()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// STUB: LEGO1 0x1009d1e0
|
||||||
|
undefined4 MxDeviceEnumerate::FUN_1009d1e0()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FUNCTION: LEGO1 0x1009d210
|
// FUNCTION: LEGO1 0x1009d210
|
||||||
@ -534,21 +576,22 @@ MxResult MxDeviceEnumerate::FUN_1009d210()
|
|||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
for (list<MxDeviceEnumerateElement>::iterator it = m_list.begin(); it != m_list.end();) {
|
for (list<MxDeviceEnumerateElement>::iterator it = m_list.begin(); it != m_list.end();) {
|
||||||
MxDeviceEnumerateElement& elem = *it;
|
MxDeviceEnumerateElement& deviceEnumerate = *it;
|
||||||
|
|
||||||
if (!FUN_1009d370(elem))
|
if (!FUN_1009d370(deviceEnumerate))
|
||||||
m_list.erase(it++);
|
m_list.erase(it++);
|
||||||
else {
|
else {
|
||||||
for (list<MxDevice>::iterator it2 = elem.m_devices.begin(); it2 != elem.m_devices.end();) {
|
for (list<MxDevice>::iterator it2 = deviceEnumerate.m_devices.begin();
|
||||||
|
it2 != deviceEnumerate.m_devices.end();) {
|
||||||
MxDevice& device = *it2;
|
MxDevice& device = *it2;
|
||||||
|
|
||||||
if (!FUN_1009d3d0(device))
|
if (!FUN_1009d3d0(device))
|
||||||
elem.m_devices.erase(it2++);
|
deviceEnumerate.m_devices.erase(it2++);
|
||||||
else
|
else
|
||||||
it2++;
|
it2++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (elem.m_devices.empty())
|
if (deviceEnumerate.m_devices.empty())
|
||||||
m_list.erase(it++);
|
m_list.erase(it++);
|
||||||
else
|
else
|
||||||
it++;
|
it++;
|
||||||
@ -573,8 +616,19 @@ MxBool MxDeviceEnumerate::FUN_1009d370(MxDeviceEnumerateElement& p_deviceEnumera
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// STUB: LEGO1 0x1009d3d0
|
// FUNCTION: LEGO1 0x1009d3d0
|
||||||
MxBool MxDeviceEnumerate::FUN_1009d3d0(MxDevice& p_device)
|
MxBool MxDeviceEnumerate::FUN_1009d3d0(MxDevice& p_device)
|
||||||
{
|
{
|
||||||
|
if (m_list.size() <= 0)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (p_device.m_HWDesc.dcmColorModel)
|
||||||
|
return p_device.m_HWDesc.dwDeviceZBufferBitDepth & DDBD_16 && p_device.m_HWDesc.dpcTriCaps.dwTextureCaps & 1;
|
||||||
|
|
||||||
|
for (list<MxDevice>::iterator it = m_list.front().m_devices.begin(); it != m_list.front().m_devices.end(); it++) {
|
||||||
|
if ((&*it) == &p_device)
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -181,7 +181,7 @@ class MxDeviceEnumerate {
|
|||||||
MxS32 ParseDeviceName(const char* p_deviceId);
|
MxS32 ParseDeviceName(const char* p_deviceId);
|
||||||
MxS32 ProcessDeviceBytes(MxS32 p_deviceNum, GUID& p_guid);
|
MxS32 ProcessDeviceBytes(MxS32 p_deviceNum, GUID& p_guid);
|
||||||
MxResult GetDevice(MxS32 p_deviceNum, MxDeviceEnumerateElement*& p_deviceEnumerate, MxDevice*& p_device);
|
MxResult GetDevice(MxS32 p_deviceNum, MxDeviceEnumerateElement*& p_deviceEnumerate, MxDevice*& p_device);
|
||||||
MxResult FUN_1009d0d0();
|
MxS32 FUN_1009d0d0();
|
||||||
MxResult FUN_1009d210();
|
MxResult FUN_1009d210();
|
||||||
MxBool FUN_1009d370(MxDeviceEnumerateElement& p_deviceEnumerate);
|
MxBool FUN_1009d370(MxDeviceEnumerateElement& p_deviceEnumerate);
|
||||||
MxBool FUN_1009d3d0(MxDevice& p_device);
|
MxBool FUN_1009d3d0(MxDevice& p_device);
|
||||||
@ -198,6 +198,8 @@ class MxDeviceEnumerate {
|
|||||||
LPD3DDEVICEDESC p_HELDesc,
|
LPD3DDEVICEDESC p_HELDesc,
|
||||||
LPVOID p_context
|
LPVOID p_context
|
||||||
);
|
);
|
||||||
|
static undefined4 FUN_1009d1a0();
|
||||||
|
static undefined4 FUN_1009d1e0();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
list<MxDeviceEnumerateElement> m_list; // 0x04
|
list<MxDeviceEnumerateElement> m_list; // 0x04
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user