FFP operates in a fashion that’s very similar to OpenGL’s fixed function pipeline, in fact I named it FFP (fixed function pipeline) because of this. I’ve never used LibGDX so I’m not sure what it has and what it needs but I’m sure it can’t be hard. The engine already has FBOs essentially since you can point the engine to using a certain render target whenever you need. For VBOs, you can wrap the ffpVertex() function calls with the functionality of VBOs. Since this is a software renderer, there is little overhead for calling ffpVertex() and thus VBOs being integrated into the engine itself wouldn’t provide much of a performance boost.
I’ll definitely look into LibGDX, you’ve got me curious now
About the shaders… I’m not sure how I could implement them, or if I would even want to implement them. I avoided shaders because I feel like they should remain as a hardware accelerated feature. The processing needed for a shader is not convenient for a software renderer and any features that need to be added using shaders are probably not going to run fast on the CPU anyways. The fixed function lighting in the engine is as realistic as I could make it and it’s as fast as I could make it.