[waffle] [wflinfo] [RFC] platform-specific info from wflinfo

Jordan Justen jordan.l.justen at intel.com
Tue Feb 17 23:30:17 PST 2015


On 2015-02-10 12:09:05, Chad Versace wrote:
> > On Sun, Feb 08, 2015 at 07:50:15PM -0500, Frank Henigman wrote:
> >> I'd like to extend wflinfo so it can print platform-specific
> >> information and eventually be able to replace glxinfo, eglinfo and the
> >> like (I only know what's on linux).  There would be a new flag to
> >> request the platform-specific output in addition to the existing
> >> output.  For example on glx you'd see glx extensions, on egl you'd see
> >> egl extensions.
> >> I've started two different implementations and I'd like to know which
> >> is preferred before I go any farther.  Or if there's a better idea
> >> than either of my approaches.  I've dubbed the two approaches "native"
> >> and "core."
> >>
> >> native
> >> - all the work is done in wflinfo, no changes to waffle api
> >> - use waffle_display_get_native() to access platform-specific stuff
> >> - pro: changes limited to wflinfo, doesn't clutter up the rest of waffle
> >> - con: some duplicate code to open libraries and lookup symbols
> >> - https://github.com/fjhenigman/waffle/tree/ps_native
> >>
> >> core
> >> - add waffle_display_print_info() to waffle api
> >> - add print_info() method to each platform
> >> - pro: less code, no duplication
> >> - con (perhaps): some wflinfo functionality is now in core waffle
> >> - https://github.com/fjhenigman/waffle/tree/ps_core
> >>
> >> I'm leaning toward "core" because there is less code.  We get to
> >> leverage the platform libraries and functions already stored in waffle
> >> platform structs.  But if the consensus is it's cleaner to keep this
> >> stuff in wflinfo I'm ok with that too.
> 
> I prefer "core" too. Not for the sake of less code, but because I like
> the idea of it being available as core API.

This surprised me a bit. I wouldn't think of the waffle library
wanting to embed a bunch of strings to fulfill such an API.

Anyway... how about this:

char**
waffle_display_info_strings(struct waffle_display *self, bool verbose);

The returned array of strings could have this property:

First look for a key string pointer. If it is NULL, then you are done.
If you find non-NULL key string pointer then search for 0 or more
non-NULL value string pointers. When a NULL pointer is seen, go back
to looking for a key string pointer.

I've attached an example program that sort of emulates wflinfo...

This would allow the consumer to use comma separation and/or line
breaks as desired.

-Jordan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: waffle_display_info_strings.c
Type: text/x-c
Size: 1499 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/waffle/attachments/20150217/95d0514b/attachment.bin>


More information about the waffle mailing list