Andy Wingo [Fri, 1 Feb 2013 21:18:18 +0000 (22:18 +0100)]
define more types
* figl/parse.scm: Don't reduce pointer types to "*" early on. Instead,
try to preserve the information that we have.
* doc/low-level-gl.texi:
* doc/low-level-glu.texi:
* doc/low-level-glx.texi:
* figl/glx/low-level.scm:
* figl/glu/low-level.scm:
* figl/gl/low-level.scm: Regenerate.
* figl/gl/types.scm:
* figl/glu/types.scm:
* figl/glx/types.scm: Define more types.
Andy Wingo [Fri, 1 Feb 2013 20:27:13 +0000 (21:27 +0100)]
skip double variants, not float variants
* figl/parse.scm (parse-prototypes): Skip double variants instead of
skipping float variants, to better match hardware capabilities.
* figl/gl/low-level.scm:
* doc/low-level-gl.texi: Regenerate.
Andy Wingo [Fri, 1 Feb 2013 20:20:17 +0000 (21:20 +0100)]
reorganize file structures; allow for module-specific types
* figl/runtime.scm: Rename from (figl low-level support).
* doc/low-level-glx.texi:
* doc/low-level-glu.texi:
* doc/low-level-gl.texi: Regenerated.
* figl/gl/low-level.scm:
* figl/glu/low-level.scm:
* figl/glx/low-level.scm: Moved here, from figl/low-level/foo.scm.
* maint/update-low-level-bindings: Update script for new locations, and
to use type modules.
* figl/glx/types.scm:
* figl/glu/types.scm:
* figl/gl/types.scm: New module-specific types.
* figl/low-level/types.scm: Removed in favor of module-specific types.
* Makefile.am: Update.
Andy Wingo [Fri, 1 Feb 2013 16:10:51 +0000 (17:10 +0100)]
definitions for common types
* figl/low-level/support.scm: Re-export the types module, and define
void.
Daniel Hartwig [Fri, 1 Feb 2013 05:32:05 +0000 (13:32 +0800)]
add figl/low-level/types.scm
* figl/low-level/types.scm: New file. Mappings from OpenGL to FFI types.
* Makefile.am: Add.
Andy Wingo [Fri, 1 Feb 2013 16:04:50 +0000 (17:04 +0100)]
current-gl-resolver parameter
* figl/low-level/support.scm (default-foreign-resolver):
(current-gl-resolver, resolve-foreign): Export current-gl-resolver
as a parameter.
Andy Wingo [Fri, 1 Feb 2013 15:58:04 +0000 (16:58 +0100)]
start to actually making foreign wrappers
* figl/low-level/support.scm (resolve-foreign): New helper.
(foreign-trampoline): New helper.
(define-gl-procedure): Begin to consider actually doing the right
thing!
Andy Wingo [Fri, 1 Feb 2013 15:20:48 +0000 (16:20 +0100)]
handle families of functions with different signatures
* figl/parse.scm (gl-definition): Change prototype field to prototypes.
(xml-funcprototypes): New func, replaces xml-prototype.
(string->gl-type): Trim spaces. Always make a symbol (what was going
on here before with the double quote?)
(parse-prototypes): Extract all prototypes. Attempt to elide
redundant procedures.
(parse-gl-definitions, xml->definition): Don't generate definitions
for man pages without prototypes.
* maint/update-low-level-bindings (write-scm): Adapt format of
define-gl-procedure, and generate a correct export list.
* doc/low-level-gl.texi:
* doc/low-level-glu.texi:
* doc/low-level-glx.texi:
* figl/low-level/gl.scm:
* figl/low-level/glu.scm:
* figl/low-level/glx.scm: Update generated files.
* figl/low-level/support.scm (define-gl-procedure): Adapt to make
multiple definitions.
Daniel Hartwig [Fri, 1 Feb 2013 11:21:46 +0000 (19:21 +0800)]
first attempt at parse-prototype
* figl/parse.scm: First attempt at parse-prototype. Outputs a form
similar to the one used by the glut bindings. Keeping the
function name around as it is needed: refname is not particularly
useful.
Andy Wingo [Fri, 1 Feb 2013 11:40:59 +0000 (12:40 +0100)]
bump version
* .gitignore: Update.
* configure.ac: Version of 2.0, as we will wrap OpenGL version 2.x.
Andy Wingo [Fri, 1 Feb 2013 11:39:43 +0000 (12:39 +0100)]
fix distcheck, make valid texinfo that can make pdfs
* Makefile.am (EXTRA_DIST): Add other .texi files to dist.
* doc/low-level-gl.texi:
* doc/low-level-glu.texi:
* doc/low-level-glx.texi:
* figl/low-level/gl.scm:
* figl/low-level/glu.scm:
* figl/low-level/glx.scm: Regenerate.
* figl/parse.scm (*rules*): Avoid <title> elements; headings can't be
present in @defun sections. Don't generate @math blocks, as texi2pdf
does not interpret them well. Instead use @r.
* maint/update-low-level-bindings (unique-copyrights): Handle lack of
copyright (shouldn't happen).
(write-scm): Make plain-text docstrings again.
Andy Wingo [Fri, 1 Feb 2013 11:10:06 +0000 (12:10 +0100)]
generate separate modules for gl, glu, glx; add info target
* .gitignore: New file.
* Makefile.am: Add documentation, and only update the generated files
when asked to. Add new low-level generated files and generated
documentation.
* doc/figl.texi: New file.
* doc/low-level-gl.texi:
* doc/low-level-glu.texi:
* doc/low-level-glx.texi: New generated files.
* figl/config.scm.in: Add abs-top-srcdir.
* figl/low-level.inc.scm: Removed.
* figl/low-level/gl.scm:
* figl/low-level/glu.scm:
* figl/low-level/glx.scm: New generated files.
* figl/low-level/support.scm: New runtime support file.
* figl/parse.scm: Update to expose a "gl-definition" data type, and
expose a parse-to-list interface rather than a fold interface.
Various hacky documentation tweaks to generate valid stexi for the
whole binding set.
* generate-low-level-bindings:
* maint/update-low-level-bindings: Move the updater into maint/ dir, and
only run when asked. Generate whole modules, and documentation too.
Andy Wingo [Thu, 31 Jan 2013 22:01:50 +0000 (23:01 +0100)]
plain-text docstrings
* figl/parse.scm (generate-documentation): Generate plain text for now.
* figl/low-level.inc.scm: Check in this file.
Andy Wingo [Thu, 31 Jan 2013 21:54:47 +0000 (22:54 +0100)]
generate low-level bindings
* Makefile.am: Add rules to generate low-level.inc.scm.
* generate-low-level-bindings: New helper.
* figl/parse.scm: Rework to deal with versions instead of man sections.
Define and export fold-gl-definitions.
* figl/low-level.scm: New file, for the low-level bindings.
Andy Wingo [Thu, 31 Jan 2013 21:17:49 +0000 (22:17 +0100)]
docstrings for one and all
* figl/parse.scm (generate-documentation): Produce a serialized texinfo
fragment.
(*rules*): Add enough terrible hacky rules that we can parse all of
the docbook in man2 without warnings.
(*man-sections*): Turns out these aren't manual sections; they are
versions of the API. Just focus on OpenGL 2.x for now.
Andy Wingo [Thu, 31 Jan 2013 08:22:51 +0000 (09:22 +0100)]
more work on parser
* figl/parse.scm: Update to use newest xml->sxml features, and the
beginnings of parsing the XML files.
Andy Wingo [Mon, 28 Jan 2013 21:50:53 +0000 (22:50 +0100)]
add figl/parse.scm
* figl/parse.scm: New file.
* Makefile.am: Add.
Andy Wingo [Mon, 28 Jan 2013 21:50:09 +0000 (22:50 +0100)]
add figl/config.scm
* figl/config.scm.in: New file.
* configure.ac: Generate config.scm.
* Makefile.am:
* .gitignore: Add config.scm.
Andy Wingo [Fri, 25 Jan 2013 16:41:54 +0000 (17:41 +0100)]
add upstream documentation
* upstream-man-pages/update: New script, downloads documentation from
khronos.org.
* upstream-man-pages/man2:
* upstream-man-pages/man3:
* upstream-man-pages/man4:
* upstream-man-pages/manglsl: Update.
Andy Wingo [Fri, 25 Jan 2013 16:03:55 +0000 (17:03 +0100)]
initial import
Andy Wingo [Fri, 25 Jan 2013 15:28:28 +0000 (16:28 +0100)]
initial empty commit