MCPcopy Create free account
hub / github.com/crownengine/crown / rendererCreate

Function rendererCreate

3rdparty/bgfx/src/bgfx.cpp:2775–2868  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2773 }
2774
2775 RendererContextI* rendererCreate(const Init& _init)
2776 {
2777 int32_t scores[RendererType::Count];
2778 uint32_t numScores = 0;
2779
2780 for (uint32_t ii = 0; ii < RendererType::Count; ++ii)
2781 {
2782 RendererType::Enum renderer = RendererType::Enum(ii);
2783 if (s_rendererCreator[ii].supported)
2784 {
2785 int32_t score = 0;
2786 if (_init.type == renderer)
2787 {
2788 score += 1000;
2789 }
2790
2791 score += RendererType::Noop != renderer ? 1 : 0;
2792
2793 if (BX_ENABLED(BX_PLATFORM_WINDOWS) )
2794 {
2795 if (windowsVersionIs(Condition::GreaterEqual, 0x0602) )
2796 {
2797 score += RendererType::Direct3D11 == renderer ? 20 : 0;
2798 score += RendererType::Direct3D12 == renderer ? 10 : 0;
2799 }
2800 else if (windowsVersionIs(Condition::GreaterEqual, 0x0601) )
2801 {
2802 score += RendererType::Direct3D11 == renderer ? 20 : 0;
2803 score += RendererType::Direct3D12 == renderer ? -100 : 0;
2804 }
2805 else
2806 {
2807 score += RendererType::Direct3D12 == renderer ? -100 : 0;
2808 }
2809 }
2810 else if (BX_ENABLED(BX_PLATFORM_LINUX) )
2811 {
2812 score += RendererType::Vulkan == renderer ? 50 : 0;
2813 score += RendererType::OpenGL == renderer ? 40 : 0;
2814 score += RendererType::OpenGLES == renderer ? 30 : 0;
2815 score += RendererType::Direct3D12 == renderer ? 20 : 0;
2816 score += RendererType::Direct3D11 == renderer ? 10 : 0;
2817 }
2818 else if (BX_ENABLED(BX_PLATFORM_OSX) )
2819 {
2820 score += RendererType::Metal == renderer ? 20 : 0;
2821 score += RendererType::Vulkan == renderer ? 10 : 0;
2822 }
2823 else if (BX_ENABLED(BX_PLATFORM_IOS) || BX_ENABLED(BX_PLATFORM_VISIONOS))
2824 {
2825 score += RendererType::Metal == renderer ? 20 : 0;
2826 }
2827 else if (BX_ENABLED(0
2828 || BX_PLATFORM_ANDROID
2829 || BX_PLATFORM_EMSCRIPTEN
2830 || BX_PLATFORM_RPI
2831 ) )
2832 {

Callers 2

flipMethod · 0.70
rendererExecCommandsMethod · 0.70

Calls 3

windowsVersionIsFunction · 0.85
quickSortFunction · 0.85
EnumEnum · 0.70

Tested by

no test coverage detected