started rework
This commit is contained in:
parent
8d78eb0417
commit
cdc6ebeb5a
@ -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();
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user