summaryrefslogtreecommitdiff
path: root/gsk/gskvulkanrenderpass.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2016-12-17 04:22:44 +0100
committerBenjamin Otte <otte@redhat.com>2016-12-20 18:01:11 +0100
commit7b9ace488b01e4f2d68e9c06659f8eed4a9b76ca (patch)
tree741eb6469867e17ab559c6ee417d0720d216703b /gsk/gskvulkanrenderpass.c
parent85559d1fd9bb47484467b92d1d97411567841bfc (diff)
downloadgtk+-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.c14
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;