Hi!
Ich hab gestern das neue SDK runtergeladen und gleich mal getestet. Bei meinen Mini-Progrämmchen kann ich keine Unterschiede feststellen, bis auf einen: Anscheinend bei hat bei den IndexBuffern etwas verändert, nämlich die Typ"toleranz". In der Vorversion (Summer 2004) funktionierte das hier wunderbar:
C#: (In C++ sieht die Instantiierung ja fast genauso aus)
gIndexBuffer = new IndexBuffer(
typeof(int),
TOTALINDICES,
gD3DDevice,
Usage.None,
Pool.Managed
);
wobei int in C# normalerweise 32Bit lang ist.
Mit der neuen Version (April 2005) knallt diese Definition, wenn man den IndexBuffer an die Indices des Devices zuweisen will:
gD3dDevice = gIndexBuffer;
Das tat es früher nicht.
Ich hab gestern rumgespielt und wenn man es statt dessen mit etwas 16bittigen wie z.B. ushort versucht, geht es:
gIndexBuffer = new IndexBuffer(
typeof(ushort),
TOTALINDICES,
gD3DDevice,
Usage.None,
Pool.Managed
);
gD3dDevice = gIndexBuffer;
Habt Ihr ähnliches festgestellt?
Ich halte es erstmal für einen Bug im SDK, denn es kann ja schon mal sein, daß man mehr 64.000 Indices ansprechen muss und dann reichen 16bit nicht.
Ciao,
Wolfram