[gambit-list] more fun with c-ffi

Guillaume Cartier gcartier at jazzscheme.org
Mon Feb 16 18:17:43 EST 2009


Here's how Marc does it in his Xlib.scm example :

(define GCFunction
  ((c-lambda () unsigned-long "___result = GCFunction;")))

(define GCPlaneMask
  ((c-lambda () unsigned-long "___result = GCPlaneMask;")))

(define GCForeground
  ((c-lambda () unsigned-long "___result = GCForeground;")))

(define GCBackground
  ((c-lambda () unsigned-long "___result = GCBackground;")))

(define GCLineWidth
  ((c-lambda () unsigned-long "___result = GCLineWidth;")))


On Mon, Feb 16, 2009 at 5:40 PM, lowly coder
<lowlycoder at huoyanjinjing.com>wrote:

> looking at the glut ffi at the dumping grounds, we have lines like:
>
> (define GL_NORMAL_ARRAY #x8075)
> (define GL_COLOR_ARRAY #x8076)
> (define GL_INDEX_ARRAY #x8077)
> (define GL_TEXTURE_COORD_ARRAY #x8078)
>
> this is really cool because ... now, in scheme land, I also know the values
> of these defines
>
> suppose however, I didn't care about the values of these globals in scheme
> land ... and suppose, i'm writing the ffi for naother library and I don't
> want to manually (or write a script) to get the value of each of these
> constants, is there anyway I can do something like:
>
> (c-define-foreign-varaible gl_normal_array "GL_NORMAL_ARRAY")
>
> and have gl_normal_array (only in compiled mode, I recognize this will fail
> in interpted mode) just get expanded to "GL_NORMAL_ARRAY" during
> compilation?
>
> thanks!
>
> (I also dislike the eralier method in that ... if API changes causes the
> global vars to have different values ... i'll have lots of fun with silent
> var value changes
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20090216/c1e59880/attachment.htm>


More information about the Gambit-list mailing list