Age | Commit message (Collapse) | Author |
|
|
|
Some very primitive Texture State management. Data can now be
uploaded to textures.
|
|
Texture names can now be allocated via
`glGenTextures` and deallocated via `glDeleteTextures`.
|
|
There is some really wild stuff going on in the OpenGL spec for this..
The Khronos website states that GLsizei is a 32-bit non-negative value
used for sizes, however, some functions such as `glGenTextures` state
that the input `n` could be negative, which implies signage. Most other
implementations of `gl.h` seem to `typedef` this to `int` so we should
too.
|
|
|
|
|
|
|
|
|
|
This implements glAlphaFunc() for setting alpha test func and ref value
and also allows enabling and disabling GL_ALPHA_TEST
|
|
This turns off interpolation of vertex colors when GL_FLAT is selected.
|
|
|
|
|
|
|
|
|
|
This commit implements glGenLists(), glNewList(), glDeleteLists(), and
glCallList().
The 'compiled' records are implemented as a vector of member function
pointers and tuples containing their arguments, and a mechanism is
implemented to allow the recorded calls to copy-capture values from the
time of the call; this is currently only used with glLoadMatrix.
|
|
This adds glClearDepth() and new caps for enabling and disabling
the depth buffer with glEnable() and glDisable()
|
|
Adds all needed functions to support back face culling
and implements back face culling in the SoftwareGLContext.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
We now correctly set the gloabl error if we detect that
a matrix stack overflow will occur in `glPushMatrix` or
`glPopMatrix`
|
|
This implements `glGetError` and correctly sets the state machine's
error macro (similar to LibC `errno`) when an invalid operation is
performed. This is reset on completion of a successful operation.
|
|
This currently (obviously) doesn't support any actual 3D hardware,
hence all calls are done via software rendering.
Note that any modern constructs such as shaders are unsupported,
as this driver only implements Fixed Function Pipeline functionality.
The library is split into a base GLContext interface and a software
based renderer implementation of said interface. The global glXXX
functions serve as an OpenGL compatible c-style interface to the
currently bound context instance.
Co-authored-by: Stephan Unverwerth <s.unverwerth@gmx.de>
|