vulkan: Simplify render API
authorBenjamin Otte <otte@redhat.com>
Fri, 14 Jul 2023 20:21:09 +0000 (22:21 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 16 Jul 2023 11:16:43 +0000 (13:16 +0200)
Merge reset() and draw() into a single render() function.

Also clean up some naming on the way.

gsk/vulkan/gskvulkanrender.c
gsk/vulkan/gskvulkanrenderer.c
gsk/vulkan/gskvulkanrenderprivate.h

index 029abd36c2238bd08b826224720719dc29334714..155ad9dba1c6051dbe38ed4716c5bed6cd692a39 100644 (file)
@@ -876,8 +876,8 @@ gsk_vulkan_render_collect_vertex_buffer (GskVulkanRender *self)
   gsk_vulkan_buffer_unmap (self->vertex_buffer);
 }
 
-void
-gsk_vulkan_render_draw (GskVulkanRender *self)
+static void
+gsk_vulkan_render_submit (GskVulkanRender *self)
 {
   VkCommandBuffer command_buffer;
   GskVulkanOp *op;
@@ -1067,17 +1067,19 @@ gsk_vulkan_render_is_busy (GskVulkanRender *self)
 }
 
 void
-gsk_vulkan_render_reset (GskVulkanRender       *self,
-                         GskVulkanImage        *target,
-                         const graphene_rect_t *rect,
-                         const cairo_region_t  *clip,
-                         GskRenderNode         *node)
+gsk_vulkan_render_render (GskVulkanRender       *self,
+                          GskVulkanImage        *target,
+                          const graphene_rect_t *rect,
+                          const cairo_region_t  *clip,
+                          GskRenderNode         *node)
 {
   gsk_vulkan_render_cleanup (self);
 
   gsk_vulkan_render_setup (self, target, rect, clip);
 
   gsk_vulkan_render_add_node (self, node);
+
+  gsk_vulkan_render_submit (self);
 }
 
 GskRenderer *
index 2853b8a4359e95a9f640304d2cd0f28368391d3b..40eb796b7a0366d9b46c7c7ce79678a942471a4a 100644 (file)
@@ -292,8 +292,7 @@ gsk_vulkan_renderer_render_texture (GskRenderer           *renderer,
                                               rounded_viewport.size.width,
                                               rounded_viewport.size.height);
 
-  gsk_vulkan_render_reset (render, image, &rounded_viewport, NULL, root);
-  gsk_vulkan_render_draw (render);
+  gsk_vulkan_render_render (render, image, &rounded_viewport, NULL, root);
 
   texture = gsk_vulkan_render_download_target (render);
 
@@ -350,8 +349,7 @@ gsk_vulkan_renderer_render (GskRenderer          *renderer,
   render_region = get_render_region (self);
   draw_index = gdk_vulkan_context_get_draw_index (self->vulkan);
 
-  gsk_vulkan_render_reset (render, self->targets[draw_index], NULL, render_region, root);
-  gsk_vulkan_render_draw (render);
+  gsk_vulkan_render_render (render, self->targets[draw_index], NULL, render_region, root);
 
 #ifdef G_ENABLE_DEBUG
   gsk_profiler_counter_inc (profiler, self->profile_counters.frames);
index 04da854101ef65fa07638f0b6c16a81fe56e87d4..9e24e155fb258f6290833f92ff6c1cdb977d1622 100644 (file)
@@ -20,7 +20,7 @@ GskVulkanRender *       gsk_vulkan_render_new                           (GskRend
 void                    gsk_vulkan_render_free                          (GskVulkanRender        *self);
 
 gboolean                gsk_vulkan_render_is_busy                       (GskVulkanRender        *self);
-void                    gsk_vulkan_render_reset                         (GskVulkanRender        *self,
+void                    gsk_vulkan_render_render                        (GskVulkanRender        *self,
                                                                          GskVulkanImage         *target,
                                                                          const graphene_rect_t  *rect,
                                                                          const cairo_region_t   *clip,
@@ -51,8 +51,6 @@ guchar *                gsk_vulkan_render_get_buffer_memory             (GskVulk
                                                                          gsize                   alignment,
                                                                          gsize                  *out_offset);
 
-void                    gsk_vulkan_render_draw                          (GskVulkanRender        *self);
-
 GdkTexture *            gsk_vulkan_render_download_target               (GskVulkanRender        *self);
 VkFence                 gsk_vulkan_render_get_fence                     (GskVulkanRender        *self);