This commit is contained in:
Christian Semmler 2024-12-20 11:41:54 -07:00
parent a942195b50
commit 093e9d8578
3 changed files with 62 additions and 53 deletions

View File

@ -117,15 +117,18 @@ Result GroupImpl::Bounds(D3DVECTOR *p_min, D3DVECTOR *p_max)
{ {
D3DRMBOX size; D3DRMBOX size;
IDirect3DRMFrame2* frame = m_data; IDirect3DRMFrame2* frame = m_data;
size.min.x = 88888.f; size.min.x = 88888.f;
size.min.y = 88888.f; size.min.y = 88888.f;
size.min.z = 88888.f; size.min.z = 88888.f;
size.max.x = -88888.f; size.max.x = -88888.f;
size.max.y = -88888.f; size.max.y = -88888.f;
size.max.z = -88888.f; size.max.z = -88888.f;
IDirect3DRMVisualArray* visuals; IDirect3DRMVisualArray* visuals;
Result result = (Result) SUCCEEDED(frame->GetVisuals(&visuals)); Result result = (Result) SUCCEEDED(frame->GetVisuals(&visuals));
if (result) {
if (result == Success) {
int i; int i;
for (i = 0; i < (int) visuals->GetSize(); i++) { for (i = 0; i < (int) visuals->GetSize(); i++) {
IDirect3DRMVisual* visual; IDirect3DRMVisual* visual;
@ -136,9 +139,11 @@ Result GroupImpl::Bounds(D3DVECTOR *p_min, D3DVECTOR *p_max)
* visual->QueryInterface(IID_IDirect3DRMMesh, (void**)&mesh)); * visual->QueryInterface(IID_IDirect3DRMMesh, (void**)&mesh));
*/ */
result = (Result) SUCCEEDED(visual->QueryInterface(IID_IDirect3DRMMeshBuilder, (void**) &mesh)); result = (Result) SUCCEEDED(visual->QueryInterface(IID_IDirect3DRMMeshBuilder, (void**) &mesh));
if (result) {
if (result == Success) {
D3DRMBOX box; D3DRMBOX box;
result = (Result) SUCCEEDED(mesh->GetBox(&box)); result = (Result) SUCCEEDED(mesh->GetBox(&box));
if (size.max.y < box.max.y) { if (size.max.y < box.max.y) {
size.max.y = box.max.y; size.max.y = box.max.y;
} }
@ -157,12 +162,16 @@ Result GroupImpl::Bounds(D3DVECTOR *p_min, D3DVECTOR *p_max)
if (size.max.x < box.max.x) { if (size.max.x < box.max.x) {
size.max.x = box.max.x; size.max.x = box.max.x;
} }
mesh->Release(); mesh->Release();
} }
visual->Release(); visual->Release();
} }
visuals->Release(); visuals->Release();
} }
*p_min = size.min; *p_min = size.min;
*p_max = size.max; *p_max = size.max;
return result; return result;