cleanup image drawing setup

This commit is contained in:
Mike Erwin
2017-04-12 19:11:31 -04:00
parent b02786ae6b
commit f7087109ce

View File

@@ -140,10 +140,8 @@ static int get_cached_work_texture(int *r_w, int *r_h)
static void immDrawPixelsTexSetupAttributes(IMMDrawPixelsTexState *state) static void immDrawPixelsTexSetupAttributes(IMMDrawPixelsTexState *state)
{ {
VertexFormat *vert_format = immVertexFormat(); VertexFormat *vert_format = immVertexFormat();
unsigned int pos = VertexFormat_add_attrib(vert_format, "pos", COMP_F32, 2, KEEP_FLOAT); state->pos = VertexFormat_add_attrib(vert_format, "pos", COMP_F32, 2, KEEP_FLOAT);
unsigned int texco = VertexFormat_add_attrib(vert_format, "texCoord", COMP_F32, 2, KEEP_FLOAT); state->texco = VertexFormat_add_attrib(vert_format, "texCoord", COMP_F32, 2, KEEP_FLOAT);
state->pos = pos;
state->texco = texco;
} }
/* To be used before calling immDrawPixelsTex /* To be used before calling immDrawPixelsTex
@@ -156,12 +154,11 @@ IMMDrawPixelsTexState immDrawPixelsTexSetup(int builtin)
IMMDrawPixelsTexState state; IMMDrawPixelsTexState state;
immDrawPixelsTexSetupAttributes(&state); immDrawPixelsTexSetupAttributes(&state);
GPUShader *shader = GPU_shader_get_builtin_shader(builtin); state.shader = GPU_shader_get_builtin_shader(builtin);
/* Shader will be unbind by immUnbindProgram in immDrawPixelsTexScaled_clipping */ /* Shader will be unbind by immUnbindProgram in immDrawPixelsTexScaled_clipping */
immBindBuiltinProgram(builtin); immBindBuiltinProgram(builtin);
GPU_shader_uniform_int(shader, GPU_shader_get_uniform(shader, "image"), 0); immUniform1i("image", 0);
state.shader = shader;
return state; return state;
} }
@@ -251,7 +248,7 @@ void immDrawPixelsTexScaled_clipping(IMMDrawPixelsTexState *state,
* it does not need color. * it does not need color.
*/ */
if (state->shader != NULL && GPU_shader_get_uniform(state->shader, "color") != -1) { if (state->shader != NULL && GPU_shader_get_uniform(state->shader, "color") != -1) {
immUniform4fv("color", (color) ? color : white); immUniformColor4fv((color) ? color : white);
} }
for (subpart_y = 0; subpart_y < nsubparts_y; subpart_y++) { for (subpart_y = 0; subpart_y < nsubparts_y; subpart_y++) {