45 #define ASC_RECTANGLE_SHADER_FLAG_FILL 1 |
45 #define ASC_RECTANGLE_SHADER_FLAG_FILL 1 |
46 #define ASC_RECTANGLE_SHADER_FLAG_ROUND 2 |
46 #define ASC_RECTANGLE_SHADER_FLAG_ROUND 2 |
47 #define ASC_RECTANGLE_SHADER_FLAG_BORDER 4 |
47 #define ASC_RECTANGLE_SHADER_FLAG_BORDER 4 |
48 |
48 |
49 static void asc_rectangle_shader_init(AscShaderProgram *shader, int flags) { |
49 static void asc_rectangle_shader_init(AscShaderProgram *shader, int flags) { |
50 asc_shader_init_uniform_loc_nice(shader, AscRectangleShader, size); |
50 asc_shader_init_uniform_by_name(shader, AscRectangleShader, size); |
51 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_FILL)) { |
51 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_FILL)) { |
52 asc_shader_init_uniform_loc_nice(shader, AscRectangleShader, color); |
52 asc_shader_init_uniform_by_name(shader, AscRectangleShader, color); |
53 } |
53 } |
54 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_BORDER)) { |
54 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_BORDER)) { |
55 asc_shader_init_uniform_loc_nice(shader, AscRectangleShader, border_color); |
55 asc_shader_init_uniform_by_name(shader, AscRectangleShader, border_color); |
56 asc_shader_init_uniform_loc_nice(shader, AscRectangleShader, thickness); |
56 asc_shader_init_uniform_by_name(shader, AscRectangleShader, thickness); |
57 } |
57 } |
58 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_ROUND)) { |
58 if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_ROUND)) { |
59 asc_shader_init_uniform_loc_nice(shader, AscRectangleShader, radius); |
59 asc_shader_init_uniform_by_name(shader, AscRectangleShader, radius); |
60 } |
60 } |
61 } |
61 } |
62 |
62 |
63 static AscShaderProgram *asc_rectangle_shader_create(int flags) { |
63 static AscShaderProgram *asc_rectangle_shader_create(int flags) { |
64 return asc_shader_create((AscShaderCodes){ |
64 return asc_shader_create((AscShaderCodes){ |
205 |
205 |
206 #define ASC_ELLIPSIS_SHADER_FLAG_FILL 1 |
206 #define ASC_ELLIPSIS_SHADER_FLAG_FILL 1 |
207 #define ASC_ELLIPSIS_SHADER_FLAG_BORDER 2 |
207 #define ASC_ELLIPSIS_SHADER_FLAG_BORDER 2 |
208 |
208 |
209 static void asc_ellipsis_shader_init(AscShaderProgram *shader, int flags) { |
209 static void asc_ellipsis_shader_init(AscShaderProgram *shader, int flags) { |
210 asc_shader_init_uniform_loc_nice(shader, AscEllipsisShader, radii); |
210 asc_shader_init_uniform_by_name(shader, AscEllipsisShader, radii); |
211 if (asc_test_flag(flags, ASC_ELLIPSIS_SHADER_FLAG_FILL)) { |
211 if (asc_test_flag(flags, ASC_ELLIPSIS_SHADER_FLAG_FILL)) { |
212 asc_shader_init_uniform_loc_nice(shader, AscEllipsisShader, color); |
212 asc_shader_init_uniform_by_name(shader, AscEllipsisShader, color); |
213 } |
213 } |
214 if (asc_test_flag(flags, ASC_ELLIPSIS_SHADER_FLAG_BORDER)) { |
214 if (asc_test_flag(flags, ASC_ELLIPSIS_SHADER_FLAG_BORDER)) { |
215 asc_shader_init_uniform_loc_nice(shader, AscEllipsisShader, thickness); |
215 asc_shader_init_uniform_by_name(shader, AscEllipsisShader, thickness); |
216 asc_shader_init_uniform_loc_nice(shader, AscEllipsisShader, border_color); |
216 asc_shader_init_uniform_by_name(shader, AscEllipsisShader, border_color); |
217 } |
217 } |
218 } |
218 } |
219 |
219 |
220 static AscShaderProgram *asc_ellipsis_shader_create(int flags) { |
220 static AscShaderProgram *asc_ellipsis_shader_create(int flags) { |
221 return asc_shader_create((AscShaderCodes){ |
221 return asc_shader_create((AscShaderCodes){ |