2009/5/30 Stefan Dösinger <stefandoesinger(a)gmx.at>:
Am 30.05.2009 um 07:24 schrieb Dmitry Timoshkov:
"Rico Schüller" <kgbricola(a)web.de> wrote:
- /* version info? */ - skip_dword_unknown(&ptr, 2); + /* Compiled target version (e.g. fx_4_0=0xfeff1001, fx_4_1=0xfeff1011). */ + read_dword(&ptr, &e->version); + TRACE("Target: %#x\n", e->version);
0xfeff/0xfffe is a unicode byte order mark, could it serve the same purpose here?
On top of my head I think it is the shader type marker - pixel shader, vertex shader, geometry shader. I don't have the headers atm, so I can't check to be sure.
Yes, but for effects. SM1-3 version tokens are 0xfffexxyy/0xffffxxyy for vertex and pixel shaders resp. SM4 version tokens look like 0x000000xy/0x000100xy/0x000200xy for PS/VS/GS. I don't remember what the version token for d3d9 effects looks like, but this is consistent with MS's general scheme for D3D/shader file formats.