gtk4.git
6 years agotextview: use g_slice_new0 for proper initial state
Christian Hergert [Fri, 1 Nov 2019 18:32:31 +0000 (11:32 -0700)]
textview: use g_slice_new0 for proper initial state

This fixes the missuse of the GList embedded node for prev/next.

6 years agoMerge branch 'reftest-fixes' into 'master'
Matthias Clasen [Fri, 1 Nov 2019 17:45:38 +0000 (17:45 +0000)]
Merge branch 'reftest-fixes' into 'master'

Reftest fixes

See merge request GNOME/gtk!1157

6 years agoreftests: Print out a helpful error
Matthias Clasen [Fri, 1 Nov 2019 17:33:15 +0000 (13:33 -0400)]
reftests: Print out a helpful error

When module loading fails, print out the error.

6 years agoreftests: Drop libtool hack
Matthias Clasen [Fri, 1 Nov 2019 17:32:56 +0000 (13:32 -0400)]
reftests: Drop libtool hack

We are not using libtool anymore.

6 years agoMerge branch 'bump-pango' into 'master'
Matthias Clasen [Fri, 1 Nov 2019 17:26:33 +0000 (17:26 +0000)]
Merge branch 'bump-pango' into 'master'

Bump pango

See merge request GNOME/gtk!1154

6 years agolabel: Handle new pango attributes
Matthias Clasen [Fri, 1 Nov 2019 13:15:24 +0000 (09:15 -0400)]
label: Handle new pango attributes

overline and overline-color were introduced in Pango 1.45.

6 years agolabel: Handle insert_hyphens pango attribute
Matthias Clasen [Tue, 13 Aug 2019 21:33:33 +0000 (17:33 -0400)]
label: Handle insert_hyphens pango attribute

This was introduced in Pango 1.44.4.

6 years agogsk: Stop using deprecated pango api
Matthias Clasen [Fri, 2 Aug 2019 03:42:21 +0000 (23:42 -0400)]
gsk: Stop using deprecated pango api

Shape engines are not used anymore.

6 years agobuild: We no longer need freetype
Matthias Clasen [Tue, 30 Jul 2019 20:34:23 +0000 (16:34 -0400)]
build: We no longer need freetype

6 years agogtk-demo: Use harfbuzz for font features
Matthias Clasen [Tue, 30 Jul 2019 20:32:34 +0000 (16:32 -0400)]
gtk-demo: Use harfbuzz for font features

We don't need freetype anymore here; harfbuzz
has what we need.

6 years agoPort the font chooser to just use harfbuzz
Matthias Clasen [Wed, 24 Jul 2019 12:02:07 +0000 (08:02 -0400)]
Port the font chooser to just use harfbuzz

6 years agoBump the pango dependency
Matthias Clasen [Fri, 1 Nov 2019 13:09:28 +0000 (09:09 -0400)]
Bump the pango dependency

This lets us avoid freetype uses, and simplifies
some other things as well.

6 years agoMerge branch 'fix-print-dialog' into 'master'
Matthias Clasen [Fri, 1 Nov 2019 17:00:34 +0000 (17:00 +0000)]
Merge branch 'fix-print-dialog' into 'master'

Update the print dialog for headerbar changes

See merge request GNOME/gtk!1156

6 years agoUpdate the print dialog for headerbar changes
Matthias Clasen [Fri, 1 Nov 2019 16:51:42 +0000 (12:51 -0400)]
Update the print dialog for headerbar changes

This was breaking the templates test.

6 years agoMerge branch 'ci-update' into 'master'
Matthias Clasen [Fri, 1 Nov 2019 16:30:17 +0000 (16:30 +0000)]
Merge branch 'ci-update' into 'master'

Update the CI image

See merge request GNOME/gtk!1155

6 years agoci: Add internal links to the HTML report
Emmanuele Bassi [Fri, 1 Nov 2019 15:44:12 +0000 (15:44 +0000)]
ci: Add internal links to the HTML report

Makes it easier to link to various sections, and to specific failures.

6 years agoci: Add diffutils to the CI image
Emmanuele Bassi [Fri, 1 Nov 2019 15:22:02 +0000 (15:22 +0000)]
ci: Add diffutils to the CI image

Some transitive dependency got dropped, and we lost diff.

6 years agoCheck for diff's availability
Emmanuele Bassi [Fri, 1 Nov 2019 15:20:47 +0000 (15:20 +0000)]
Check for diff's availability

The tests suite calls `diff` in various places, which means we need to
check if it's installed.

6 years agoMerge branch 'otte/for-master' into 'master'
Benjamin Otte [Fri, 1 Nov 2019 14:13:28 +0000 (14:13 +0000)]
Merge branch 'otte/for-master' into 'master'

Otte/for master

See merge request GNOME/gtk!1153

6 years agovulkan: Add missing enum value
Benjamin Otte [Fri, 1 Nov 2019 13:49:41 +0000 (14:49 +0100)]
vulkan: Add missing enum value

Also update comment to point to new header after Vulkan reorganized
their repositories.

6 years agoci: Update the image to Fedora 31
Emmanuele Bassi [Fri, 1 Nov 2019 12:52:19 +0000 (12:52 +0000)]
ci: Update the image to Fedora 31

Fedora 31 ships with a newer version of Pango.

6 years agoMerge branch 'fallback-rendering' into 'master'
Matthias Clasen [Thu, 31 Oct 2019 02:55:34 +0000 (02:55 +0000)]
Merge branch 'fallback-rendering' into 'master'

Fallback rendering

See merge request GNOME/gtk!1152

6 years agoinspector: Add a switch for fallback rendering
Matthias Clasen [Thu, 31 Oct 2019 02:31:27 +0000 (22:31 -0400)]
inspector: Add a switch for fallback rendering

6 years agogl: Use the fallback debug flag
Matthias Clasen [Thu, 31 Oct 2019 02:30:34 +0000 (22:30 -0400)]
gl: Use the fallback debug flag

This debug flag was unused; use it to enable
fallback highlighting at runtime.

6 years agoinspector: Remove fallback from logs
Matthias Clasen [Thu, 31 Oct 2019 02:31:06 +0000 (22:31 -0400)]
inspector: Remove fallback from logs

There are no logs that this debug flag produces.

6 years agoMerge branch 'wl-key-repeat' into 'master'
Matthias Clasen [Wed, 30 Oct 2019 02:39:49 +0000 (02:39 +0000)]
Merge branch 'wl-key-repeat' into 'master'

wayland: Rely on server key repeat info

See merge request GNOME/gtk!1150

6 years agowayland: Drop the keyboard settings object
Matthias Clasen [Wed, 30 Oct 2019 02:20:57 +0000 (22:20 -0400)]
wayland: Drop the keyboard settings object

It is no longer used.

6 years agowayland: Rely on server key repeat info
Matthias Clasen [Wed, 30 Oct 2019 01:55:13 +0000 (21:55 -0400)]
wayland: Rely on server key repeat info

Using gsettings for this information does not work
in sandboxed scenarios, where settings are per-app.
Since the Wayland protocol provides this information
nowadays, just drop the old code for reading
the gsettings.

6 years agobuilder: Allow parsing G_TYPE_BYTES from strings
Benjamin Otte [Mon, 21 Oct 2019 02:57:03 +0000 (04:57 +0200)]
builder: Allow parsing G_TYPE_BYTES from strings

Just create a bytes containing the literal string.

6 years agotogglebutton: Don't emit clicked during set_active()
Benjamin Otte [Sat, 26 Oct 2019 05:00:24 +0000 (07:00 +0200)]
togglebutton: Don't emit clicked during set_active()

set_active() is meant to set the state of the property, which happens
during setup.
The clicked signal is emitting events from user actions.

It is impossible to use Togglebuttons for MVC applications as long as it
does that.

6 years agomessagedialog: Remove useless GTK_TYPE_BUILDABLE interface
Benjamin Otte [Mon, 28 Oct 2019 19:00:21 +0000 (20:00 +0100)]
messagedialog: Remove useless GTK_TYPE_BUILDABLE interface

It was just chaining up.

6 years agogtk-demo: Add a scrolling image demo
Matthias Clasen [Wed, 23 Oct 2019 01:20:36 +0000 (21:20 -0400)]
gtk-demo: Add a scrolling image demo

This tests big textures.

6 years agowindow: Unrealize renderer before children
Matthias Clasen [Tue, 22 Oct 2019 23:52:14 +0000 (19:52 -0400)]
window: Unrealize renderer before children

Unrealize the GSK renderer before destroying children.
This makes the renderer drop any texture caches that
it might have, so that we don't needlessly download
them when releasing the widget-side holder objects.

As a fortunate side effect, this fixes crashes on
exit with GtkGLArea-containing windows under Wayland.

6 years agoMerge branch 'readonly-all-the-things' into 'master'
Matthias Clasen [Tue, 22 Oct 2019 13:23:06 +0000 (13:23 +0000)]
Merge branch 'readonly-all-the-things' into 'master'

Readonly all the things

See merge request GNOME/gtk!1145

6 years agoRevert "gl: Speed up icon cache lookups"
Matthias Clasen [Tue, 22 Oct 2019 06:39:56 +0000 (02:39 -0400)]
Revert "gl: Speed up icon cache lookups"

This reverts commit dd5ee87b5b65fff51e671ed092e18a524de78379.

6 years agogl: Avoid pointless iteration
Matthias Clasen [Tue, 22 Oct 2019 06:28:33 +0000 (02:28 -0400)]
gl: Avoid pointless iteration

6 years agogl: Add some comments
Matthias Clasen [Tue, 22 Oct 2019 06:27:28 +0000 (02:27 -0400)]
gl: Add some comments

6 years agoRevert "Cache glyph textures in render nodes"
Matthias Clasen [Tue, 22 Oct 2019 05:34:56 +0000 (01:34 -0400)]
Revert "Cache glyph textures in render nodes"

This reverts commit c5af4638434e39a0c224afb62252caed233c2acb.

6 years agoinspector: Fix expander arrow node names
Timm Bäder [Sun, 20 Oct 2019 14:34:24 +0000 (16:34 +0200)]
inspector: Fix expander arrow node names

They vanished after the GtkExpander node rename

6 years agofilechooserwidget: Remove unused function parameter
Timm Bäder [Sun, 20 Oct 2019 11:03:52 +0000 (13:03 +0200)]
filechooserwidget: Remove unused function parameter

6 years agofilechooserwidget: Inline function into only caller
Timm Bäder [Sun, 20 Oct 2019 10:55:19 +0000 (12:55 +0200)]
filechooserwidget: Inline function into only caller

6 years agoplacesview: open address popover upwards
Timm Bäder [Sun, 20 Oct 2019 07:18:55 +0000 (09:18 +0200)]
placesview: open address popover upwards

6 years agoentry: Remove unused function
Timm Bäder [Sun, 20 Oct 2019 06:51:12 +0000 (08:51 +0200)]
entry: Remove unused function

6 years agotext: Propagate pango attributes to placeholder
Timm Bäder [Sun, 20 Oct 2019 06:43:50 +0000 (08:43 +0200)]
text: Propagate pango attributes to placeholder

Not sure if this is really always wanted or whether we need to filter
the attributes, or even create a separate property for them.

6 years agotext: Fix _set_attributes docs
Timm Bäder [Sun, 20 Oct 2019 06:39:55 +0000 (08:39 +0200)]
text: Fix _set_attributes docs

The list is nullable.

6 years agoplacessidebar: Remove some unused members
Timm Bäder [Sat, 19 Oct 2019 09:45:04 +0000 (11:45 +0200)]
placessidebar: Remove some unused members

6 years agoplacesview: Use proper setters for properties
Timm Bäder [Sat, 19 Oct 2019 09:40:36 +0000 (11:40 +0200)]
placesview: Use proper setters for properties

6 years agotext: Remove some unused members
Timm Bäder [Sat, 19 Oct 2019 09:23:38 +0000 (11:23 +0200)]
text: Remove some unused members

6 years agotext: Fix context menu position
Timm Bäder [Sat, 19 Oct 2019 09:04:03 +0000 (11:04 +0200)]
text: Fix context menu position

Fixes #2209

6 years agotext: Inline function into only caller
Timm Bäder [Sat, 19 Oct 2019 08:36:49 +0000 (10:36 +0200)]
text: Inline function into only caller

6 years agotext: Remove gtk_text_get_text_allocation
Timm Bäder [Sat, 19 Oct 2019 07:32:40 +0000 (09:32 +0200)]
text: Remove gtk_text_get_text_allocation

We can just replace that with get_width/get_height everywhere.

6 years agotext: Don't destroy pango layout in size_allocate
Timm Bäder [Sat, 19 Oct 2019 07:23:56 +0000 (09:23 +0200)]
text: Don't destroy pango layout in size_allocate

It's not needed.

6 years agoAdwaita: Fix menubutton in headerbar margins
Timm Bäder [Fri, 18 Oct 2019 09:44:32 +0000 (11:44 +0200)]
Adwaita: Fix menubutton in headerbar margins

Add the margins to the menubutton and not the button inside the
menubutton. This way popovers properly point to the inner button again
instead to somewhere 6px off.

6 years agoAdwaita: Remove padding from popover.menu
Timm Bäder [Fri, 18 Oct 2019 09:43:47 +0000 (11:43 +0200)]
Adwaita: Remove padding from popover.menu

The padding belongs to the contents subnode in this case.

6 years agofilechooserwidget: Add .menu to right-click popover
Timm Bäder [Fri, 18 Oct 2019 06:27:30 +0000 (08:27 +0200)]
filechooserwidget: Add .menu to right-click popover

Make it look like the other menus.

6 years agofilechooserwidget: Focus the searchbar when searching
Timm Bäder [Fri, 18 Oct 2019 05:43:21 +0000 (07:43 +0200)]
filechooserwidget: Focus the searchbar when searching

This code path is taken if the search is already active, so focus the
search entry.

6 years agofilechooserwidget: Rename a callback
Timm Bäder [Fri, 18 Oct 2019 05:23:02 +0000 (07:23 +0200)]
filechooserwidget: Rename a callback

6 years agoshortcutlabel: Inherit from GtkWidget
Timm Bäder [Fri, 18 Oct 2019 04:20:35 +0000 (06:20 +0200)]
shortcutlabel: Inherit from GtkWidget

6 years agoshortcutlabel: Inherit from GtkWidget
Timm Bäder [Fri, 18 Oct 2019 04:20:35 +0000 (06:20 +0200)]
shortcutlabel: Inherit from GtkWidget

6 years agosearchentry: Make the text entry expand
Timm Bäder [Thu, 17 Oct 2019 14:38:21 +0000 (16:38 +0200)]
searchentry: Make the text entry expand

Fixes the broken layout.

6 years agotext: Remove an unnecessary queue_draw() call
Timm Bäder [Thu, 17 Oct 2019 14:37:17 +0000 (16:37 +0200)]
text: Remove an unnecessary queue_draw() call

6 years agoRevert "inspector: Fix node recording"
Matthias Clasen [Tue, 22 Oct 2019 05:32:51 +0000 (01:32 -0400)]
Revert "inspector: Fix node recording"

This reverts commit ba7649b3889c823cdc16983c7552956bc655fa8a.

6 years agoMerge branch 'wip/matthiasc/icon-theme' into 'master'
Matthias Clasen [Sat, 19 Oct 2019 22:43:34 +0000 (22:43 +0000)]
Merge branch 'wip/matthiasc/icon-theme' into 'master'

Misc icon theme cleanups

See merge request GNOME/gtk!1139

6 years agoinspector: Fix node recording
Matthias Clasen [Fri, 18 Oct 2019 14:33:45 +0000 (09:33 -0500)]
inspector: Fix node recording

When attaching renderer-specific data, we need to
make sure that we key it off the renderer that is
in use, and cope with the absence of render data.

This fixes recording nodes in the inspector.

6 years agoDrop gtk_icon_info_new_for_pixbuf
Matthias Clasen [Fri, 18 Oct 2019 13:47:07 +0000 (08:47 -0500)]
Drop gtk_icon_info_new_for_pixbuf

It is better to keep icon infos as something you
only get from the icon theme.

6 years agoMove symbolic pixbuf recoloring code
Matthias Clasen [Fri, 18 Oct 2019 13:40:00 +0000 (08:40 -0500)]
Move symbolic pixbuf recoloring code

This function is better off next to the other
symbolic png code in gdkpixbufutils.c.

6 years agoicon theme: Drop icon_file from GtkIconInfo
Matthias Clasen [Fri, 18 Oct 2019 13:23:44 +0000 (08:23 -0500)]
icon theme: Drop icon_file from GtkIconInfo

It is not used anymore.

6 years agoDrop another use of icon_file
Matthias Clasen [Fri, 18 Oct 2019 13:10:01 +0000 (08:10 -0500)]
Drop another use of icon_file

Stop using icon_file when loading symbolic svgs.

6 years agoDrop another use of icon_file
Matthias Clasen [Fri, 18 Oct 2019 12:48:46 +0000 (07:48 -0500)]
Drop another use of icon_file

6 years agoAdd another symbolic pixbuf helper
Matthias Clasen [Fri, 18 Oct 2019 12:46:52 +0000 (07:46 -0500)]
Add another symbolic pixbuf helper

6 years agoAvoid a use of icon_file
Matthias Clasen [Thu, 17 Oct 2019 12:55:25 +0000 (07:55 -0500)]
Avoid a use of icon_file

This is a step towards getting rid of GtkIconInfo->icon_file.

6 years agoicon theme: Start to untangle GtkIconInfo
Matthias Clasen [Fri, 18 Oct 2019 12:22:11 +0000 (07:22 -0500)]
icon theme: Start to untangle GtkIconInfo

GtkIconInfo contains too much redundant data,
and it is hard to know which fields are to be
used when.

This commit starts to move towards dropping the
icon_file field - we prefer to work with the
filename directly, since it lets us avoid mime
sniffing and strdups.

6 years agoDrop gtk_icon_theme_get_example_icon_name
Matthias Clasen [Fri, 18 Oct 2019 12:20:25 +0000 (07:20 -0500)]
Drop gtk_icon_theme_get_example_icon_name

This function is not useful. Every icon theme
on my system either does not have that field,
or has it as 'folder'. So, just use 'folder'
when you need an example icon.

6 years agoDrop gtk_icon_theme_list_contexts
Matthias Clasen [Thu, 17 Oct 2019 21:24:21 +0000 (16:24 -0500)]
Drop gtk_icon_theme_list_contexts

Contexts in icon themes are not useful for anything.

6 years agotesticontheme: Remove useless function
Matthias Clasen [Thu, 17 Oct 2019 21:21:45 +0000 (16:21 -0500)]
testicontheme: Remove useless function

Contexts in icon themes are not useful for anything,
so drop this function from testicontheme.

6 years agoicon theme: Avoid a string copy
Matthias Clasen [Thu, 17 Oct 2019 12:56:27 +0000 (07:56 -0500)]
icon theme: Avoid a string copy

This is in an error path, so mostly cosmetic.

6 years agoUpdate POTFILES.in
Piotr Drąg [Thu, 17 Oct 2019 18:11:58 +0000 (20:11 +0200)]
Update POTFILES.in

6 years agogl: Remove an unimplemented profiler counter
Matthias Clasen [Wed, 16 Oct 2019 21:53:34 +0000 (17:53 -0400)]
gl: Remove an unimplemented profiler counter

6 years agogl: Add debug spew to texture atlas
Matthias Clasen [Wed, 16 Oct 2019 21:13:20 +0000 (17:13 -0400)]
gl: Add debug spew to texture atlas

6 years agoglyph cache: Go back to memcmp
Matthias Clasen [Sun, 13 Oct 2019 00:09:14 +0000 (20:09 -0400)]
glyph cache: Go back to memcmp

Be careful to avoid padding data, and only
compare the relevant parts, leaving out the
hash key.

6 years agoCosmetics
Matthias Clasen [Wed, 16 Oct 2019 10:34:10 +0000 (06:34 -0400)]
Cosmetics

6 years agoRevert "icon theme: Avoid a string copy"
Matthias Clasen [Thu, 17 Oct 2019 12:15:30 +0000 (07:15 -0500)]
Revert "icon theme: Avoid a string copy"

This reverts commit 0895f0211e535ac0bdf7e461bb0e046bdee60c4d.

This negatively affected icons that are included as
resources, since peek_path returns NULL for them.

6 years agoUpdate Croatian translation
Goran Vidović [Thu, 17 Oct 2019 12:03:32 +0000 (12:03 +0000)]
Update Croatian translation

6 years agoMerge branch 'wip/chergert/opbuffer' into 'master'
Matthias Clasen [Thu, 17 Oct 2019 11:37:07 +0000 (11:37 +0000)]
Merge branch 'wip/chergert/opbuffer' into 'master'

Add OpBuffer helper for building op buffer

See merge request GNOME/gtk!1131

6 years agoUpdate Croatian translation
Goran Vidović [Thu, 17 Oct 2019 11:36:10 +0000 (11:36 +0000)]
Update Croatian translation

6 years agoUpdate Croatian translation
Goran Vidović [Thu, 17 Oct 2019 11:23:00 +0000 (11:23 +0000)]
Update Croatian translation

6 years agoMerge branch 'otte/for-master' into 'master'
Benjamin Otte [Wed, 16 Oct 2019 20:25:57 +0000 (20:25 +0000)]
Merge branch 'otte/for-master' into 'master'

Otte/for master

See merge request GNOME/gtk!1136

6 years agoentry: Return boolean from gtk_entry_grab_focus_without_selecting()
Benjamin Otte [Wed, 16 Oct 2019 19:36:05 +0000 (21:36 +0200)]
entry: Return boolean from gtk_entry_grab_focus_without_selecting()

This follows recent changes to gtk_widget_grab_focus().

6 years agorender: Fix goto
Benjamin Otte [Wed, 16 Oct 2019 15:48:25 +0000 (17:48 +0200)]
render: Fix goto

if we have pushed a shadow, we better pop it again.

Broken since d1ea591f18f

6 years agoInitialize cursor alpha to 1.0
Benjamin Otte [Wed, 16 Oct 2019 13:02:52 +0000 (15:02 +0200)]
Initialize cursor alpha to 1.0

That way, non-animated cursors don't disappear.

6 years agobindings: Make gtk_bindings_add_callback() allow for variant args
Benjamin Otte [Wed, 16 Oct 2019 01:07:43 +0000 (03:07 +0200)]
bindings: Make gtk_bindings_add_callback() allow for variant args

6 years agobindings: Refactor
Benjamin Otte [Wed, 16 Oct 2019 01:01:49 +0000 (03:01 +0200)]
bindings: Refactor

Refactor code so that each bindings type has its own struct instead of
sharing one big union.

6 years agoMerge branch 'fix-popover-styles' into 'master'
Timm Bäder [Wed, 16 Oct 2019 07:42:45 +0000 (07:42 +0000)]
Merge branch 'fix-popover-styles' into 'master'

Fix popover styles (GTK 4)

Closes #2061

See merge request GNOME/gtk!1079

6 years agoFix a crash with glyph caching
Matthias Clasen [Wed, 16 Oct 2019 02:52:28 +0000 (22:52 -0400)]
Fix a crash with glyph caching

We need to treat atlas-less cached glyphs like
atlases, when it comes to invalidating text node
render data.

6 years agogsk: Fix uninitialized memory
Matthias Clasen [Wed, 16 Oct 2019 00:54:24 +0000 (20:54 -0400)]
gsk: Fix uninitialized memory

This was causing crashes in some circumstances.

6 years agoicon theme: Avoid a string copy
Matthias Clasen [Tue, 15 Oct 2019 23:20:05 +0000 (19:20 -0400)]
icon theme: Avoid a string copy

GIO has gained a way to peek at a GFile
path; lets use that.

6 years agoicon theme: Avoid mime sniffing
Matthias Clasen [Tue, 15 Oct 2019 23:05:52 +0000 (19:05 -0400)]
icon theme: Avoid mime sniffing

Themed icons are always pngs or svgs.
Take advantage of that to avoid costly
mime sniffing.

6 years agopixbuf utils: Preserve format information
Matthias Clasen [Tue, 15 Oct 2019 23:04:01 +0000 (19:04 -0400)]
pixbuf utils: Preserve format information

When we are loading themed icons, we know if
we deal with an svg or png file, so it is
entirely unnecessarily to have gdk-pixbuf
use g_content_type guess to rediscover that
information.

Change the pixbuf utils apis we have to allow
passing format information down to where we
can use it when creating the pixbuf loader.

6 years agogl: Speed up icon cache lookups
Matthias Clasen [Tue, 15 Oct 2019 12:27:16 +0000 (08:27 -0400)]
gl: Speed up icon cache lookups

Use gdk_texture_set_render_data to avoid
hash table lookups when we can.

6 years agogl: Slightly rework the icon cache api
Matthias Clasen [Tue, 15 Oct 2019 11:51:05 +0000 (07:51 -0400)]
gl: Slightly rework the icon cache api

Return a pointer to the IconData struct. This is
closer to the glyph cache api, and will allow us
to add similar shortcuts. For now, just store
texture coords in the form we need, avoiding
converting them over and over.