@@ -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