It merges a lot of 3do and s3o code and makes writting of new parsers much easier. But like you can imagine it affects a lot of synced and unsynced code w/o giving the user (in the current form) many advantages.
So do I have to make a branch or is 78 delayed, so I can commit and perhaps see if I get GLSL shaders running till the next release?
PS: a small list what the patch does:
- 3do and s3o are now IModelParser interfaces (just need Load() and Draw())
- 3dmodelparser does now all the other stuff (creation of LocalModel instances, model cache, model parser managment)
- no more S3DO & SS3O, they are now derivatives of S3DModel and S3DModelPiece, so there are just 4 classes/structures: S3DModel & S3DModelPiece and their local instances LocalModel & LocalModelPiece.
- merged most parts of the 3do and s3o rendering, to do so it will create now a tex2 even for 3do and will use the alpha in the first tex for the teamcolor (so it won't create duplicates of the 3do teamtexs in the atlas -> more space)
- refactored piece settings (pos,rot,visible) out of COBInstance into LocalModelPiece, so COB is now optional and not needed for rendering anymore, also if lua gets the interface it will be able to animate all pieces and not only those which are known by the cob. It will make also some OpenGL stuff easier, so you could update the piece matrices on demand instead of on runtime, etc.