Sawfish
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[]

  1. determine which set of commands are needed
  2. determine how GLX interacts with X Events
  3. 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