twn_lines.c: introduction with proper impl
This commit is contained in:
@ -630,12 +630,24 @@ void finally_draw_command(DeferredCommandDraw command) {
|
||||
textures_bind(&ctx.texture_cache, command.texture_key);
|
||||
}
|
||||
|
||||
GLenum geometry_mode;
|
||||
switch (command.geometry_mode) {
|
||||
case DEFERRED_COMMAND_DRAW_GEOMETRY_MODE_TRIANGLES:
|
||||
geometry_mode = GL_TRIANGLES;
|
||||
break;
|
||||
case DEFERRED_COMMAND_DRAW_GEOMETRY_MODE_LINES:
|
||||
geometry_mode = GL_LINES;
|
||||
break;
|
||||
default:
|
||||
SDL_assert(false);
|
||||
}
|
||||
|
||||
if (command.element_buffer) {
|
||||
SDL_assert(command.element_count != 0);
|
||||
if (command.range_start == command.range_end)
|
||||
glDrawElements(GL_TRIANGLES, command.element_count, GL_UNSIGNED_SHORT, NULL);
|
||||
glDrawElements(geometry_mode, command.element_count, GL_UNSIGNED_SHORT, NULL);
|
||||
else
|
||||
glDrawRangeElements(GL_TRIANGLES,
|
||||
glDrawRangeElements(geometry_mode,
|
||||
command.range_start,
|
||||
command.range_end,
|
||||
command.element_count,
|
||||
@ -643,7 +655,7 @@ void finally_draw_command(DeferredCommandDraw command) {
|
||||
NULL);
|
||||
} else {
|
||||
SDL_assert(command.primitive_count != 0);
|
||||
glDrawArrays(GL_TRIANGLES, 0, command.primitive_count);
|
||||
glDrawArrays(geometry_mode, 0, command.primitive_count);
|
||||
}
|
||||
|
||||
/* state clearing */
|
||||
@ -662,14 +674,3 @@ void finally_draw_command(DeferredCommandDraw command) {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
|
||||
}
|
||||
|
||||
|
||||
void render_line(const LinePrimitive *line) {
|
||||
finally_use_2d_pipeline();
|
||||
glBegin(GL_LINES);
|
||||
glColor4ub(line->color.r, line->color.g, line->color.b, line->color.a);
|
||||
glVertex2f(line->start.x, line->start.y);
|
||||
glColor4ub(line->color.r, line->color.g, line->color.b, line->color.a);
|
||||
glVertex2f(line->finish.x, line->finish.y);
|
||||
glEnd();
|
||||
}
|
||||
|
Reference in New Issue
Block a user