I am trying to update our engine to your SDK 3.0 release and I am quite dissatisfied with the design of code in PVRTPFXParserAPI.h and its .cpp. In your previous SDK version, you made it possible for overlapped user defined semantics. This means I can define my own POSITION_ATTR as 0 etc while your semantic also exists. This way I can structure my cross platform code to access position array using this index POSITION_ATTR at a lot of places (updating geometry data, etc)
But with your 3.0 SDK I now have to offset all my defines from “ePVRTPFX_NumSemantics”. This is quite frustrating as there is no reason why this kind of code change has to introduced while it was working peacefully in your previous SDK. While IT IS POSSIBLE to work around to make it work in my engine, it still won’t look elegant.
A large list of built-in semantics was added to the Tools in the 3.0 release which means that users no longer have to define their own semantics for common elements, such as POSITION. Having ID clashes inside PFXParser with user semantics and the built-in semantics will cause problems hence the need to begin user semantics at ePVRTPFX_NumSemantics. This is quite a common approach.
Of course, if you’re not happy with this, you can just drop the code in from the 2.10 release. The SDK code is provided ‘as-is’ so developers such as yourself can modify it to suit your own needs.
Thanks for the reply ! I got to work around your modifications and I am back running . It is true, that I can modify the PVR SDK code, but it will be a last resort any developer will take.
One last question, if I am not using your Shaman semantics (SPVRTPFXUniformSemantic c_psSemanticsInfo ), does not mean the number of uniforms I can use in a shader are limited ?
There is no limit to the number of user semantics for PFX. If you want to ignore the PVRShaman-style semantics you can go ahead and just not use them.