summaryrefslogtreecommitdiff
path: root/drivers/gles2/rasterizer_canvas_gles2.h
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2018-08-20 09:24:29 +0200
committerGitHub <noreply@github.com>2018-08-20 09:24:29 +0200
commit4723f7fe4d30a882e8cbb7ca113f66c8b1dce8ae (patch)
tree60dd988a0020c040190815c2a1f50116c33fb45b /drivers/gles2/rasterizer_canvas_gles2.h
parentacf67a1a193b1a696d93282acb55b1a675c37478 (diff)
parentbd5ff205b2c1f6ebeeab94bb8dc02a2ff725f628 (diff)
Merge pull request #21204 from dragmz/revert_gles2_batching
Revert "Batch GLES2 draw calls"
Diffstat (limited to 'drivers/gles2/rasterizer_canvas_gles2.h')
-rw-r--r--drivers/gles2/rasterizer_canvas_gles2.h46
1 files changed, 9 insertions, 37 deletions
diff --git a/drivers/gles2/rasterizer_canvas_gles2.h b/drivers/gles2/rasterizer_canvas_gles2.h
index d5a122e533..cda3ec79e7 100644
--- a/drivers/gles2/rasterizer_canvas_gles2.h
+++ b/drivers/gles2/rasterizer_canvas_gles2.h
@@ -50,44 +50,23 @@ public:
Color final_modulate;
float time;
-
- Size2 texpixel_size;
- };
-
- struct Vertex {
- Vector2 v;
- Color c;
- Vector2 uv;
};
struct Data {
- GLuint vertex_buffer;
- GLuint index_buffer;
-
- uint32_t vertex_buffer_size;
- uint32_t index_buffer_size;
-
- int ninepatch_elements[3 * 2 * 9];
+ GLuint canvas_quad_vertices;
+ GLuint polygon_buffer;
+ GLuint polygon_index_buffer;
- int *mem_index_buffer;
- uint32_t mem_index_buffer_offset;
- uint32_t mem_index_buffer_size;
+ uint32_t polygon_buffer_size;
- Vertex *mem_vertex_buffer;
- uint32_t mem_vertex_buffer_offset;
- uint32_t mem_vertex_buffer_size;
+ GLuint ninepatch_vertices;
+ GLuint ninepatch_elements;
- GLuint primitive;
- GLuint texture;
} data;
struct State {
Uniforms uniforms;
- Uniforms prev_uniforms;
-
- bool tiled;
-
bool canvas_texscreen_used;
CanvasShaderGLES2 canvas_shader;
// CanvasShadowShaderGLES3 canvas_shadow_shader;
@@ -120,16 +99,9 @@ public:
_FORCE_INLINE_ void _set_texture_rect_mode(bool p_enable, bool p_ninepatch = false);
+ _FORCE_INLINE_ void _draw_gui_primitive(int p_points, const Vector2 *p_vertices, const Color *p_colors, const Vector2 *p_uvs);
_FORCE_INLINE_ void _draw_polygon(const int *p_indices, int p_index_count, int p_vertex_count, const Vector2 *p_vertices, const Vector2 *p_uvs, const Color *p_colors, bool p_singlecolor);
-
- _FORCE_INLINE_ void _begin(const GLuint p_primitive);
- _FORCE_INLINE_ void _prepare(const int p_vertex_count, const int p_index_count);
- _FORCE_INLINE_ void _commit(const int p_vertex_count, const int p_index_count);
-
- _FORCE_INLINE_ void _flush();
- _FORCE_INLINE_ void _draw(const GLuint p_primitive, const int p_vertex_count, const Vertex *p_vertices, const int p_index_count, const int *p_indices);
-
- _FORCE_INLINE_ void _untile();
+ _FORCE_INLINE_ void _draw_generic(GLuint p_primitive, int p_vertex_count, const Vector2 *p_vertices, const Vector2 *p_uvs, const Color *p_colors, bool p_singlecolor);
_FORCE_INLINE_ void _canvas_item_render_commands(Item *p_item, Item *current_clip, bool &reclip, RasterizerStorageGLES2::Material *p_material);
_FORCE_INLINE_ void _copy_texscreen(const Rect2 &p_rect);
@@ -142,8 +114,8 @@ public:
virtual void reset_canvas();
RasterizerStorageGLES2::Texture *_bind_canvas_texture(const RID &p_texture, const RID &p_normal_map);
- _FORCE_INLINE_ void _bind_shader(RasterizerStorageGLES2::Material *p_material);
+ void _bind_quad_buffer();
void draw_generic_textured_rect(const Rect2 &p_rect, const Rect2 &p_src);
void initialize();