forked from AuroraMiddleware/gtk
d61a715909
Whenever we need a node as a texture, we now start a new render pass that renders the node into a new intermediate texture, and set up a semaphore to make the current render pass wait for it. As part of this reorganization, much of the setup and drawing code moved from gskvulkanrender.c to gskvulkanrenderpass.c.
45 lines
2.8 KiB
C
45 lines
2.8 KiB
C
#ifndef __GSK_VULKAN_RENDER_PASS_PRIVATE_H__
|
|
#define __GSK_VULKAN_RENDER_PASS_PRIVATE_H__
|
|
|
|
#include <gdk/gdk.h>
|
|
#include <gsk/gskrendernode.h>
|
|
|
|
#include "gsk/gskvulkanbufferprivate.h"
|
|
#include "gsk/gskvulkanrenderprivate.h"
|
|
#include "gsk/gskprivate.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
|
GskVulkanRenderPass * gsk_vulkan_render_pass_new (GdkVulkanContext *context,
|
|
GskVulkanImage *target,
|
|
int scale_factor,
|
|
graphene_rect_t *viewport,
|
|
cairo_region_t *clip,
|
|
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_upload (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render,
|
|
GskVulkanUploader *uploader);
|
|
void gsk_vulkan_render_pass_reserve_descriptor_sets (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render);
|
|
void gsk_vulkan_render_pass_draw (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render,
|
|
guint layout_count,
|
|
VkPipelineLayout *pipeline_layout,
|
|
VkCommandBuffer command_buffer);
|
|
gsize gsk_vulkan_render_pass_get_wait_semaphores (GskVulkanRenderPass *self,
|
|
VkSemaphore **semaphores);
|
|
gsize gsk_vulkan_render_pass_get_signal_semaphores (GskVulkanRenderPass *self,
|
|
VkSemaphore **semaphores);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GSK_VULKAN_RENDER_PASS_PRIVATE_H__ */
|