libobs-opengl: Add int2-4 support

Closes obsproject/obs-studio#1506
master
Alex Anderson 2018-09-28 08:19:04 -07:00 committed by jp9000
parent a60b3987fc
commit 4eac034814
1 changed files with 21 additions and 0 deletions

View File

@ -455,6 +455,24 @@ static void program_set_param_data(struct gs_program *program,
gl_success("glUniform1iv");
}
} else if (pp->param->type == GS_SHADER_PARAM_INT2) {
if (validate_param(pp, sizeof(int) * 2)) {
glUniform2iv(pp->obj, 1, (int*)array);
gl_success("glUniform2iv");
}
} else if (pp->param->type == GS_SHADER_PARAM_INT3) {
if (validate_param(pp, sizeof(int) * 3)) {
glUniform3iv(pp->obj, 1, (int*)array);
gl_success("glUniform3iv");
}
} else if (pp->param->type == GS_SHADER_PARAM_INT4) {
if (validate_param(pp, sizeof(int) * 4)) {
glUniform4iv(pp->obj, 1, (int*)array);
gl_success("glUniform4iv");
}
} else if (pp->param->type == GS_SHADER_PARAM_FLOAT) {
if (validate_param(pp, sizeof(float))) {
glUniform1fv(pp->obj, 1, (float*)array);
@ -698,6 +716,9 @@ void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size)
case GS_SHADER_PARAM_FLOAT: expected_size = sizeof(float); break;
case GS_SHADER_PARAM_BOOL:
case GS_SHADER_PARAM_INT: expected_size = sizeof(int); break;
case GS_SHADER_PARAM_INT2: expected_size = sizeof(int) * 2; break;
case GS_SHADER_PARAM_INT3: expected_size = sizeof(int) * 3; break;
case GS_SHADER_PARAM_INT4: expected_size = sizeof(int) * 4; break;
case GS_SHADER_PARAM_VEC2: expected_size = sizeof(float)*2; break;
case GS_SHADER_PARAM_VEC3: expected_size = sizeof(float)*3; break;
case GS_SHADER_PARAM_VEC4: expected_size = sizeof(float)*4; break;