(XMB) Set uniform to vertex program and add 'add_prefix' to uniform_info struct

This commit is contained in:
twinaphex 2016-04-17 06:11:48 +02:00
parent 6579b5f3c8
commit 58f145282e
3 changed files with 16 additions and 6 deletions

View File

@ -131,6 +131,7 @@ static void gl_cg_set_uniform_parameter(
if (param->lookup.enable)
{
char ident[64];
CGprogram prog = 0;
switch (param->lookup.type)
@ -143,7 +144,13 @@ static void gl_cg_set_uniform_parameter(
prog = cg_data->prg[param->lookup.idx].fprg;
break;
}
location = cgGetNamedParameter(prog, param->lookup.ident);
if (param->lookup.add_prefix)
{
strlcat(ident, "IN.", sizeof(ident));
strlcat(ident, param->lookup.ident, sizeof(ident));
}
location = cgGetNamedParameter(prog, param->lookup.add_prefix ? ident : param->lookup.ident);
}
else
{

View File

@ -122,6 +122,7 @@ struct uniform_info
enum shader_program_type type;
const char *ident;
uint32_t idx;
bool add_prefix;
bool enable;
} lookup;

View File

@ -1934,11 +1934,13 @@ static void xmb_draw_ribbon(menu_display_ctx_draw_t *draw)
t += 0.01;
uniform_param.lookup.enable = true;
uniform_param.lookup.idx = VIDEO_SHADER_MENU;
uniform_param.lookup.type = SHADER_PROGRAM_FRAGMENT;
uniform_param.lookup.ident = "time";
uniform_param.result.f.v0 = t;
uniform_param.lookup.enable = true;
uniform_param.lookup.add_prefix = true;
uniform_param.lookup.idx = VIDEO_SHADER_MENU;
uniform_param.lookup.type = SHADER_PROGRAM_VERTEX;
uniform_param.type = UNIFORM_1F;
uniform_param.lookup.ident = "time";
uniform_param.result.f.v0 = t;
video_shader_driver_ctl(SHADER_CTL_SET_PARAMETER, &uniform_param);