Laden...

AccessViolation in glDrawArrays

Erstellt von userid11997 vor 12 Jahren Letzter Beitrag vor 12 Jahren 902 Views
U
userid11997 Themenstarter:in
400 Beiträge seit 2008
vor 12 Jahren
AccessViolation in glDrawArrays

Moin,

ich habe oben genanntes Problem in meiner OpenGL Anwendung. Der C ode Sieht folgendermaßen aus:

aObj.BeginArray(CapabilitieFlag.VertexArray);
            aObj.BeginArray(CapabilitieFlag.TextureCoordArray);

            aObj.PushArray(0, sizeof(float) * 3, vertices);
            aObj.PushArray(1, sizeof(float) * 2, texCoords);
            
            obj.BeginList();
            aObj.PopArray(ArrayPopMode.DrawArrays, new object[]{BeginMode.TriangleStrip, 0, vertices.Length});
            obj.EndList();

            aObj.EndArray();
            aObj.EndArray();

Wobei die BeginMethoden jeweils glEnableClientState aufrufen (wie es in den Tutorials vorgegeben ist), Push jeweils ein übergebens Datenarray in ein float[]-Array umwandelt und daraus einen IntPtr-Pointer erzeugt und die Pop-Methode ruft dann in diesem Fall glDrawArrays mit den übergebenen Parametern auf.

Mit nur einem VertexArray klappt das Ganze wunderbar, sobald ich aber das TextureArray dazuschalte wirft mir die glDrawArrays Methode eine AccessViolationException.

BeginList und EndList erzeugen übrigens eine DisplayList, in die glDrawArrays reinzeichnen soll. Wie gesagt, ohne Texturkoordinaten klappt alles wunderbar, die brauche ich allerdings unbedingt.

Kann es daran liegen, dass die Texturkoordinaten falsch gelegt sind (also statt 0.0f - 1.0f bis X.Xf gehen), was ich mir allerdings nicht vorstellen kann?