Skip to content

Commit 565455d

Browse files
author
nitrocaster
committed
Fix R4 availability misdetection.
1 parent fa9db40 commit 565455d

File tree

1 file changed

+19
-67
lines changed

1 file changed

+19
-67
lines changed

src/xrEngine/EngineAPI.cpp

Lines changed: 19 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ CEngineAPI::~CEngineAPI()
3434
// destroy quality token here
3535
if (vid_quality_token)
3636
{
37-
for (int i = 0; vid_quality_token[i].name; i++)
38-
{
39-
xr_free(vid_quality_token[i].name);
40-
}
4137
xr_free(vid_quality_token);
4238
vid_quality_token = NULL;
4339
}
@@ -274,81 +270,37 @@ void CEngineAPI::CreateRendererList()
274270
}
275271

276272
hRender = 0;
277-
278-
xr_vector<LPCSTR> _tmp;
279-
u32 i = 0;
280-
bool bBreakLoop = false;
281-
for (; i < 6; ++i)
273+
bool proceed = true;
274+
xr_vector<LPCSTR> tmp;
275+
tmp.push_back("renderer_r1");
276+
if (proceed && (proceed = bSupports_r2))
282277
{
283-
switch (i)
284-
{
285-
case 1:
286-
if (!bSupports_r2)
287-
bBreakLoop = true;
288-
break;
289-
case 3: //"renderer_r2.5"
290-
if (!bSupports_r2_5)
291-
bBreakLoop = true;
292-
break;
293-
case 5: //"renderer_r_dx10"
294-
if (!bSupports_r3)
295-
bBreakLoop = true;
296-
break;
297-
case 6: //"renderer_r_dx11"
298-
if (!bSupports_r4)
299-
bBreakLoop = true;
300-
break;
301-
default:
302-
;
303-
}
304-
305-
if (bBreakLoop) break;
306-
307-
_tmp.push_back(NULL);
308-
LPCSTR val = NULL;
309-
switch (i)
310-
{
311-
case 0:
312-
val = "renderer_r1";
313-
break;
314-
case 1:
315-
val = "renderer_r2a";
316-
break;
317-
case 2:
318-
val = "renderer_r2";
319-
break;
320-
case 3:
321-
val = "renderer_r2.5";
322-
break;
323-
case 4:
324-
val = "renderer_gl";
325-
break;
326-
case 5:
327-
val = "renderer_r3";
328-
break; // -)
329-
case 6:
330-
val = "renderer_r4";
331-
break; // -)
332-
}
333-
if (bBreakLoop) break;
334-
_tmp.back() = xr_strdup(val);
278+
tmp.push_back("renderer_r2a");
279+
tmp.push_back("renderer_r2");
335280
}
336-
337-
u32 _cnt = _tmp.size() + 1;
281+
if (proceed && (proceed = bSupports_r2_5))
282+
tmp.push_back("renderer_r2.5");
283+
if (proceed && (proceed = bSupports_gl))
284+
tmp.push_back("renderer_gl");
285+
if (proceed && (proceed = bSupports_r3))
286+
tmp.push_back("renderer_r3");
287+
if (proceed && (proceed = bSupports_r4))
288+
tmp.push_back("renderer_r4");
289+
u32 _cnt = tmp.size() + 1;
338290
vid_quality_token = xr_alloc<xr_token>(_cnt);
339291

340292
vid_quality_token[_cnt - 1].id = -1;
341293
vid_quality_token[_cnt - 1].name = NULL;
342294

343295
#ifdef DEBUG
344-
Msg("Available render modes[%d]:", _tmp.size());
296+
Msg("Available render modes[%d]:", tmp.size());
345297
#endif // DEBUG
346-
for (u32 i = 0; i < _tmp.size(); ++i)
298+
for (u32 i = 0; i < tmp.size(); ++i)
347299
{
348300
vid_quality_token[i].id = i;
349-
vid_quality_token[i].name = _tmp[i];
301+
vid_quality_token[i].name = tmp[i];
350302
#ifdef DEBUG
351-
Msg("[%s]", _tmp[i]);
303+
Msg("[%s]", tmp[i]);
352304
#endif // DEBUG
353305
}
354306

0 commit comments

Comments
 (0)