[Feat] (ProgramState): Implement automatic GLSL uniform management.

- Add SPIRV-Cross/glslang integration for uniform reflection.
- Auto-detect and assign locations for uniforms/samplers.
- Support most types of uniform.
- Implement glUniform* functions with type safety.
- Add MG_Util::Program:
  - GLSL-SPIRV conversion
  - SPIRV uniform reflection
  - Program uniform dumping
This commit is contained in:
BZLZHH
2025-05-03 22:50:41 +08:00
parent dc5f74cdb9
commit 383ec85400
16 changed files with 1696 additions and 171 deletions
+10
View File
@@ -47,6 +47,9 @@
#ifndef MOBILEGL_BUFFERSTATE_H
#include "MG_GL/State/Buffer/BufferState.h"
#endif
#ifndef MOBILEGL_SHADEROBJECT_H
#include "MG_GL/State/Program/ShaderObject.h"
#endif
#ifndef MOBILEGL_PROGRAMSTATE_H
#include "MG_GL/State/Program/ProgramState.h"
#endif
@@ -56,6 +59,12 @@
#ifndef MOBILEGL_DEBUG_H
#include "MG_UTIL/Debug/Debug.h"
#endif
#ifndef MOBILEGL_GLSLTOOL_H
#include "MG_UTIL/Program/GLSLTool.h"
#endif
#ifndef MOBILEGL_PROGRAM_DEBUGTOOL_H
#include "MG_UTIL/Program/DebugTool.h"
#endif
#ifndef MOBILEGL_GL_COMMON_H
#include "MG_GL/Implementations/GL/Common/GL_Common.h"
#endif
@@ -87,6 +96,7 @@
#include <algorithm>
#include <array>
#include <random>
#include <optional>
#include <unordered_map>
#include <queue>
#include <vulkan/vulkan.h>