summaryrefslogtreecommitdiff
path: root/gsk/vulkan/gskvulkanrendererprivate.h
blob: fd7d2c19f02d852f299b2beeb90a82c3809eaf90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once

#include "gskvulkanrenderer.h"
#include "gskvulkanimageprivate.h"

G_BEGIN_DECLS

GskVulkanImage *        gsk_vulkan_renderer_ref_texture_image           (GskVulkanRenderer      *self,
                                                                         GdkTexture             *texture,
                                                                         GskVulkanUploader      *uploader);

typedef struct
{
  guint texture_index;

  float tx;
  float ty;
  float tw;
  float th;

  int draw_x;
  int draw_y;
  int draw_width;
  int draw_height;

  int atlas_x;
  int atlas_y;

  guint64 timestamp;
} GskVulkanCachedGlyph;

guint                  gsk_vulkan_renderer_cache_glyph      (GskVulkanRenderer *renderer,
                                                             PangoFont         *font,
                                                             PangoGlyph         glyph,
                                                             int                x,
                                                             int                y,
                                                             float              scale);

GskVulkanImage *       gsk_vulkan_renderer_ref_glyph_image  (GskVulkanRenderer *self,
                                                             GskVulkanUploader *uploader,
                                                             guint              index);

GskVulkanCachedGlyph * gsk_vulkan_renderer_get_cached_glyph (GskVulkanRenderer *self,
                                                             PangoFont         *font,
                                                             PangoGlyph         glyph,
                                                             int                x,
                                                             int                y,
                                                             float              scale);


G_END_DECLS