Hallo.
Habe mir eben mal tbDirect3d genauer angesehen und mir ist da etwas aufgefallen was ich mir nicht erklären kann.
In den Methoden GetTSS und GetTSSF unterscheidet sich die Bedingung, wann ein TSS gültig ist und wann nicht.
Aus GetTSS:
|
Quellcode
|
1
2
3
4
5
6
|
if(dwStage > 8 ||
TSS < 1 || TSS > 32)
{
// Texturschicht-State ist nicht gültig!
TB_ERROR("Ungültiges Texturschicht-State!", 0xEEEEEEEE);
}
|
Aus GetTSSF:
|
Quellcode
|
1
2
3
4
5
6
|
if(dwStage < 0 || dwStage > 8 ||
TSS < 0 || TSS > 32)
{
// Texturschicht-State ist nicht gültig!
TB_ERROR("Ungültiges Texturschicht-State!", -10000000.0f);
}
|
1. dwState ist ein unsigned long (oder auch DWORD), er kann AFAIK niemals negativ werden. Warum wird bei GetTSSF abgefragt ob er kleiner als 0 ist?
2. Bei GetTSS muss TSS zwischen 1 und 32 liegen bei GetTSSF zwischen 0 und 32. Warum?
3. Warum hast du anstelle von SetRS und SetRSF oder SetTSS und SetTSSF nicht einfach nur Parameter overloading benutzt und dich auf einen Bezeichner beschränkt. Also "SetRS" und "SetTSS" in den o.g. Fällen.