From 7bbd4d41e0952b7f36c485f2d061499118459c7d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 20 Sep 2017 10:01:58 -0400 Subject: [PATCH] vulkan: pass the context when creating a glyph cache --- gsk/gskvulkanglyphcache.c | 11 +++++++++-- gsk/gskvulkanglyphcacheprivate.h | 2 +- gsk/gskvulkanrenderer.c | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/gsk/gskvulkanglyphcache.c b/gsk/gskvulkanglyphcache.c index 69181f6c9c..bd5756df39 100644 --- a/gsk/gskvulkanglyphcache.c +++ b/gsk/gskvulkanglyphcache.c @@ -19,6 +19,8 @@ typedef struct { struct _GskVulkanGlyphCache { GObject parent_instance; + GdkVulkanContext *vulkan; + GHashTable *hash_table; GPtrArray *atlases; }; @@ -224,9 +226,14 @@ add_to_cache (GskVulkanGlyphCache *cache, } GskVulkanGlyphCache * -gsk_vulkan_glyph_cache_new (void) +gsk_vulkan_glyph_cache_new (GdkVulkanContext *vulkan) { - return GSK_VULKAN_GLYPH_CACHE (g_object_new (GSK_TYPE_VULKAN_GLYPH_CACHE, NULL)); + GskVulkanGlyphCache *cache; + + cache = GSK_VULKAN_GLYPH_CACHE (g_object_new (GSK_TYPE_VULKAN_GLYPH_CACHE, NULL)); + cache->vulkan = vulkan; + + return cache; } GskVulkanCachedGlyph * diff --git a/gsk/gskvulkanglyphcacheprivate.h b/gsk/gskvulkanglyphcacheprivate.h index 9c2e61f414..56866851f1 100644 --- a/gsk/gskvulkanglyphcacheprivate.h +++ b/gsk/gskvulkanglyphcacheprivate.h @@ -11,7 +11,7 @@ G_BEGIN_DECLS G_DECLARE_FINAL_TYPE(GskVulkanGlyphCache, gsk_vulkan_glyph_cache, GSK, VULKAN_GLYPH_CACHE, GObject) -GskVulkanGlyphCache *gsk_vulkan_glyph_cache_new (void); +GskVulkanGlyphCache *gsk_vulkan_glyph_cache_new (GdkVulkanContext *vulkan); GskVulkanImage * gsk_vulkan_glyph_cache_get_glyph_image (GskVulkanGlyphCache *cache, GskVulkanUploader *uploader, diff --git a/gsk/gskvulkanrenderer.c b/gsk/gskvulkanrenderer.c index dda6c08d4f..2325887c84 100644 --- a/gsk/gskvulkanrenderer.c +++ b/gsk/gskvulkanrenderer.c @@ -137,7 +137,7 @@ gsk_vulkan_renderer_realize (GskRenderer *renderer, self->render = gsk_vulkan_render_new (renderer, self->vulkan); - self->glyph_cache = gsk_vulkan_glyph_cache_new (); + self->glyph_cache = gsk_vulkan_glyph_cache_new (self->vulkan); return TRUE; }