[racket] Creating OpenGL textures from bitmaps

From: Michael W (mwilber at uccs.edu)
Date: Mon Mar 26 12:10:39 EDT 2012

I'd also love to know if there's a better way. A
bitmap%->opengl-tex-handle function would be absolutely
scrumptious.

Part of the reason seems to be that Racket stores images as ARGB
bytes, but OpenGL doesn't support that, hence the need for all
the byte swizzling.

For what it's worth, I have some (lousy) example code that draws
our beloved (standard-fish) to an OpenGL texture, just copying
the argb bytes to a new buffer and loading that. It's
horrible--useless comments abound and mutation everywhere---and
it's exactly what you said you didn't want, but in case you need
it: https://gist.github.com/2206165

2 hours ago, Tomi Neste wrote:
> Hi!
> 
> I'd need to use bitmaps rendered with the graphics toolkit as OpenGL
> textures in a GL context created by a foreign library (like GLFW, for
> example). I was looking through the documentation but couldn't any
> information on how to bind Racket bitmaps as GL textures. The SGL
> examples seem to do a byte-by-byte copy of a Racket byte-vector
> acquired with get-argb-pixels which seems redundant and slow since I
> assume the bitmap is already stored in some format that could be
> directly used by OpenGL texture creation functions.
> 
> So, is there a way to get a foreign pointer to the bitmap data (and
> format information) or is there some other way to accomplish what I'd
> need?
> 

-- 
Farewell,
    _mike

Posted on the users mailing list.