make some changes to opengl api gen, discussing on rewrite of all opengl binding, making it neat and structral
This commit is contained in:
@@ -2,6 +2,31 @@
|
||||
|
||||
评估日期:2026-08-24
|
||||
|
||||
## 实施状态(2026-08-25)
|
||||
|
||||
已完成第一轮无公开 API 破坏的文件整理:
|
||||
|
||||
- 手写 `OpenGLFunction` 已拆分到 `src/StgSharp.Graphics/OpenGL/Api`;
|
||||
- 版本 Raw wrapper 已移动到 `src/StgSharp.Graphics/OpenGL/Generated` 并使用 `.g.cs` 后缀;
|
||||
- `OpenglContext` 已移动为 `Generated/OpenglContext.g.cs`;
|
||||
- `SetUniformValue` 已从 Uniform 模型文件移动到 `Api/OpenGLFunction.Uniform.cs`;
|
||||
- Texture Unit 状态已移动到 `Api/OpenGLFunction.TextureUnits.cs`;
|
||||
- 已修复两个 `Vec4` overload 对 `glUniform1fv` 的错误调用,现调用 `glUniform4fv(location, 1, ...)`;
|
||||
- GenerateGL 已改为只生成一个合并 Context,Raw wrapper 继续按版本输出;
|
||||
- GenerateGL 输出文件名已与新的 `Generated` 目录约定对齐。
|
||||
|
||||
第二轮生成器实验已经完成并输出到 `test/StgSharp.GenerateGL/Generated`:
|
||||
|
||||
- `glUniform1/2/3/4[f|i|ui|d][v]` 与 `glProgramUniform*` 已生成为 `SetUniformValue(...)` 重载;
|
||||
- 已生成 scalar、`ReadOnlySpan<T>`、`Vec2/3/4` 和 `GraphicsMatrix` 入口;
|
||||
- 所有 uniform setter 已从 Raw wrapper 排除;没有对应托管矩阵类型的形状暂时只存在于 `OpenglContext`;
|
||||
- TexParameter、SamplerParameter、VertexAttrib、ClearBuffer 及 indexed API 等可由 C# 参数签名区分的函数已归并重载;
|
||||
- 归并发生签名冲突时,生成器会保留必要的维度或语义尾缀;
|
||||
- `OpenglContext` 仍保持纯 ABI 函数指针表,`GlHandle` 暂不拆分;
|
||||
- 已移除“参数名为 type 就映射为 ShaderType”的不安全启发式规则。
|
||||
|
||||
Loader/ContextShadow 合并、BufferObject 专项生成和生成快照测试尚未实施。
|
||||
|
||||
## 1. 评估目的
|
||||
|
||||
本文评估 `StgSharp.GenerateGL` 与 `src/StgSharp.Graphics` 当前 OpenGL 绑定代码之间的关系,重点回答以下问题:
|
||||
|
||||
Reference in New Issue
Block a user