Re: Using pango in KMSCON (terminal-emulator)
- From: Behdad Esfahbod <behdad behdad org>
- To: David Herrmann <dh herrmann gmail com>
- Cc: David Herrmann <dh herrmann googlemail com>, gtk-i18n-list gnome org
- Subject: Re: Using pango in KMSCON (terminal-emulator)
- Date: Sun, 24 Feb 2013 17:37:36 -0500
On 13-02-22 09:45 AM, David Herrmann wrote:
Hi Behdad
Hi David,
Minor comments below.
On Tue, Feb 19, 2013 at 8:28 AM, Behdad Esfahbod <behdad behdad org> wrote:
4) It's important that I get full access to the 2D buffer of the
glyph. I sometimes need to change stride/size/etc. and the
hardware-blitters have different constraints. Hence, I cannot use any
opaque "glyph"/gtk/etc. structures but instead need _direct_ buffer
access.
You can get that with pangocairo. I hear you want to do your own blitting.
That's fine.
So you mean I should allocate a cairo_image_surface_t, draw to it and
then use the buffer of the image_surface? Yeah, ok, that sounds about
right.
Correct.
3) How am I notified about font-updates in the system? If the
currently used font is updated I'd like to clear my cache and let
pango re-render the glyphs.
For fontconfig changes, you can do something like this:
http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/xsettings/fontconfig-monitor.c
Awesome! Thanks! dnotify/inotify on the font-config files, few-seconds
timeout to combine multiple notifications and then clear the caches.
One thing is missing though: You don't update the monitor itself if
the configuration changes? Is that on purpose? There might be new
font-directories or configuration files that we should add to the
monitor.
Humm. Isn't that done here:
if (fontconfig_cache_update ()) {
notify = TRUE;
monitors_free (handle->monitors);
handle->monitors = monitors_create (data);
}
Also, which pango object do I need to recreate on change? Everything
down to the font-map?
pango_fc_font_map_cache_clear() should do it. You would also need to notify
PangoContext / PangoLayout that "some things changed" by calling their
changed() method. Or just recreate those, since I assume you would need one
at a time.
4) What should I use as default render-mode? High-DPI (>300?) no AA
but subpixel? Low-DPI AA but no subpixel? I have actually no idea what
looks best... And what to do if I cannot get DPI or subpixel-layout
information for a display?
If anything, you should enable subpixel for low DPI and siable for high. It's
tricky though. Best to not try to out-guess the user. Just do nothing?
I recently read your article about font-rendering with high DPI and
was wondering what to do. But maybe that decision belongs to
font-config and pango, and I should just let them chose the default
and not care at all. Users can always use font-configurations to
overwrite it, anyway.
The problem I was addressing had constraints such as linear layout and metric
compatibility. None applies to your application AFAIU.
Cheers,
behdad
Thanks a lot for your help! I will give pangocairo a try.
Regards
David
--
behdad
http://behdad.org/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]