Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


Code not drawing correctly


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
No replies to this topic

#1 blacken   Members   -  Reputation: 126

Like
0Likes
Like

Posted 06 December 2012 - 02:06 AM

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]

Sponsor:



Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS