> Regarding the Start/Commit/Rollback idea, why not add the functions > gpuTranslateScale and glTranslateRotate, and just immediately apply > the transforms always. From looking through the code, that covers > nearly all cases, with a few places in the code that could construct > the matrix manually, and the remaining ones either not being > performance critical enough to bother avoiding the state change.
The only thing I can think performance-wise here is that GL probably recalculates the inverse matrix internally for each of these operations optimally (meaning, the inverse of a translation transform for instance is known and it avoids a full 4x4 matrix inversion). But for many matrix transforms in a row (think animation graphs?), doing a full matrix inversion at the end may be preferable. > Isn't such an inverse matrix is needed only for either normals or some > more advanced shading operation? I hope this would not be needed in > e.g. UI drawing code. This can be a flag for the function naturally, but this is a very long term optimization for when/if we support a shader driven display where matrices are loaded manually as uniforms. _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
