Hi!
Ich hab folgendes Problem: Ich würde gerne mittels eines VertexBuffers ein einfaches Quadrat zeichnen.
Dabei hab ich folgenden Code verwendet:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
public void VertexDeclaration(Device device)
{
if (device == null)
throw new ArgumentNullException("Device is null");
vertexBuffer = new VertexBuffer(typeof(CustomVertex.PositionColored), 5, device, Usage.None,
CustomVertex.PositionColored.Format, Pool.Managed);
CustomVertex.PositionColored[] oVerts = new CustomVertex.PositionColored[5];
oVerts[0].Y = (float)0.0f;
oVerts[0].X = (float)0.0f;
oVerts[0].Color = Color.Silver.ToArgb();
oVerts[1].Y = (float)0.0f;
oVerts[1].X = (float)25.0f;
oVerts[1].Color = Color.Silver.ToArgb();
oVerts[2].Y = (float)25.0f;
oVerts[2].X = (float)25.0f;
oVerts[2].Color = Color.Silver.ToArgb();
oVerts[3].Y = (float)25.0f;
oVerts[3].X = (float)0.0f;
oVerts[3].Color = Color.Silver.ToArgb();
oVerts[4].Y = (float)0.0f;
oVerts[4].X = (float)0.0f;
oVerts[4].Color = Color.Silver.ToArgb();
vertexBuffer.SetData(oVerts, 0, LockFlags.None);
}
|
Der Code ist übrigens in C# geschrieben.
Das Problem ist nun, dass Direct3D kein Quadrat, sondern ein Rechteck zeichnen, weil die Höhe des Rechtecks kleiner ist als die Länge.
Den Koordinaten der Vertices zufolge sollte doch aber eigentlich ein Quadrat gezeichnet werden, oder ??
lg enne