Skip to content
jsgf edited this page Jan 21, 2011 · 2 revisions

PSPGL is very incomplete. I've tried to make what has been implemented work correctly in a useful way, but there are likely lots of bugs. This is a discussion of what does work (or at least, how its supposed to work). The TODO section below talks about what I'm planning.

Please report any bugs you find to me, preferably with some sample code which demonstrates the problem. A register state dump is also very useful (enable these by setting the #if 0 to #if 1 around line 42 of pspgl_misc.h and recompiling PSPGL+your program).

Features of PSPGL

A quick list of PSPGL features:

  • texture format conversion PSPGL accepts a wide range of common texture formats, and will convert them into hardware format.
  • compressed/paletted textures
  • vertex array format conversion You can use the normal gl*Pointer calls to configure arrays in any way you like (though using native hardware layout will be most efficient)
  • compiled vertex arrays The CVA extension allows vertex array copying/conversion to be cached for multiple uses of an array.
  • vertex buffer objects VBOs allow vertex data to be used directly without copying or conversion.
  • EGL config selection works You can choose 16 or 32 bit framebuffers in a number of configurations, and decide whether or not to have a depth buffer
  • extensions for PSP hardware features GL extensions allow PSP hardware features to be exposed in an efficient way without breaking programs which don't know/care about them.
  • Automatic mipmap generation in hardware

General limitations

Reading back state is not supported. Some state is readable, but a lot is not. Use the glGetIntegerv/glGetFloatv call appropriate to the type of data you want to fetch; they do not return the same set of state.

Complex conversions are not supported. It will perform enough data conversion to let you get away with not knowing the precise hardware format, but it won't do anything heroic. Things like automatic compression are right out.

Display lists are not supported. There is some non-functioning vestigial support. I'm still unsure whether they can be made to work in a sufficiently efficient and lightweight way.

More details

Clone this wiki locally