[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 CoreVendor = "MobileGL-Dev";
inline const Version CoreVersion = {1, 0, 0, "-Dev"};
extern RendererInfo* RendererInfoPtr;
extern UniquePtr<RendererInfo> RendererInfoPtr;
namespace Backend {
#define MOBILEGL_BACKEND MOBILEGL_BACKEND_TYPE_DIRECT_GLES
-1
View File
@@ -1,5 +1,4 @@
#pragma once
#include <Includes.h>
#include <MG_Util/GLExtensions.h>
+19 -20
View File
@@ -1,33 +1,15 @@
#include "Backends.h"
#include "MG_Util/Types.h"
#include <Config.h>
#include <MG_Util/BackendLoaders/OpenGL/Loader.h>
#include <MG_Util/Converters/MGToStr/GLExtensionConverter.h>
namespace MobileGL {
namespace MG_Config {
// TODO: tidy this mess up
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
UniquePtr<RendererInfo> RendererInfoPtr = nullptr;
} // namespace MG_Config
namespace MG_Backend {
static RendererInfo RendererInfo;
void LogBackendInfo() {
if (MG_Config::RendererInfoPtr) {
MGLOG_I("MobileGL Backend Info:");
@@ -67,6 +49,23 @@ namespace MobileGL {
void Init() {
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();
LogBackendInfo();
}