On Mon, Apr 11, 2011 at 1:32 PM, Stephan Houben <steph...@planet.nl> wrote: > This function fills array "params" with some data. > The length of params depends on pname and is not directly specified. > > I now wrap this as follows: > > (_fun (target : _int32) (level : _int32) (pname : _int32) (params : > _pointer) -> _void) > > So params is just a raw pointer. I should perhaps use _i32vector in "output" > mode instead but: > 1. I don't have an expression for the length, and
If you look in enum.spec, and find either of the sections starting with "passthru: /* GetPName */", all of the lines below look like: CURRENT_COLOR = 0x0B00 # 4 F # GetPName CURRENT_INDEX = 0x0B01 # 1 F # GetPName CURRENT_NORMAL = 0x0B02 # 3 F # GetPName The number and letter immediately following the enum's value _appear_ to always correspond to the number (and type) of values which that pname will produce. Kind of distasteful grabbing a value from what looks like a comment, but they seem to be consistent about it. > 2. I don't want to have the wrapper allocate and return an array; rather I > want to mirror > the C api exactly and pass in an array which is filled by the function. > > The latter I consider especially important, since it ensures that all the > docs for the C API can be used directly. PyOpenGL does exactly what you don't want to do, and I think the normal documentation remains just as useful. I'd certainly prefer that behavior. -- Jay Kominek _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users