Hm, that's an interesting requirement! That hasn't been done before, or at least I haven't heard about such an attempt.
In theory, it should be possible; but the problems will probably be in the details. Sparrow 2.0 uses a subclass of GLKViewController, called SPViewController, as the basis of its logic. That view controller initiates the rendering, collects touch events and dispatches Sparrow events.
The actual rendering is started up in the method "glkView:drawInRect:" in the SPViewController. That's where Sparrow sets up its rendering states; and this is probably where you could inject your own rendering code.
The other way round -- injecting Sparrow's render code into your pipeline -- will probably be more difficult. Though I guess this is what you'd actually need. 😉
The problem is that Sparrow sometimes accesses its view controller directly in its code, using "Sparrow.currentController". I had to do it that way to be able to access some properties from within object constructors without constantly having to pass all those states around. E.g. it accesses the current scale factor of the view using "Sparrow.contentScaleFactor", which is just a shortcut to "Sparrow.currentController.contentScaleFactor". And this wouldn't work when there is no such SPViewController.
Sorry that I don't have a simple solution at hand. :-/ This hasn't been requested before, so I didn't design the API with that possibility in mind.