[Fix] (MG_Backend): Fix RendererInfoPtr not accessible.

This commit is contained in:
BZLZHH
2025-10-31 13:44:51 +08:00
parent d982928a23
commit 73f8b88b5c
3 changed files with 20 additions and 22 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ namespace MobileGL {
inline const String CoreName = "MobileGL Core"; inline const String CoreName = "MobileGL Core";
inline const String CoreVendor = "MobileGL-Dev"; inline const String CoreVendor = "MobileGL-Dev";
inline const Version CoreVersion = {1, 0, 0, "-Dev"}; inline const Version CoreVersion = {1, 0, 0, "-Dev"};
extern RendererInfo* RendererInfoPtr; extern UniquePtr<RendererInfo> RendererInfoPtr;
namespace Backend { namespace Backend {
#define MOBILEGL_BACKEND MOBILEGL_BACKEND_TYPE_DIRECT_GLES #define MOBILEGL_BACKEND MOBILEGL_BACKEND_TYPE_DIRECT_GLES
-1
View File
@@ -1,5 +1,4 @@
#pragma once #pragma once
#include <Includes.h> #include <Includes.h>
#include <MG_Util/GLExtensions.h> #include <MG_Util/GLExtensions.h>
+19 -20
View File
@@ -1,33 +1,15 @@
#include "Backends.h" #include "Backends.h"
#include "MG_Util/Types.h"
#include <Config.h> #include <Config.h>
#include <MG_Util/BackendLoaders/OpenGL/Loader.h> #include <MG_Util/BackendLoaders/OpenGL/Loader.h>
#include <MG_Util/Converters/MGToStr/GLExtensionConverter.h> #include <MG_Util/Converters/MGToStr/GLExtensionConverter.h>
namespace MobileGL { namespace MobileGL {
namespace MG_Config { namespace MG_Config {
// TODO: tidy this mess up UniquePtr<RendererInfo> RendererInfoPtr = nullptr;
RendererInfo* RendererInfoPtr =
#if MOBILEGL_BACKEND == MOBILEGL_BACKEND_DILIGENT
switch (MG_Config::Backend::Diligent::SpecificBackend) {
case MG_Backend::Diligent::SpecificBackendType::Vulkan:
MG_Config::RendererInfoPtr = &MG_Backend::Diligent::RendererInfoVulkan;
break;
case MG_Backend::Diligent::SpecificBackendType::Metal:
MG_Config::RendererInfoPtr = &MG_Backend::Diligent::RendererInfoMetal;
break;
default:
throw RuntimeError("Unsupported renderer type");
}
#elif MOBILEGL_BACKEND == MOBILEGL_BACKEND_TYPE_DIRECT_GLES
&MG_Backend::DirectGLES::RendererInfo;
#else
MG_Config::RendererInfoPtr = &RendererInfoUnknown;
#endif
} // namespace MG_Config } // namespace MG_Config
namespace MG_Backend { namespace MG_Backend {
static RendererInfo RendererInfo;
void LogBackendInfo() { void LogBackendInfo() {
if (MG_Config::RendererInfoPtr) { if (MG_Config::RendererInfoPtr) {
MGLOG_I("MobileGL Backend Info:"); MGLOG_I("MobileGL Backend Info:");
@@ -67,6 +49,23 @@ namespace MobileGL {
void Init() { void Init() {
MGLOG_D("Initializing MobileGL Backend..."); MGLOG_D("Initializing MobileGL Backend...");
#if MOBILEGL_BACKEND == MOBILEGL_BACKEND_DILIGENT
switch (MG_Config::Backend::Diligent::SpecificBackend) {
case MG_Backend::Diligent::SpecificBackendType::Vulkan:
MG_Config::RendererInfoPtr = MakeUnique<RendererInfo>(Diligent::RendererInfoVulkan);
break;
case MG_Backend::Diligent::SpecificBackendType::Metal:
MG_Config::RendererInfoPtr = MakeUnique<RendererInfo>(Diligent::RendererInfoMetal);
break;
default:
throw RuntimeError("Unsupported renderer type");
}
#elif MOBILEGL_BACKEND == MOBILEGL_BACKEND_TYPE_DIRECT_GLES
MG_Config::RendererInfoPtr = MakeUnique<RendererInfo>(DirectGLES::RendererInfo);
#else
MG_Config::RendererInfoPtr = MakeUnique<RendererInfo>(Unknown::RendererInfoUnknown);
#endif
InitSpecificBackendLibs(); InitSpecificBackendLibs();
LogBackendInfo(); LogBackendInfo();
} }