Development quick access |
|
Research[]
GLUT will not be used for the most part. The main features, window creation/management and the event loop, run counter to the intended use of OpenGL. Much of the functionality would have to be implemented manually (in lisp). The main philosophy of sawfish is to have policy and control done all in lisp code such things conflict with this approach.
A direct mapping of the C api may not be the best implantation. Either a subset or an adaptation.
State machine[]
OpenGL is implemented with/as a state machine, how will this effect the bindings?
Methods to implement[]
This will need not only gl code but X code pulled from sawfish (for the event loop)
Basic functionality requires from gl namespace:
- glBegin/glEnd
- glVertex* (which ones? we may be able implement a subset and fake the others if necessary)
- glClear
- glLoadIdentity
- glTranslatef
- glMatrixMode
- glViewport
- glShadeModel
- glClearColor
- glEnable
- glDepthFunc
- glHint
- glFlush
- glClearDepth
- list any others needed for basic (lesson2 from NeHe) level support
From glu:
- gluPerspective
- list any others here
From glx:
- glXSwapBuffers
- glXDestroyContext
- glXMakeCurrent
- glXChooseVisual
- glXQueryVersion
- glXIsDirect
- list any others here
Will need a number of symbols and constants
- list them here
TODO[]
- determine which set of commands are needed
- determine how GLX interacts with X Events
- what/how to do
configure
detection
docs[]
NeHe lesson 2 GLX version should have all C calls needed
The Red Book Good intro to GL programming
The Blue Book GL reference