## OpenGL State Manager ### **1. Initialization & Query Functions** - [x] glGetAttribLocation - [x] glGetBufferParameteriv - [x] glGetError - [x] glGetIntegerv - [x] glGetProgramiv - [x] glGetShaderiv - [x] glGetString - [x] glGetStringi - [x] glGetTexLevelParameteriv - [x] glGetUniformLocation --- ### **2. Texture Operations** - [x] glActiveTexture - [x] glBindTexture - [x] glDeleteTextures - [x] glGenTextures - [x] glTexImage2D - [x] glTexParameterf - [x] glTexParameteri - [x] glTexSubImage2D --- ### **3. Framebuffer Operations** - [x] glBindFramebuffer - [x] glCheckFramebufferStatus - [x] glDeleteFramebuffers - [x] glFramebufferTexture2D - [x] glGenFramebuffers   ~~glBlitFramebuffer~~ --- ### **4. Shader & Program Management** - [x] glAttachShader - [x] glBindAttribLocation - [x] glCompileShader - [x] glCreateProgram - [x] glCreateShader - [x] glDeleteProgram - [x] glDeleteShader - [x] glLinkProgram - [x] glShaderSource - [x] glUseProgram --- ### **5. Buffer & Vertex Array Operations** - [x] glBindBuffer - [x] glBindVertexArray - [x] glBufferData - [x] glEnableVertexAttribArray - [x] glGenBuffers - [x] glGenVertexArrays - [x] glMapBuffer - [x] glUnmapBuffer - [x] glVertexAttribIPointer - [x] glVertexAttribPointer - [x] glBufferSubData - [x] glMapBufferRange - [x] glFlushMappedBufferRange - [x] glCopyBufferSubData --- ### **6. State Management** - [x] glBlendFunc - [x] glBlendFuncSeparate - [x] glClear - [x] glClearColor - [x] glClearDepth - [x] glColorMask - [x] glDepthFunc - [x] glDepthMask - [x] glDisable - [x] glEnable - [x] glPixelStorei - [x] glViewport --- ### **7. Uniforms & Attributes** - [x] glUniform1fv - [x] glUniform1i - [x] glUniform1iv - [x] glUniform4fv - [x] glUniformMatrix4fv - [x] All glUniform\* in OpenGL 3.3 --- ### **8. Drawing Commands**   ~~glDrawElements~~ ## Abstraction Layer (MG_RHI) ### **1. Initialization & Query Functions**   ~~glGetAttribLocation~~   ~~glGetBufferParameteriv~~   ~~glGetError~~   ~~glGetIntegerv~~ - [ ] glGetProgramiv - [ ] glGetShaderiv - [ ] glGetString - [ ] glGetStringi   ~~glGetTexLevelParameteriv~~   ~~glGetUniformLocation~~ --- ### **2. Texture Operations** - [ ] glActiveTexture - [ ] glBindTexture - [ ] glDeleteTextures - [ ] glGenTextures - [ ] glTexImage2D - [ ] glTexParameterf - [ ] glTexParameteri - [ ] glTexSubImage2D --- ### **3. Framebuffer Operations** - [ ] glBindFramebuffer - [ ] glCheckFramebufferStatus - [ ] glDeleteFramebuffers - [ ] glFramebufferTexture2D - [ ] glGenFramebuffers - [ ] glBlitFramebuffer --- ### **4. Shader & Program Management** - [ ] glAttachShader - [ ] glBindAttribLocation - [ ] glCompileShader - [ ] glCreateProgram - [ ] glCreateShader - [ ] glDeleteProgram - [ ] glDeleteShader - [ ] glLinkProgram - [ ] glShaderSource - [ ] glUseProgram --- ### **5. Buffer & Vertex Array Operations** - [ ] glBindBuffer - [ ] glBindVertexArray - [ ] glBufferData - [ ] glEnableVertexAttribArray - [ ] glGenBuffers - [ ] glGenVertexArrays - [ ] glMapBuffer - [ ] glUnmapBuffer - [ ] glVertexAttribIPointer - [ ] glVertexAttribPointer - [ ] glBufferSubData - [ ] glMapBufferRange - [ ] glFlushMappedBufferRange - [ ] glCopyBufferSubData --- ### **6. State Management** - [ ] glBlendFunc - [ ] glBlendFuncSeparate - [ ] glClear - [ ] glClearColor - [ ] glClearDepth - [ ] glColorMask - [ ] glDepthFunc - [ ] glDepthMask - [ ] glDisable - [ ] glEnable - [ ] glPixelStorei - [ ] glViewport --- ### **7. Uniforms & Attributes** - [ ] glUniform1fv - [ ] glUniform1i - [ ] glUniform1iv - [ ] glUniform4fv - [ ] glUniformMatrix4fv - [ ] All glUniform\* in OpenGL 3.3 --- ### **8. Drawing Commands** - [ ] glDrawElements