Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
OpenGL-ESish library for PSP
C
tree: c879b9d4c2

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
GL
GLES
test-q3
test-vfpu
tests
tools
.hgignore
LICENSE
Makefile
README
eglBindTexImage.c
eglChooseConfig.c
eglCreateContext.c
eglCreatePbufferSurface.c
eglCreateWindowSurface.c
eglDestroyContext.c
eglDestroySurface.c
eglGetConfigAttrib.c
eglGetConfigs.c
eglGetDisplay.c
eglGetError.c
eglGetProcAddress.c
eglInitialize.c
eglMakeCurrent.c
eglQueryString.c
eglSwapBuffers.c
eglSwapInterval.c
eglTerminate.c
eglWaitGL.c
eglWaitNative.c
glAlphaFunc.c
glArrayElement.c
glBegin.c
glBindBufferARB.c
glBindTexture.c
glBlendEquation.c
glBlendFunc.c
glBufferDataARB.c
glBufferSubDataARB.c
glClear.c
glClearColor.c
glClearDepth.c
glClearDepthf.c
glClearStencil.c
glColor.c
glColorMask.c
glColorPointer.c
glColorTable.c
glCompressedTexImage2D.c
glCopyTexImage2D.c
glCullFace.c
glDeleteBuffersARB.c
glDeleteLists.c
glDeleteTextures.c
glDepthFunc.c
glDepthMask.c
glDepthRange.c
glDepthRangef.c
glDrawArrays.c
glDrawBezierArrays.c
glDrawBezierElements.c
glDrawBuffer.c
glDrawElements.c
glDrawSplineArrays.c
glDrawSplineElements.c
glEnable.c
glEnableClientState.c
glEnd.c
glFinish.c
glFlush.c
glFog.c
glFrontFace.c
glFrustum.c
glFrustumf.c
glGenBuffersARB.c
glGenLists.c
glGenTextures.c
glGetBufferSubDataARB.c
glGetError.c
glGetFloatv.c
glGetIntegerv.c
glGetString.c
glInterleavedArrays.c
glIsBufferARB.c
glIsList.c
glIsTexture.c
glLight.c
glLightModel.c
glLineWidth.c
glLoadIdentity.c
glLoadMatrixf.c
glLockArraysEXT.c
glLogicOp.c
glMapBufferARB.c
glMaterial.c
glMatrixMode.c
glMultMatrixf.c
glNormal.c
glNormalPointer.c
glNormald.c
glOrtho.c
glOrthof.c
glPixelStore.c
glPolygonMode.c
glPolygonOffset.c
glPopMatrix.c
glPrioritizeTextures.c
glPushAttrib.c
glPushClientAttrib.c
glPushMatrix.c
glReadBuffer.c
glReadPixels.c
glRotatef.c
glScaled.c
glScalef.c
glScissor.c
glShadeModel.c
glStencilFunc.c
glStencilMask.c
glStencilOp.c
glTexCoord.c
glTexCoordPointer.c
glTexEnv.c
glTexGen.c
glTexImage2D.c
glTexParameter.c
glTexSubImage2D.c
glTranslatef.c
glUnmapBufferARB.c
glVertex.c
glVertexPointer.c
glVertexd.c
glVertexi.c
glViewport.c
glWeightPointerPSP.c
gluBuildMipmaps.c
gluLookAt.c
gluLookAtf.c
gluPerspective.c
gluPerspectivef.c
gluScaleImage.c
glut.c
guconsts.h
pspgl_buffers.c
pspgl_buffers.h
pspgl_codegen.h
pspgl_context.c
pspgl_copy_pixels.c
pspgl_dlist.c
pspgl_dlist.h
pspgl_ge_init.c
pspgl_hash.c
pspgl_hash.h
pspgl_internal.h
pspgl_matrix.c
pspgl_matrix.h
pspgl_misc.c
pspgl_misc.h
pspgl_stats.c
pspgl_texobj.c
pspgl_texobj.h
pspgl_varray.c
pspgl_varray_draw.c
pspgl_varray_draw_elts.c
pspgl_varray_draw_range_elts.c
pspgl_vidmem.c
pspglu.c
pspglu.h
swiz.c

README

Hi,

pspGL is a pure, minimal, hardware-accelerated implementation of something like
OpenGL for the Playstation Portable. Before you are able to compile it, you
need to set up a PSP toolchain and SDK as described on http://pspdev.org.

Export PSP_MOUNTDIR=<your_PSP_mountpoint> and PSP_REVISION=<your_PSP_revision>.
Then type 'make' to build, 'make -C <demodir> install' to build and install one
of the demos.  Here an example how to build for a 1.50 PSP on MacOS-X:

   $ export PSP_MOUNTDIR=/Volumes/PSP
   $ export PSP_REVISION=1.50
   $ make && make -C tests clean install
   $ make && make -C test-glut clean install

All OpenGL-ES fixed-point commands are not implemented. Please take a look
in the GLES/gl.h header file for the OpenGL commands implemented additionally
to the minimum OpenGL-ES profile. Define PURE_GLES before including this file
if you want to switch off these extensions.

You can also use the GL/gl.h include set, but should avoid double-precision
function calls for performance reasons.

Display lists are used internally, but not exposed to the GL API.

Only a minimum set of the core GLUT functions is implemented.

pspgl_misc.[hc] contains some debug functions to dump PSP GE command buffers, 
the GE register set and the GE matrix stack to the memory stick. In the
tools/ directory you find a rough disassembler for GE packets, maybe you find
this useful to debug your problems. Please note that still a lot of commands
are missing, please send patches if you enhance this functionality.

The PSP has been designed for gaming, so some OpenGL features that are rarely 
used in games are missing and some have only somewhat limited support by the
Hardware. Here is a short list of things you should consider when writing 
GL applications for the PSP:

 - only 4 light sources are supported
 - antialiasing can get switched on/off only globally
 - No user-defined clip planes are supported
 - only single-pixel wide lines and points
 - We don't know yet whether/how the fog function can get changed.
 - Only single-sided lighting, for two sided shading you need a CW and a CCW pass.
 - No wireframe rendering, we don' know whether the PSP supports this.

This list is by no means complete, please report if you encounter other issues.

All files are BSD-licensed, feel free to use it in free or commercial projects.
enjoy, have fun,

See http://www.goop.org/psp/gl for more documentation about this library.

Holger Waechtler
Jeremy Fitzhardinge
Something went wrong with that request. Please try again.