});
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;
}
#endif
}
-void
+static void
gsk_vulkan_render_add_node (GskVulkanRender *self,
GskRenderNode *node)
{
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");
}
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 *
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);
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);
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;
}
#endif
+ gsk_vulkan_render_pass_add (self, render, node);
+
return 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)
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);
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);