Hi Guys,
Was just wondering if someone could tell me where i am going wrong.
I have used this code that i have found around the traps and obviously made my own changes but the problem is when i run it all i get is a purple screen. It is supposed to be drawing a cube, but alas it doesn't.
If someone would be able to help me out with this it would greatly appreciated.
Cheers
[source lang="csharp"]using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using SlimDX;using SlimDX.Direct3D9;using SlimDX.Windows;namespace WindowsFormsApplication1{ public partial class Form1 : Form { Mesh meshTerrain; Device device; Direct3D direct3d = new Direct3D(); CustomVertex test = null; Vertex[] vertices; short[] indices; int WIDTH, HEIGHT, angle; public Form1() { InitializeComponent(); this.Text = "Managed DirectX Tutorial 1"; test = new CustomVertex(); InitGraphics(); } void InitGraphics() { angle = 0; PresentParameters present_params = new PresentParameters(); present_params.Windowed = true; present_params.SwapEffect = SwapEffect.Discard; device = new Device(direct3d, 0, DeviceType.Hardware, this.Handle, CreateFlags.SoftwareVertexProcessing, present_params); vertices = new Vertex[] { new Vertex ( new Vector3 ( - 1, - 1, - 1 ) , Color.Red.ToArgb ( ) ) , new Vertex ( new Vector3 ( 1, - 1, - 1 ) , Color.LightBlue.ToArgb ( ) ) , new Vertex ( new Vector3 ( 1, - 1, 1 ) , Color.LightCyan.ToArgb ( ) ) , new Vertex ( new Vector3 ( - 1, - 1, 1 ) , Color.CadetBlue.ToArgb ( ) ) , new Vertex ( new Vector3 ( - 1, 1, - 1 ) , Color.Red.ToArgb ( ) ) , new Vertex ( new Vector3 ( 1,1, - 1 ) , Color.Orange.ToArgb ( ) ) , new Vertex ( new Vector3 ( 1,1,1 ) , Color.Goldenrod.ToArgb ( ) ) , new Vertex ( new Vector3 ( - 1, 1,1 ) , Color.Yellow.ToArgb ( ) ) }; indices = new short[] { 4,1,0,4,5,1, 5,2,1,5,6,2, 6,3,2,6,7,3, 7,0,3,7,4,0, 7,5,4,7,6,5, 2,3,0,2,0,1 }; CreateMesh(); //device = new Device(direct3d, 0, DeviceType.Hardware, this.Handle, CreateFlags.SoftwareVertexProcessing, present_params); //device = new Device(direct3d, 0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, present_params); } private void CreateMesh() { meshTerrain = new Mesh(device, 12, 8, MeshFlags.Managed, CustomVertex.PositionColored.format); DataStream stream = meshTerrain.VertexBuffer.Lock(0, 0, LockFlags.None); stream.WriteRange(vertices); meshTerrain.VertexBuffer.Unlock(); stream.Close(); stream = meshTerrain.IndexBuffer.Lock(0, 0, LockFlags.None); stream.WriteRange(indices); meshTerrain.IndexBuffer.Unlock(); stream.Close(); meshTerrain.GenerateAdjacency(0.5f); meshTerrain.OptimizeInPlace(MeshOptimizeFlags.VertexCache); meshTerrain = meshTerrain.Clone(device, MeshFlags.Managed, CustomVertex.PositionNormalColored.format); meshTerrain.ComputeNormals(); } protected override void OnPaint(PaintEventArgs e) { device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.DarkSlateBlue, 1.0f, 0); device.BeginScene(); //device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertices); device.VertexFormat = CustomVertex.PositionNormalColored.format; //device.SetTransform(TransformState.World, Matrix.Translation(-HEIGHT / 2, -WIDTH / 2, 0) * Matrix.RotationZ(angle)); int numSubSets = meshTerrain.GetAttributeTable().Length; for (int i = 0; i < numSubSets; i++) { meshTerrain.DrawSubset(i); } device.EndScene(); device.Present(); //CustomVertex.TransformedColored[] vertexes = new CustomVertex.TransformedColored[3]; //vertexes[0].Position = new Vector4(50, 50, 0, 1.0f); //vertexes[0].Color = System.Drawing.Color.FromArgb(0, 255, 0).ToArgb(); //vertexes[1].Position = new Vector4(250, 50, 0, 1.0f); //vertexes[1].Color = System.Drawing.Color.FromArgb(0, 0, 255).ToArgb(); //vertexes[2].Position = new Vector4(50, 250, 0, 1.0f); //vertexes[2].Color = System.Drawing.Color.FromArgb(255, 0, 0).ToArgb(); //device.Clear(ClearFlags.Target, System.Drawing.Color.FromArgb(0, 0, 0).ToArgb(), 1.0f, 0); //device.BeginScene(); //device.VertexFormat = CustomVertex.TransformedColored.format; //device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertexes); //device.EndScene(); //device.Present(); } private void Form1_Load(object sender, EventArgs e) { } //[StructLayout(LayoutKind.Sequential)] public struct Vertex { public Vector3 Position; public int color; public Vertex(Vector3 position, int color) { this.Position = position; this.color = color; } } class CustomVertex { //[StructLayout(LayoutKind.Sequential)] public struct TransformedColored { public Vector4 Position; public int Color; public static readonly VertexFormat format = VertexFormat.Diffuse | VertexFormat.PositionRhw; } //[StructLayout(LayoutKind.Sequential)] public struct PositionColored { public Vector3 Position; public int Color; public static readonly VertexFormat format = VertexFormat.Diffuse | VertexFormat.Position; } //[StructLayout(LayoutKind.Sequential)] public struct PositionNormalColored { public Vector3 Position; public Vector3 Normal; public int Color; public static readonly VertexFormat format = VertexFormat.Diffuse | VertexFormat.Position | VertexFormat.Normal; } } }}[/source]
No replies to this topic






