Hi,
ich bin grad dabei eine Funktion zu schreiben, mit der ich alle Elemente meines STL Container ps_objects rendern kann. Dabei liegen meine Vertices und Indices jeweils in eigenem Array.
Die Zeichenroutine sieht jetzt so aus:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
obj_size = ps_objects.size();
for( int i=0;i<obj_size;i++ )
{
tObject = psObject_GetIObject(i);
if( FAILED( g_pd3dDevice->SetTexture( 0, tObject.Texture ) ) ) Error( "[ PSENGINE ]: Can't set Texture!");
if( FAILED( g_pd3dDevice->SetFVF( PS_STANDARD_FVF ) ) ) Error( "[ PSENGINE ]: Can't set Vertex Format!");
res = g_pd3dDevice->DrawIndexedPrimitiveUP( tObject.PType, 0, tObject.iCount, tObject.pCount, tObject.Indices, D3DFMT_INDEX16,
tObject.Vertices, sizeof(Vertex3d) );
if( FAILED( res ) ) Error("[ PSENGINE ]: Can't render indexed Primitives!");
}
|
Doch das Programm stürzt mit dem Debugfehler 'Zugriffsverletzung beim Lesen an Position 0x00dca000.'
Wie man sieht ist da drin eine Schleife. Das erste Objekt wird noch ordentlich gerendert. Allerdings kommt die Fehlermeldung bei der DrawIndexedPrimitiveUP Funktion. Die Werte zu dieser stimmen alle.
Ich hoffe ich hab genügend Material zum Lösen Problems bereitgestellt...
Was hab ich falsch gemacht, was hab ich vergessen?
Danke im Vorraus
lg