vulkan: Pass the node when setting up
Remove the function to add a node from both the GskVulkanRender and the GskVulkanRenderPass. That means they are both now meant to draw exactly one node.
This commit is contained in:
@@ -136,15 +136,15 @@ gsk_vulkan_offscreen_op (GskVulkanRenderPass *render_pass,
|
||||
});
|
||||
|
||||
self->render_pass = gsk_vulkan_render_pass_new (context,
|
||||
render,
|
||||
self->image,
|
||||
scale,
|
||||
&view,
|
||||
clip,
|
||||
node,
|
||||
signal_semaphore);
|
||||
|
||||
cairo_region_destroy (clip);
|
||||
|
||||
gsk_vulkan_render_pass_add (self->render_pass, render, node);
|
||||
|
||||
return self->image;
|
||||
}
|
||||
|
||||
@@ -342,7 +342,7 @@ gsk_vulkan_render_add_render_pass (GskVulkanRender *self,
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
gsk_vulkan_render_add_node (GskVulkanRender *self,
|
||||
GskRenderNode *node)
|
||||
{
|
||||
@@ -352,16 +352,16 @@ gsk_vulkan_render_add_node (GskVulkanRender *self,
|
||||
graphene_vec2_init (&scale, self->scale, self->scale);
|
||||
|
||||
pass = gsk_vulkan_render_pass_new (self->vulkan,
|
||||
self,
|
||||
self->target,
|
||||
&scale,
|
||||
&self->viewport,
|
||||
self->clip,
|
||||
node,
|
||||
VK_NULL_HANDLE);
|
||||
|
||||
gsk_vulkan_render_add_render_pass (self, pass);
|
||||
|
||||
gsk_vulkan_render_pass_add (pass, self, node);
|
||||
|
||||
gsk_vulkan_render_verbose_print (self, "start of frame");
|
||||
}
|
||||
|
||||
@@ -855,11 +855,14 @@ void
|
||||
gsk_vulkan_render_reset (GskVulkanRender *self,
|
||||
GskVulkanImage *target,
|
||||
const graphene_rect_t *rect,
|
||||
const cairo_region_t *clip)
|
||||
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);
|
||||
}
|
||||
|
||||
GskRenderer *
|
||||
|
||||
@@ -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);
|
||||
gsk_vulkan_render_add_node (render, root);
|
||||
gsk_vulkan_render_reset (render, image, &rounded_viewport, NULL, root);
|
||||
gsk_vulkan_render_upload (render);
|
||||
gsk_vulkan_render_draw (render);
|
||||
|
||||
@@ -352,8 +351,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);
|
||||
gsk_vulkan_render_add_node (render, root);
|
||||
gsk_vulkan_render_reset (render, self->targets[draw_index], NULL, render_region, root);
|
||||
gsk_vulkan_render_upload (render);
|
||||
gsk_vulkan_render_draw (render);
|
||||
|
||||
|
||||
@@ -80,12 +80,19 @@ static GQuark fallback_pixels_quark;
|
||||
static GQuark texture_pixels_quark;
|
||||
#endif
|
||||
|
||||
static void
|
||||
gsk_vulkan_render_pass_add (GskVulkanRenderPass *self,
|
||||
GskVulkanRender *render,
|
||||
GskRenderNode *node);
|
||||
|
||||
GskVulkanRenderPass *
|
||||
gsk_vulkan_render_pass_new (GdkVulkanContext *context,
|
||||
GskVulkanRender *render,
|
||||
GskVulkanImage *target,
|
||||
const graphene_vec2_t *scale,
|
||||
const graphene_rect_t *viewport,
|
||||
cairo_region_t *clip,
|
||||
GskRenderNode *node,
|
||||
VkSemaphore signal_semaphore)
|
||||
{
|
||||
GskVulkanRenderPass *self;
|
||||
@@ -171,6 +178,8 @@ gsk_vulkan_render_pass_new (GdkVulkanContext *context,
|
||||
}
|
||||
#endif
|
||||
|
||||
gsk_vulkan_render_pass_add (self, render, node);
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -1374,7 +1383,7 @@ gsk_vulkan_render_pass_add_node (GskVulkanRenderPass *self,
|
||||
gsk_vulkan_render_pass_add_fallback_node (self, render, state, node);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
gsk_vulkan_render_pass_add (GskVulkanRenderPass *self,
|
||||
GskVulkanRender *render,
|
||||
GskRenderNode *node)
|
||||
|
||||
@@ -11,18 +11,16 @@ G_BEGIN_DECLS
|
||||
|
||||
|
||||
GskVulkanRenderPass * gsk_vulkan_render_pass_new (GdkVulkanContext *context,
|
||||
GskVulkanRender *render,
|
||||
GskVulkanImage *target,
|
||||
const graphene_vec2_t *scale,
|
||||
const graphene_rect_t *viewport,
|
||||
cairo_region_t *clip,
|
||||
GskRenderNode *node,
|
||||
VkSemaphore signal_semaphore);
|
||||
|
||||
void gsk_vulkan_render_pass_free (GskVulkanRenderPass *self);
|
||||
|
||||
void gsk_vulkan_render_pass_add (GskVulkanRenderPass *self,
|
||||
GskVulkanRender *render,
|
||||
GskRenderNode *node);
|
||||
|
||||
void gsk_vulkan_render_pass_print (GskVulkanRenderPass *self,
|
||||
GString *string,
|
||||
guint indent);
|
||||
|
||||
@@ -23,16 +23,14 @@ gboolean gsk_vulkan_render_is_busy (GskVulk
|
||||
void gsk_vulkan_render_reset (GskVulkanRender *self,
|
||||
GskVulkanImage *target,
|
||||
const graphene_rect_t *rect,
|
||||
const cairo_region_t *clip);
|
||||
const cairo_region_t *clip,
|
||||
GskRenderNode *node);
|
||||
|
||||
GskRenderer * gsk_vulkan_render_get_renderer (GskVulkanRender *self);
|
||||
|
||||
void gsk_vulkan_render_add_cleanup_image (GskVulkanRender *self,
|
||||
GskVulkanImage *image);
|
||||
|
||||
void gsk_vulkan_render_add_node (GskVulkanRender *self,
|
||||
GskRenderNode *node);
|
||||
|
||||
void gsk_vulkan_render_add_render_pass (GskVulkanRender *self,
|
||||
GskVulkanRenderPass *pass);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user