GLchar *name;
int32_t name_maxcount;
int32_t *name_count;
- GLboolean *retval;
program = yagl_transport_get_out_GLuint(t);
index = yagl_transport_get_out_GLuint(t);
yagl_transport_get_in_arg(t, (void**)&size);
if (!yagl_transport_get_in_array(t, sizeof(GLchar), (void**)&name, &name_maxcount, &name_count)) {
return false;
}
- yagl_transport_get_in_arg(t, (void**)&retval);
YAGL_LOG_FUNC_ENTER_SPLIT5(glGetActiveAttrib, GLuint, GLuint, void*, void*, void*, program, index, size, type, name);
*name_count = 0;
- *retval = yagl_host_glGetActiveAttrib(program, index, size, type, name, name_maxcount, name_count);
- YAGL_LOG_FUNC_EXIT_SPLIT(GLboolean, *retval);
+ (void)yagl_host_glGetActiveAttrib(program, index, size, type, name, name_maxcount, name_count);
+ YAGL_LOG_FUNC_EXIT(NULL);
return true;
}
GLchar *name;
int32_t name_maxcount;
int32_t *name_count;
- GLboolean *retval;
program = yagl_transport_get_out_GLuint(t);
index = yagl_transport_get_out_GLuint(t);
yagl_transport_get_in_arg(t, (void**)&size);
if (!yagl_transport_get_in_array(t, sizeof(GLchar), (void**)&name, &name_maxcount, &name_count)) {
return false;
}
- yagl_transport_get_in_arg(t, (void**)&retval);
YAGL_LOG_FUNC_ENTER_SPLIT5(glGetActiveUniform, GLuint, GLuint, void*, void*, void*, program, index, size, type, name);
*name_count = 0;
- *retval = yagl_host_glGetActiveUniform(program, index, size, type, name, name_maxcount, name_count);
- YAGL_LOG_FUNC_EXIT_SPLIT(GLboolean, *retval);
+ (void)yagl_host_glGetActiveUniform(program, index, size, type, name, name_maxcount, name_count);
+ YAGL_LOG_FUNC_EXIT(NULL);
return true;
}
static bool yagl_func_glLinkProgram(struct yagl_transport *t)
{
GLuint program;
+ GLint *params;
+ int32_t params_maxcount;
+ int32_t *params_count;
program = yagl_transport_get_out_GLuint(t);
- YAGL_LOG_FUNC_ENTER_SPLIT1(glLinkProgram, GLuint, program);
- (void)yagl_host_glLinkProgram(program);
+ if (!yagl_transport_get_in_array(t, sizeof(GLint), (void**)¶ms, ¶ms_maxcount, ¶ms_count)) {
+ return false;
+ }
+ YAGL_LOG_FUNC_ENTER_SPLIT2(glLinkProgram, GLuint, void*, program, params);
+ *params_count = 0;
+ (void)yagl_host_glLinkProgram(program, params, params_maxcount, params_count);
YAGL_LOG_FUNC_EXIT(NULL);
return true;
name);
}
-GLboolean yagl_host_glGetActiveAttrib(GLuint program,
+void yagl_host_glGetActiveAttrib(GLuint program,
GLuint index,
GLint *size,
GLenum *type,
if (tmp >= 0) {
*name_count = MIN(tmp + 1, name_maxcount);
- return GL_TRUE;
- } else {
- return GL_FALSE;
}
}
-GLboolean yagl_host_glGetActiveUniform(GLuint program,
+void yagl_host_glGetActiveUniform(GLuint program,
GLuint index,
GLint *size,
GLenum *type,
if (tmp >= 0) {
*name_count = MIN(tmp + 1, name_maxcount);
- return GL_TRUE;
- } else {
- return GL_FALSE;
}
}
gles_api_ts->driver->GetVertexAttribiv(index, pname, params);
}
-void yagl_host_glLinkProgram(GLuint program)
+void yagl_host_glLinkProgram(GLuint program,
+ GLint *params, int32_t params_maxcount, int32_t *params_count)
{
- gles_api_ts->driver->LinkProgram(yagl_gles_object_get(program));
+ GLuint obj = yagl_gles_object_get(program);
+
+ gles_api_ts->driver->LinkProgram(obj);
+
+ if (!params || (params_maxcount != 6)) {
+ return;
+ }
+
+ gles_api_ts->driver->GetProgramiv(obj, GL_LINK_STATUS, ¶ms[0]);
+ gles_api_ts->driver->GetProgramiv(obj, GL_INFO_LOG_LENGTH, ¶ms[1]);
+ gles_api_ts->driver->GetProgramiv(obj, GL_ACTIVE_ATTRIBUTES, ¶ms[2]);
+ gles_api_ts->driver->GetProgramiv(obj, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, ¶ms[3]);
+ gles_api_ts->driver->GetProgramiv(obj, GL_ACTIVE_UNIFORMS, ¶ms[4]);
+ gles_api_ts->driver->GetProgramiv(obj, GL_ACTIVE_UNIFORM_MAX_LENGTH, ¶ms[5]);
+
+ *params_count = 6;
}
void yagl_host_glUniform1f(GLboolean tl,
void yagl_host_glBindAttribLocation(GLuint program,
GLuint index,
const GLchar *name, int32_t name_count);
-GLboolean yagl_host_glGetActiveAttrib(GLuint program,
+void yagl_host_glGetActiveAttrib(GLuint program,
GLuint index,
GLint *size,
GLenum *type,
GLchar *name, int32_t name_maxcount, int32_t *name_count);
-GLboolean yagl_host_glGetActiveUniform(GLuint program,
+void yagl_host_glGetActiveUniform(GLuint program,
GLuint index,
GLint *size,
GLenum *type,
void yagl_host_glGetVertexAttribiv(GLuint index,
GLenum pname,
GLint *params, int32_t params_maxcount, int32_t *params_count);
-void yagl_host_glLinkProgram(GLuint program);
+void yagl_host_glLinkProgram(GLuint program,
+ GLint *params, int32_t params_maxcount, int32_t *params_count);
void yagl_host_glUniform1f(GLboolean tl,
uint32_t location,
GLfloat x);