[Feat] (MG_Util/Converters): Implement converters related to framebuffer enum.

This commit is contained in:
BZLZHH
2025-10-02 22:30:17 +08:00
parent 3ba1842758
commit 87f487c3aa
7 changed files with 144 additions and 0 deletions
+4
View File
@@ -35,13 +35,16 @@ set(SOURCE_FILES
MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp
MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp
MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp
MobileGL/MG_Util/Converters/MGToStr/FramebufferEnumConverter.cpp
MobileGL/MG_Util/Converters/MGToStr/TextureEnumConverter.cpp
MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp
MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp
MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp
MobileGL/MG_Util/Converters/MGToGL/FramebufferEnumConverter.cpp
MobileGL/MG_Util/Converters/MGToGL/TextureEnumConverter.cpp
MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp
MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp
MobileGL/MG_Util/Converters/GLToMG/FramebufferEnumConverter.cpp
MobileGL/MG_Util/Converters/GLToMG/TextureEnumConverter.cpp
MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp
MobileGL/MG_Util/Converters/MGToMG/TextureEnumConverter.cpp
@@ -56,6 +59,7 @@ set(SOURCE_FILES
MobileGL/MG_Impl/EGLImpl/Temporary/TemporaryEGLImpl.cpp
# @INSERTION_POINT:SOURCE_FILE_GLIMPL@ #
#MobileGL/MG_Impl/GLImpl/Framebuffer/GL_Framebuffer.cpp
MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp
MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp
MobileGL/MG_Impl/GLImpl/Texture/Validators.cpp
@@ -0,0 +1,37 @@
#include "FramebufferEnumConverter.h"
namespace MobileGL {
namespace MG_Util {
FramebufferTarget ConvertGLEnumToFramebufferTarget(GLenum framebufferTarget) {
switch (framebufferTarget) {
case GL_FRAMEBUFFER:
case GL_DRAW_FRAMEBUFFER:
return FramebufferTarget::Draw;
case GL_READ_FRAMEBUFFER:
return FramebufferTarget::Read;
case GL_UNKNOWN_MGL:
default:
return FramebufferTarget::Unknown;
}
}
FramebufferAttachmentType ConvertGLEnumToFramebufferAttachmentType(GLenum attachment) {
if (attachment >= GL_COLOR_ATTACHMENT0 && attachment <= GL_COLOR_ATTACHMENT31) {
return static_cast<FramebufferAttachmentType>(static_cast<SizeT>(FramebufferAttachmentType::Color0) +
(attachment - GL_COLOR_ATTACHMENT0));
}
switch (attachment) {
case GL_DEPTH_ATTACHMENT:
return FramebufferAttachmentType::Depth;
case GL_STENCIL_ATTACHMENT:
return FramebufferAttachmentType::Stencil;
case GL_DEPTH_STENCIL_ATTACHMENT:
return FramebufferAttachmentType::DepthStencil;
case GL_UNKNOWN_MGL:
default:
return FramebufferAttachmentType::Unknown;
}
}
} // namespace MG_Util
} // namespace MobileGL
@@ -0,0 +1,10 @@
#pragma once
#include <Includes.h>
#include <MG_State/GLState/FramebufferState/FramebufferObject.h>
namespace MobileGL {
namespace MG_Util {
FramebufferTarget ConvertGLEnumToFramebufferTarget(GLenum bufferTarget);
FramebufferAttachmentType ConvertGLEnumToFramebufferAttachmentType(GLenum attachment);
} // namespace MG_Util
} // namespace MobileGL
@@ -0,0 +1,37 @@
#include "FramebufferEnumConverter.h"
namespace MobileGL {
namespace MG_Util {
FramebufferTarget ConvertGLEnumToFramebufferTarget(GLenum framebufferTarget) {
switch (framebufferTarget) {
case GL_FRAMEBUFFER:
case GL_DRAW_FRAMEBUFFER:
return FramebufferTarget::Draw;
case GL_READ_FRAMEBUFFER:
return FramebufferTarget::Read;
case GL_UNKNOWN_MGL:
default:
return FramebufferTarget::Unknown;
}
}
FramebufferAttachmentType ConvertGLEnumToFramebufferAttachmentType(GLenum attachment) {
if (attachment >= GL_COLOR_ATTACHMENT0 && attachment <= GL_COLOR_ATTACHMENT31) {
return static_cast<FramebufferAttachmentType>(static_cast<SizeT>(FramebufferAttachmentType::Color0) +
(attachment - GL_COLOR_ATTACHMENT0));
}
switch (attachment) {
case GL_DEPTH_ATTACHMENT:
return FramebufferAttachmentType::Depth;
case GL_STENCIL_ATTACHMENT:
return FramebufferAttachmentType::Stencil;
case GL_DEPTH_STENCIL_ATTACHMENT:
return FramebufferAttachmentType::DepthStencil;
case GL_UNKNOWN_MGL:
default:
return FramebufferAttachmentType::Unknown;
}
}
} // namespace MG_Util
} // namespace MobileGL
@@ -0,0 +1,10 @@
#pragma once
#include <Includes.h>
#include <MG_State/GLState/FramebufferState/FramebufferObject.h>
namespace MobileGL {
namespace MG_Util {
GLenum ConvertFramebufferTargetToGLEnum(FramebufferTarget bufferTarget);
GLenum ConvertFramebufferAttachmentTypeToGLEnum(FramebufferAttachmentType attachment);
} // namespace MG_Util
} // namespace MobileGL
@@ -0,0 +1,36 @@
#include "FramebufferEnumConverter.h"
namespace MobileGL {
namespace MG_Util {
String ConvertFramebufferTargetToString(FramebufferTarget bufferTarget) {
switch (bufferTarget) {
case FramebufferTarget::Draw:
return "Draw";
case FramebufferTarget::Read:
return "Read";
case FramebufferTarget::Unknown:
default:
return "Unknown";
}
}
String ConvertFramebufferAttachmentTypeToString(FramebufferAttachmentType attachment) {
if (attachment >= FramebufferAttachmentType::Color0 && attachment <= FramebufferAttachmentType::Color31) {
return "Color" + std::to_string(static_cast<SizeT>(attachment) -
static_cast<SizeT>(FramebufferAttachmentType::Color0));
}
switch (attachment) {
case FramebufferAttachmentType::Depth:
return "Depth";
case FramebufferAttachmentType::Stencil:
return "Stencil";
case FramebufferAttachmentType::DepthStencil:
return "DepthStencil";
case FramebufferAttachmentType::Unknown:
default:
return "Unknown";
}
}
} // namespace MG_Util
} // namespace MobileGL
@@ -0,0 +1,10 @@
#pragma once
#include <Includes.h>
#include <MG_State/GLState/FramebufferState/FramebufferObject.h>
namespace MobileGL {
namespace MG_Util {
String ConvertFramebufferTargetToString(FramebufferTarget bufferTarget);
String ConvertFramebufferAttachmentTypeToString(FramebufferAttachmentType attachment);
} // namespace MG_Util
} // namespace MobileGL