clinton/guile-figl.git
11 years agodefine more types
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.

11 years agoskip double variants, not float variants
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.

11 years agoreorganize file structures; allow for module-specific types
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.

11 years agodefinitions for common types
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.

11 years agoadd figl/low-level/types.scm
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.

11 years agocurrent-gl-resolver parameter
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.

11 years agostart to actually making foreign wrappers
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!

11 years agohandle families of functions with different signatures
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.

11 years agofirst attempt at parse-prototype
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.

11 years agobump version
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.

11 years agofix distcheck, make valid texinfo that can make pdfs
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.

11 years agogenerate separate modules for gl, glu, glx; add info target
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.

11 years agoplain-text docstrings
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.

11 years agogenerate low-level bindings
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.

11 years agodocstrings for one and all
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.

11 years agomore work on parser
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.

11 years agoadd figl/parse.scm
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.

11 years agoadd figl/config.scm
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.

11 years agoadd upstream documentation
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.

11 years agoinitial import
Andy Wingo [Fri, 25 Jan 2013 16:03:55 +0000 (17:03 +0100)]
initial import

11 years agoinitial empty commit
Andy Wingo [Fri, 25 Jan 2013 15:28:28 +0000 (16:28 +0100)]
initial empty commit