mirror of
https://github.com/libretro/RetroArch
synced 2025-02-25 12:41:18 +00:00
Add callback for setting single uniform parameter
This commit is contained in:
parent
ae218cf1a5
commit
1230edf1ee
@ -110,7 +110,7 @@ struct uniform_cg_data
|
||||
CGparameter loc;
|
||||
};
|
||||
|
||||
static void cg_uniform_set_parameter(
|
||||
static void gl_cg_set_uniform_parameter(
|
||||
void *data,
|
||||
void *uniform_info_data,
|
||||
void *_shader_info_data,
|
||||
@ -326,7 +326,7 @@ static void gl_cg_set_texture_info(
|
||||
uniform_data[3].loc = params->tex_size_f;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
cg_uniform_set_parameter(cg_data, &uniform_params[i], NULL, &uniform_data[i]);
|
||||
gl_cg_set_uniform_parameter(cg_data, &uniform_params[i], NULL, &uniform_data[i]);
|
||||
|
||||
if (params->coord)
|
||||
{
|
||||
@ -442,7 +442,7 @@ static void gl_cg_set_params(void *data, void *shader_data,
|
||||
}
|
||||
|
||||
for (i = 0; i < uniform_count; i++)
|
||||
cg_uniform_set_parameter(cg_data, &uniform_params[i], &cg_data->prg[i], &uniform_data[i]);
|
||||
gl_cg_set_uniform_parameter(cg_data, &uniform_params[i], &cg_data->prg[i], &uniform_data[i]);
|
||||
|
||||
/* Set orig texture. */
|
||||
gl_cg_set_texture_info(cg_data, &cg_data->prg[cg_data->active_idx].orig, info);
|
||||
@ -506,7 +506,7 @@ static void gl_cg_set_params(void *data, void *shader_data,
|
||||
uniform_params[1].result.f.v0 = cg_data->shader->parameters[i].current;
|
||||
|
||||
for (j = 0; j < 2; j++)
|
||||
cg_uniform_set_parameter(cg_data, &uniform_params[j], &cg_data->prg[j], &pragma_cg_params[j]);
|
||||
gl_cg_set_uniform_parameter(cg_data, &uniform_params[j], &cg_data->prg[j], &pragma_cg_params[j]);
|
||||
}
|
||||
|
||||
/* Set state parameters. */
|
||||
@ -541,7 +541,7 @@ static void gl_cg_set_params(void *data, void *shader_data,
|
||||
uniform_params[1].result.f.v0 = tracker_info[i].value;
|
||||
|
||||
for (j = 0; j < 2; j++)
|
||||
cg_uniform_set_parameter(cg_data, &uniform_params[j], &cg_data->prg[j], &pragma_cg_params[j]);
|
||||
gl_cg_set_uniform_parameter(cg_data, &uniform_params[j], &cg_data->prg[j], &pragma_cg_params[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1282,6 +1282,7 @@ const shader_backend_t gl_cg_backend = {
|
||||
gl_cg_init,
|
||||
gl_cg_deinit,
|
||||
gl_cg_set_params,
|
||||
gl_cg_set_uniform_parameter,
|
||||
gl_cg_compile_program,
|
||||
gl_cg_use,
|
||||
gl_cg_num,
|
||||
|
@ -1049,7 +1049,7 @@ error:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void glsl_uniform_set_parameter(
|
||||
static void gl_glsl_set_uniform_parameter(
|
||||
void *data,
|
||||
void *uniform_info_data,
|
||||
void *shader_info_data,
|
||||
@ -1194,7 +1194,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
uniform_count++;
|
||||
|
||||
for (i = 0; i < uniform_count; i++)
|
||||
glsl_uniform_set_parameter(glsl, &uniform_params[i], NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &uniform_params[i], NULL, NULL);
|
||||
|
||||
/* Set lookup textures. */
|
||||
for (i = 0; i < glsl->shader->luts; i++)
|
||||
@ -1212,7 +1212,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
lut_uniform.type = UNIFORM_1I;
|
||||
lut_uniform.result.integer.v0 = texunit;
|
||||
|
||||
glsl_uniform_set_parameter(glsl, &lut_uniform, NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &lut_uniform, NULL, NULL);
|
||||
texunit++;
|
||||
}
|
||||
|
||||
@ -1234,7 +1234,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
orig_tex_uniform.type = UNIFORM_1I;
|
||||
orig_tex_uniform.result.integer.v0 = texunit;
|
||||
|
||||
glsl_uniform_set_parameter(glsl, &orig_tex_uniform, NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &orig_tex_uniform, NULL, NULL);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, info->tex);
|
||||
texunit++;
|
||||
@ -1257,7 +1257,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
orig_uniforms[1].enabled = true;
|
||||
|
||||
for (j = 0; j < 2; j++)
|
||||
glsl_uniform_set_parameter(glsl, &orig_uniforms[i], NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &orig_uniforms[i], NULL, NULL);
|
||||
|
||||
/* Pass texture coordinates. */
|
||||
if (uni->orig.tex_coord >= 0)
|
||||
@ -1285,7 +1285,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
feedback_texture_param.type = UNIFORM_1I;
|
||||
feedback_texture_param.result.integer.v0 = texunit;
|
||||
|
||||
glsl_uniform_set_parameter(glsl, &feedback_texture_param, NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &feedback_texture_param, NULL, NULL);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, feedback_info->tex);
|
||||
texunit++;
|
||||
@ -1308,7 +1308,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
feedback_uniforms[1].enabled = true;
|
||||
|
||||
for (j = 0; j < 2; j++)
|
||||
glsl_uniform_set_parameter(glsl, &feedback_uniforms[i], NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &feedback_uniforms[i], NULL, NULL);
|
||||
|
||||
/* Pass texture coordinates. */
|
||||
if (uni->feedback.tex_coord >= 0)
|
||||
@ -1359,7 +1359,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
fbo_tex_params[2].enabled = true;
|
||||
|
||||
for (j = 0; j < 3; j++)
|
||||
glsl_uniform_set_parameter(glsl, &fbo_tex_params[i], NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &fbo_tex_params[i], NULL, NULL);
|
||||
|
||||
if (uni->pass[i].tex_coord >= 0)
|
||||
{
|
||||
@ -1411,7 +1411,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
prev_tex_params[2].enabled = true;
|
||||
|
||||
for (j = 0; j < 3; j++)
|
||||
glsl_uniform_set_parameter(glsl, &prev_tex_params[i], NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &prev_tex_params[i], NULL, NULL);
|
||||
|
||||
/* Pass texture coordinates. */
|
||||
if (uni->prev[i].tex_coord >= 0)
|
||||
@ -1448,7 +1448,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
pragma_param.type = UNIFORM_1F;
|
||||
pragma_param.result.f.v0 = glsl->shader->parameters[i].current;
|
||||
|
||||
glsl_uniform_set_parameter(glsl, &pragma_param, NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &pragma_param, NULL, NULL);
|
||||
}
|
||||
|
||||
/* Set state parameters. */
|
||||
@ -1473,7 +1473,7 @@ static void gl_glsl_set_params(void *data, void *shader_data,
|
||||
state_param.type = UNIFORM_1F;
|
||||
state_param.result.f.v0 = state_info[i].value;
|
||||
|
||||
glsl_uniform_set_parameter(glsl, &state_param, NULL, NULL);
|
||||
gl_glsl_set_uniform_parameter(glsl, &state_param, NULL, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1714,6 +1714,7 @@ const shader_backend_t gl_glsl_backend = {
|
||||
gl_glsl_init,
|
||||
gl_glsl_deinit,
|
||||
gl_glsl_set_params,
|
||||
gl_glsl_set_uniform_parameter,
|
||||
gl_glsl_compile_program,
|
||||
gl_glsl_use,
|
||||
gl_glsl_num,
|
||||
|
@ -571,6 +571,7 @@ const shader_backend_t hlsl_backend = {
|
||||
hlsl_init,
|
||||
hlsl_deinit,
|
||||
hlsl_set_params,
|
||||
hlsl_uniform_set_parameter,
|
||||
hlsl_use,
|
||||
hlsl_num,
|
||||
hlsl_filter_type,
|
||||
|
@ -74,6 +74,14 @@ static void shader_null_set_params(void *data, void *shader_data,
|
||||
{
|
||||
}
|
||||
|
||||
static void shader_null_set_uniform_parameter(
|
||||
void *data,
|
||||
void *uniform_info_data,
|
||||
void *shader_info_data,
|
||||
void *uniform_data)
|
||||
{
|
||||
}
|
||||
|
||||
static bool shader_null_set_mvp(void *data, void *shader_data, const math_matrix_4x4 *mat)
|
||||
{
|
||||
#ifdef HAVE_OPENGL
|
||||
@ -166,6 +174,7 @@ const shader_backend_t shader_null_backend = {
|
||||
shader_null_init,
|
||||
shader_null_deinit,
|
||||
shader_null_set_params,
|
||||
shader_null_set_uniform_parameter,
|
||||
shader_null_compile_program,
|
||||
shader_null_use,
|
||||
shader_null_num,
|
||||
|
@ -163,6 +163,8 @@ typedef struct shader_backend
|
||||
const void *prev_info,
|
||||
const void *feedback_info,
|
||||
const void *fbo_info, unsigned fbo_info_cnt);
|
||||
void (*set_uniform_parameter)(void *data, void *uniform_info_data,
|
||||
void *shader_info_data, void *uniform_data);
|
||||
bool (*compile_program)(void *data, unsigned idx,
|
||||
void *program_data, struct shader_program_info *program_info);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user