gtk/gsk/gl
Christian Hergert c64836e1c9 gsk/gl: make texture libraries more autonomous
This moves a lot of the texture atlas control out of the driver and into
the various texture libraries through their base GskGLTextureLibrary class.

Additionally, this gives more control to libraries on allocating which can
be necessary for some tooling such as future Glyphy integration.

As part of this, the 1x1 pixel initialization is moved to the Glyph library
which is the only place where it is actually needed.

The compact vfunc now is responsible for compaction and it allows for us
to iterate the atlas hashtable a single time instead of twice as we were
doing previously.

The init_atlas vfunc is used to do per-library initialization such as
adding a 1x1 pixel in the Glyph cache used for coloring lines.

The allocate vfunc purely allocates but does no upload. This can be useful
for situations where a library wants to reuse the allocator from the
base class but does not want to actually insert a key/value entry. The
glyph library uses this for it's 1x1 pixel.

In the future, we will also likely want to decouple the rectangle packing
implementation from the atlas structure, or at least move it into a union
so that we do not allocate unused memory for alternate allocators.
2022-03-18 14:59:46 -07:00
..
resources GL renderer: Remove noperspective usage 2021-11-30 14:12:10 +01:00
fp16.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
fp16i.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
fp16private.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglattachmentstate.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglattachmentstateprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglbuffer.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglbufferprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglcommandqueue.c gsk/gl: check for format as well 2022-03-18 12:33:33 -07:00
gskglcommandqueueprivate.h gsk/gl: support non-standard default framebuffer 2022-02-22 12:01:24 -08:00
gskglcompiler.c Merge branch 'wgl-legacy' into 'main' 2022-01-03 13:11:04 +00:00
gskglcompilerprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgldriver.c gsk/gl: make texture libraries more autonomous 2022-03-18 14:59:46 -07:00
gskgldriverprivate.h gsk/gl: make texture libraries more autonomous 2022-03-18 14:59:46 -07:00
gskglglyphlibrary.c gsk/gl: make texture libraries more autonomous 2022-03-18 14:59:46 -07:00
gskglglyphlibraryprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgliconlibrary.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgliconlibraryprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglprofiler.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglprofilerprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglprogram.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglprogramprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglprograms.defs gsk/gl: add more control over shader generation 2022-03-18 12:34:32 -07:00
gskglrenderer.c renderers: Handle large viewports 2022-02-26 20:35:44 +01:00
gskglrenderer.h Maintain abi 2021-10-07 13:05:53 -04:00
gskglrendererprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglrenderjob.c gsk/gl: rename glyphs to glyphs_library 2022-03-18 12:34:32 -07:00
gskglrenderjobprivate.h gsk/gl: avoid clearing opaque regions 2022-02-21 23:43:17 -08:00
gskglshadowlibrary.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskglshadowlibraryprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgltexture.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgltexturelibrary.c gsk/gl: make texture libraries more autonomous 2022-03-18 14:59:46 -07:00
gskgltexturelibraryprivate.h gsk/gl: make texture libraries more autonomous 2022-03-18 14:59:46 -07:00
gskgltextureprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgltypesprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgluniformstate.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
gskgluniformstateprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
inlinearray.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
ninesliceprivate.h Rename ngl to gl 2021-10-07 13:05:53 -04:00
stb_rect_pack.c Rename ngl to gl 2021-10-07 13:05:53 -04:00
stb_rect_pack.h Rename ngl to gl 2021-10-07 13:05:53 -04:00