35 static void asc_text_draw(AscText const *node) { |
35 static void asc_text_draw(AscText const *node) { |
36 if (node->color.alpha == 0 || node->hidden || node->tex_id == 0) { |
36 if (node->color.alpha == 0 || node->hidden || node->tex_id == 0) { |
37 return; |
37 return; |
38 } |
38 } |
39 |
39 |
|
40 // Obtain shader |
|
41 AscShaderSprite *shader = &asc_context.active_window->glctx.shader.sprite; |
|
42 |
40 // Upload model matrix |
43 // Upload model matrix |
41 glUniformMatrix4fv(ASC_SHADER_SPRITE.base.model, 1, |
44 glUniformMatrix4fv(shader->base.model, 1, |
42 GL_FALSE, node->base.final_transform); |
45 GL_FALSE, node->base.final_transform); |
43 |
46 |
44 // Upload surface |
47 // Upload surface |
45 glActiveTexture(GL_TEXTURE0); |
48 glActiveTexture(GL_TEXTURE0); |
46 glBindTexture(GL_TEXTURE_RECTANGLE, node->tex_id); |
49 glBindTexture(GL_TEXTURE_RECTANGLE, node->tex_id); |
47 glUniform1i(ASC_SHADER_SPRITE.surface, 0); |
50 glUniform1i(shader->surface, 0); |
48 |
51 |
49 // Apply depth |
52 // Apply depth |
50 glUniform1f(ASC_SHADER_SPRITE.depth, (float)(node->base.depth)); |
53 glUniform1f(shader->depth, (float)(node->base.depth)); |
51 |
54 |
52 // Draw mesh |
55 // Draw mesh |
53 asc_primitives_draw_plane(); |
56 asc_primitives_draw_plane(); |
54 } |
57 } |
55 |
58 |