diff options
author | Benjamin Otte <otte@redhat.com> | 2016-12-17 04:22:44 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2016-12-20 18:01:11 +0100 |
commit | 7b9ace488b01e4f2d68e9c06659f8eed4a9b76ca (patch) | |
tree | 741eb6469867e17ab559c6ee417d0720d216703b /gsk/gskvulkanrenderpass.c | |
parent | 85559d1fd9bb47484467b92d1d97411567841bfc (diff) | |
download | gtk+-7b9ace488b01e4f2d68e9c06659f8eed4a9b76ca.tar.gz |
vulkan: Add GskVulkanUploader
It's the thing that makes sure pixels end up on the GPU.
Diffstat (limited to 'gsk/gskvulkanrenderpass.c')
-rw-r--r-- | gsk/gskvulkanrenderpass.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gsk/gskvulkanrenderpass.c b/gsk/gskvulkanrenderpass.c index 6e1461c5df..5290d0e600 100644 --- a/gsk/gskvulkanrenderpass.c +++ b/gsk/gskvulkanrenderpass.c @@ -176,7 +176,7 @@ static void gsk_vulkan_render_pass_upload_fallback (GskVulkanRenderPass *self, GskVulkanOpRender *op, GskVulkanRender *render, - GskVulkanCommandPool *command_pool) + GskVulkanUploader *uploader) { graphene_rect_t bounds; cairo_surface_t *surface; @@ -194,8 +194,7 @@ gsk_vulkan_render_pass_upload_fallback (GskVulkanRenderPass *self, cairo_destroy (cr); - op->source = gsk_vulkan_image_new_from_data (self->vulkan, - command_pool, + op->source = gsk_vulkan_image_new_from_data (uploader, cairo_image_surface_get_data (surface), cairo_image_surface_get_width (surface), cairo_image_surface_get_height (surface), @@ -209,7 +208,7 @@ gsk_vulkan_render_pass_upload_fallback (GskVulkanRenderPass *self, void gsk_vulkan_render_pass_upload (GskVulkanRenderPass *self, GskVulkanRender *render, - GskVulkanCommandPool *command_pool) + GskVulkanUploader *uploader) { GskVulkanOp *op; guint i; @@ -221,14 +220,13 @@ gsk_vulkan_render_pass_upload (GskVulkanRenderPass *self, switch (op->type) { case GSK_VULKAN_OP_FALLBACK: - gsk_vulkan_render_pass_upload_fallback (self, &op->render, render, command_pool); + gsk_vulkan_render_pass_upload_fallback (self, &op->render, render, uploader); break; case GSK_VULKAN_OP_SURFACE: { cairo_surface_t *surface = gsk_cairo_node_get_surface (op->render.node); - op->render.source = gsk_vulkan_image_new_from_data (self->vulkan, - command_pool, + op->render.source = gsk_vulkan_image_new_from_data (uploader, cairo_image_surface_get_data (surface), cairo_image_surface_get_width (surface), cairo_image_surface_get_height (surface), @@ -241,7 +239,7 @@ gsk_vulkan_render_pass_upload (GskVulkanRenderPass *self, { op->render.source = gsk_vulkan_renderer_ref_texture_image (GSK_VULKAN_RENDERER (gsk_vulkan_render_get_renderer (render)), gsk_texture_node_get_texture (op->render.node), - command_pool); + uploader); gsk_vulkan_render_add_cleanup_image (render, op->render.source); } break; |