Przeglądaj źródła

Bail out if only one renderer is present, but fails to initialize.

Branimir Karadžić 10 lat temu
rodzic
commit
051164a091
1 zmienionych plików z 11 dodań i 6 usunięć
  1. 11 6
      src/bgfx.cpp

+ 11 - 6
src/bgfx.cpp

@@ -1721,6 +1721,8 @@ namespace bgfx
 
 	RendererContextI* rendererCreate(RendererType::Enum _type)
 	{
+		RendererType::Enum last = RendererType::Count;
+
 		if (RendererType::Count == _type)
 		{
 again:
@@ -1823,14 +1825,17 @@ again:
 		}
 
 		RendererContextI* renderCtx = s_rendererCreator[_type].createFn();
-
-		if (NULL == renderCtx)
+		if (last != _type)
 		{
-			s_rendererCreator[_type].supported = false;
-			goto again;
-		}
+			if (NULL == renderCtx)
+			{
+				s_rendererCreator[_type].supported = false;
+				last = _type;
+				goto again;
+			}
 
-		s_rendererDestroyFn = s_rendererCreator[_type].destroyFn;
+			s_rendererDestroyFn = s_rendererCreator[_type].destroyFn;
+		}
 
 		return renderCtx;
 	}