J'ai un probleme sur ce vertex buffer, kle code est en c# mais je pense que meme un devellopeur c++ pourrait me décaller. J'ai remarqé que c'est lors de l'appel de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
device.DrawPrimitives(PrimitiveType.TriangleList,0,1);
que ca pose un probleme. Voyez vous quelque chose d'anormal ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
		public void InitializeGraphics()
		{
			// Set our presentation parameters
			PresentParameters presentParams = new PresentParameters();
 
			presentParams.Windowed = true;
			presentParams.SwapEffect = SwapEffect.Discard;
 
			// Create our device
			device = new Device(0, DeviceType.Hardware, this,CreateFlags.SoftwareVertexProcessing, presentParams);
			// Vertex use
			vb = new VertexBuffer(typeof(CustomVertex.PositionColored), 3, device, Usage.Dynamic |
				Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default);
			vb.Created += new EventHandler(this.OnVertexBufferCreate);
			OnVertexBufferCreate(vb, null);
		}
 
		private void OnVertexBufferCreate(object sender, EventArgs e)
		{
			VertexBuffer buffer = (VertexBuffer)sender;
 
			CustomVertex.PositionColored[] verts = new CustomVertex.PositionColored[3];
			verts[0].SetPosition(new Vector3(0.0f, 1.0f, 1.0f));
			verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
			verts[1].SetPosition(new Vector3(-1.0f, -1.0f, 1.0f));
			verts[1].Color = System.Drawing.Color.Black.ToArgb();
			verts[2].SetPosition(new Vector3(1.0f, -1.0f, 1.0f));
			verts[2].Color = System.Drawing.Color.Purple.ToArgb();
 
			buffer.SetData(verts, 0, LockFlags.None);
		}
 
		protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
		{
			device.Clear(ClearFlags.Target, System.Drawing.Color.CornflowerBlue, 1.0f, 0);
			SetupCamera();
 
			device.RenderState.Lighting = true;
			device.Lights[0].Type = LightType.Point;
			device.Lights[0].Position = new Vector3();
			device.Lights[0].Diffuse = System.Drawing.Color.White;
			device.Lights[0].Attenuation0 = 0.2f;
			device.Lights[0].Range = 10000.0f;
			device.Lights[0].Commit();
			device.Lights[0].Enabled = true;
 
			device.RenderState.CullMode = Cull.None;
			device.BeginScene();
 
			device.SetStreamSource(0, vb, 0);
			device.DrawPrimitives(PrimitiveType.TriangleList,0,1);
 
			device.EndScene();
			device.Present();
			this.Invalidate();
		}