I'm looking over the changes made for pix_texture concerning the 'debug' post() statements, and think I have a solution to the problem. While post() is great for debugging and giving info about various internal states in GEM objects, it becomes annoying and in some cases highly objectionable to have all this data spewed out into the terminal window. What if we make a debug function part of the pix base class that would dump the state info on request? This way if a user wants to find out what the heck is going on in their chain and perhaps figure out why it's not working, they could send a 'debug' message to the object.
Here's some code to illustrate:
void pix_texture :: doDebug(GemState *state){
if ( GemMan::texture_range_supported && GemMan::texture_rectangle_supported && m_mode){ post("pix_texture: using glTextureRangeAPPLE()"); } else { post("pix_texture: using TEXTURE_2D"); } }
There would be a m_doDebug that would trigger with the 'debug' message and be reset in the post render to prevent endless retriggers.
This would help reduce code clutter and also allow for errors and checks that occur render pass to be managed without throwing one every single time the render function is called. Also, if an entire chain is sent 'debug' messages then the user would have a good set of info to trace problems with and also post to the list for help.
This will probably require a few more member variables in each class, but it might provide a much more elegant solution to our post() and debug problems.
cgc