diff options
Diffstat (limited to 'drivers/gles3/rasterizer_canvas_gles3.h')
| -rw-r--r-- | drivers/gles3/rasterizer_canvas_gles3.h | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/gles3/rasterizer_canvas_gles3.h b/drivers/gles3/rasterizer_canvas_gles3.h index 99b079b8bb..b77b295de9 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.h +++ b/drivers/gles3/rasterizer_canvas_gles3.h @@ -54,13 +54,6 @@ class RasterizerCanvasGLES3 : public RendererCanvasRender { _FORCE_INLINE_ void _update_transform_to_mat4(const Transform3D &p_transform, float *p_mat4); enum { - BASE_UNIFORM_BUFFER_OBJECT = 0, - MATERIAL_UNIFORM_BUFFER_OBJECT = 1, - TRANSFORMS_UNIFORM_BUFFER_OBJECT = 2, - CANVAS_TEXTURE_UNIFORM_BUFFER_OBJECT = 3, - }; - - enum { FLAGS_INSTANCING_MASK = 0x7F, FLAGS_INSTANCING_HAS_COLORS = (1 << 7), @@ -104,6 +97,15 @@ class RasterizerCanvasGLES3 : public RendererCanvasRender { }; public: + //TODO move to Material storage + enum { + BASE_UNIFORM_BUFFER_OBJECT = 0, + GLOBAL_UNIFORM_BUFFER_OBJECT = 1, + LIGHT_UNIFORM_BUFFER_OBJECT = 2, + INSTANCE_UNIFORM_BUFFER_OBJECT = 3, + MATERIAL_UNIFORM_BUFFER_OBJECT = 4, + }; + struct StateBuffer { float canvas_transform[16]; float screen_transform[16]; @@ -170,7 +172,7 @@ public: InstanceData *instance_data_array = nullptr; bool canvas_texscreen_used; - CanvasShaderGLES3 canvas_shader; + //CanvasShaderGLES3 canvas_shader; RID canvas_shader_current_version; RID canvas_shader_default_version; //CanvasShadowShaderGLES3 canvas_shadow_shader; @@ -203,6 +205,8 @@ public: // FROM RD Renderer + double time = 0.0; + uint32_t max_lights_per_render; uint32_t max_lights_per_item; uint32_t max_instances_per_batch; @@ -270,14 +274,13 @@ public: void _render_items(RID p_to_render_target, int p_item_count, const Transform2D &p_canvas_transform_inverse, Light *p_lights, bool p_to_backbuffer = false); void _render_item(RID p_render_target, const Item *p_item, const Transform2D &p_canvas_transform_inverse, Item *¤t_clip, Light *p_lights, uint32_t &r_index); void _render_batch(uint32_t &p_max_index); - void _end_batch(uint32_t p_index); + void _end_batch(const uint32_t p_index); void _allocate_instance_data_buffer(); - void initialize(); - void finalize(); + void set_time(double p_time); static RasterizerCanvasGLES3 *get_singleton(); - RasterizerCanvasGLES3(RasterizerStorageGLES3 *storage); + RasterizerCanvasGLES3(RasterizerStorageGLES3 *p_storage); ~RasterizerCanvasGLES3(); }; |