started rework

This commit is contained in:
nullifiedcat 2017-11-14 22:43:51 +03:00
parent 8d78eb0417
commit cdc6ebeb5a
5 changed files with 19 additions and 8 deletions

View File

@ -119,11 +119,11 @@ struct draw_state
int program; int program;
int dirty; int dirty;
GLuint texture;
xoverlay_font_handle_t font; xoverlay_font_handle_t font;
xoverlay_texture_handle_t thandle; xoverlay_texture_handle_t thandle;
GLuint shader; GLuint shader;
GLuint texture;
}; };
struct draw_state ds; struct draw_state ds;
@ -149,6 +149,9 @@ ds_pre_render();
void void
ds_post_render(); ds_post_render();
void
ds_start_next_frame();
void void
ds_render_next_frame(); ds_render_next_frame();

View File

@ -336,15 +336,25 @@ ds_post_render()
} }
void void
ds_render_next_frame() ds_start_next_frame()
{ {
ds_pre_render();
dis_finish();
ds.program = -1; ds.program = -1;
ds.thandle = 0; ds.thandle = 0;
ds.font = 0; ds.font = 0;
ds.texture = 0; ds.texture = 0;
ds.shader = 0; ds.shader = 0;
for (int i = 0; i < PROGRAM_COUNT; ++i)
{
vertex_buffer_clear(programs[i].vertex);
}
}
void
ds_render_next_frame()
{
ds_pre_render();
dis_finish();
struct draw_instruction_t *instr; struct draw_instruction_t *instr;
instr = dis_fetch_instruction(); instr = dis_fetch_instruction();
@ -369,6 +379,7 @@ ds_render_next_frame()
ds_mark_dirty(); ds_mark_dirty();
float *vert = dis_read_data(instr->count * programs[ds.program].vertex_size); float *vert = dis_read_data(instr->count * programs[ds.program].vertex_size);
vertex_buffer_push_back_vertices(programs[ds.program].vertex, vert, instr->count); vertex_buffer_push_back_vertices(programs[ds.program].vertex, vert, instr->count);
vertex_buffer_render()
break; break;
case DI_PUSH_INDICES: case DI_PUSH_INDICES:
ds_mark_dirty(); ds_mark_dirty();

View File

@ -19,7 +19,6 @@ DECL_PROGRAM_INIT(freetype)
DECL_PROGRAM_LOAD(freetype) DECL_PROGRAM_LOAD(freetype)
{ {
vertex_buffer_clear(programs[PROGRAM_FREETYPE].vertex);
ds_use_shader(programs[PROGRAM_FREETYPE].shader); ds_use_shader(programs[PROGRAM_FREETYPE].shader);
texture_font_t *fnt = fontapi_get(ds.font); texture_font_t *fnt = fontapi_get(ds.font);
if (fnt == NULL) if (fnt == NULL)

View File

@ -19,7 +19,6 @@ DECL_PROGRAM_INIT(triangles_plain)
DECL_PROGRAM_LOAD(triangles_plain) DECL_PROGRAM_LOAD(triangles_plain)
{ {
ds_use_shader(programs[PROGRAM_TRIANGLES_PLAIN].shader); ds_use_shader(programs[PROGRAM_TRIANGLES_PLAIN].shader);
vertex_buffer_clear(programs[PROGRAM_TRIANGLES_PLAIN].vertex);
} }
DECL_PROGRAM_RENDER(triangles_plain) DECL_PROGRAM_RENDER(triangles_plain)

View File

@ -19,7 +19,6 @@ DECL_PROGRAM_INIT(triangles_textured)
DECL_PROGRAM_LOAD(triangles_textured) DECL_PROGRAM_LOAD(triangles_textured)
{ {
ds_use_shader(programs[PROGRAM_TRIANGLES_TEXTURED].shader); ds_use_shader(programs[PROGRAM_TRIANGLES_TEXTURED].shader);
vertex_buffer_clear(programs[PROGRAM_TRIANGLES_TEXTURED].vertex);
} }
DECL_PROGRAM_RENDER(triangles_textured) DECL_PROGRAM_RENDER(triangles_textured)