summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Andy Wingo [Tue, 5 Feb 2013 17:43:19 +0000 (18:43 +0100)]
a #f array is the null pointer
* figl/gl/types.scm (array->pointer, define-array-foreign-type): Allow
#f to indicate a null pointer.
Andy Wingo [Tue, 5 Feb 2013 12:15:01 +0000 (13:15 +0100)]
add glut demo
* examples/glut/demo.scm: Copied GLUT demo from Daniel Hartwig.
Andy Wingo [Tue, 5 Feb 2013 11:53:10 +0000 (12:53 +0100)]
documentation work
* doc/figl.texi: Reorganize and flesh out.
Andy Wingo [Tue, 5 Feb 2013 10:21:45 +0000 (11:21 +0100)]
update loader comment
* figl/gl/runtime.scm: Update comment about loaders.
Andy Wingo [Tue, 5 Feb 2013 09:30:41 +0000 (10:30 +0100)]
fix the resolver mess, and add glut to the build
* maint/update-low-level-bindings (write-scm): Update to use
module-specific runtimes, and to generate define-FOO-procedure forms.
This way modules can control how their symbols are loaded.
* figl/runtime.scm: Remove the default resolver; instead have
define-foreign-procedure take a resolver form.
* figl/gl/runtime.scm:
* figl/glu/runtime.scm:
* figl/glut/runtime.scm:
* figl/glx/runtime.scm: New support modules.
* figl/gl/low-level.scm:
* figl/glu/low-level.scm:
* figl/glx/low-level.scm: Regenerate.
* figl/glut/low-level.scm: Change to use define-glut-procedure, and to
delegate all the resolver business to the runtime module.
* Makefile.am: Add new files, and add glut to the build.
Andy Wingo [Mon, 4 Feb 2013 21:33:40 +0000 (22:33 +0100)]
add comment about how loaders should work
* figl/runtime.scm: Add a big comment about loaders and how they should
work.
Daniel Hartwig [Mon, 4 Feb 2013 07:24:37 +0000 (15:24 +0800)]
initial glut bindings
* figl/glut/low-level.scm: Low-level bindings.
* figl/glut.scm: Initial high-level bindings; only one helper for
glut-init.
Andy Wingo [Sun, 3 Feb 2013 22:28:47 +0000 (23:28 +0100)]
documentation work
* doc/figl.texi: Add some docs.
Andy Wingo [Sun, 3 Feb 2013 18:39:30 +0000 (19:39 +0100)]
beginnings of high-level modules
* Makefile.am: Add the new modules.
* figl/gl.scm:
* figl/glx.scm: Add high-level modules. Nothing in them yet except a
resolver.
Andy Wingo [Sat, 2 Feb 2013 21:11:33 +0000 (22:11 +0100)]
better handling of array arguments, strings
* figl/gl/types.scm: Array arguments are passed as bytevectors. Strings
use pointer<->string.
Andy Wingo [Sat, 2 Feb 2013 20:38:31 +0000 (21:38 +0100)]
type-specific wrapping and unwrapping of scheme values
* figl/runtime.scm (foreign-trampoline):
(define-foreign-procedure):
(define-foreign-type):
(define-simple-foreign-type): Provide for a way for types to wrap and
unwrap foreign values.
* figl/glx/types.scm:
* figl/glu/types.scm:
* figl/gl/types.scm: Adapt to define types with the runtime's macros.
Andy Wingo [Sat, 2 Feb 2013 19:54:25 +0000 (20:54 +0100)]
define-foreign-procedure makes one def.; add define-foreign-procedures
* figl/runtime.scm (define-foreign-procedure):
(define-foreign-procedures): Split define-foreign-procedure into two
parts: one that handles the variants, and one "core" macro.
* maint/update-low-level-bindings: Update to generate
define-foreign-procedures invocations.
* figl/gl/low-level.scm:
* figl/glu/low-level.scm:
* figl/glx/low-level.scm: Regenerate.
Andy Wingo [Fri, 1 Feb 2013 21:23:16 +0000 (22:23 +0100)]
simplify gl type name creation
* figl/parse.scm (string->gl-type): Simplify.
* figl/glx/types.scm (const-GLXContext): Missing decl.
* figl/glx/low-level.scm: Regenerate.
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