diff --git a/src/bgfx.cpp b/src/bgfx.cpp index e16d4f71..070f2f46 100644 --- a/src/bgfx.cpp +++ b/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; }