forked from AuroraMiddleware/gtk
b0e8d8483d
This commit takes several steps towards rendering text like we want to. The creation of the cairo surface and texture is moved to the backend (in GskVulkanRenderer). We add a mask shader that is used in the next text pipeline to use the texture as a mask, like cairo_mask_surface does. There is a separate color text pipeline that uses the already existing blend shaders to use the texture as a source, like cairo_paint does. The text node api is simplified to have just a single offset, which determines the left end of the text baseline, like all our other text drawing APIs.
45 lines
2.7 KiB
C
45 lines
2.7 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"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef struct _GskVulkanRenderPass GskVulkanRenderPass;
|
|
|
|
GskVulkanRenderPass * gsk_vulkan_render_pass_new (GdkVulkanContext *context);
|
|
void gsk_vulkan_render_pass_free (GskVulkanRenderPass *self);
|
|
|
|
void gsk_vulkan_render_pass_add (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render,
|
|
const graphene_matrix_t*mvp,
|
|
const graphene_rect_t *viewport,
|
|
GskRenderNode *node);
|
|
|
|
void gsk_vulkan_render_pass_upload (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render,
|
|
GskVulkanUploader *uploader);
|
|
|
|
gsize gsk_vulkan_render_pass_count_vertex_data (GskVulkanRenderPass *self);
|
|
gsize gsk_vulkan_render_pass_collect_vertex_data (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render,
|
|
guchar *data,
|
|
gsize offset,
|
|
gsize total);
|
|
|
|
void gsk_vulkan_render_pass_reserve_descriptor_sets (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render);
|
|
void gsk_vulkan_render_pass_draw (GskVulkanRenderPass *self,
|
|
GskVulkanRender *render,
|
|
GskVulkanBuffer *vertex_buffer,
|
|
GskVulkanPipelineLayout *layout,
|
|
VkCommandBuffer command_buffer);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GSK_VULKAN_RENDER_PASS_PRIVATE_H__ */
|