mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-09 12:48:32 +09:00
[Feat] (MG_Impl/GLImpl): implement glGetFragDataIndex
Fill the stubbed GL 3.3 Core glGetFragDataIndex, mirroring its already- implemented sibling glGetFragDataLocation: validate the program object and link status, then return the fragment color index the name binds to. Every active user-defined output uses color index 0. MobileGL does not yet track dual-source (index 1) bindings -- glBindFragDataLocationIndexed and the layout(index = 1) qualifier are unsupported -- so the result is exact for any program that does not use dual-source blending; a name that is not an active output (including gl_ built-ins) returns -1. Tests: assertions on the existing linked-program test (valid output -> 0, unknown name -> -1) plus a standalone invalid-handle case. The invalid- handle test drains the error queue it produces so no stale error leaks into a later test (the ProgramTest fixture does not reset it). ProgramTest 24/24.
This commit is contained in:
@@ -126,6 +126,7 @@ namespace MobileGL::MG_Impl::GLImpl {
|
||||
GLchar* uniformBlockName);
|
||||
void BindFragDataLocation(GLuint program, GLuint colorNumber, const char* name);
|
||||
GLint GetFragDataLocation(GLuint program, const char* name);
|
||||
GLint GetFragDataIndex(GLuint program, const char* name);
|
||||
void GetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint* params);
|
||||
GLuint GetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar* name);
|
||||
void GetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize,
|
||||
|
||||
Reference in New Issue
Block a user