Forum
Contact





DirectX using C#
DirectX using C++
DirectX using Visual Basic



Latest Forum posts

 Tutorial 3 for Windows Phone 7
  Posted by: Anonymous
  When: 20/05/2013 at 02:30:13

 No download link for 2d series: shooter
  Posted by: zaboleq
  When: 07/05/2013 at 15:46:28

 Collision Class?
  Posted by: Anonymous
  When: 05/05/2013 at 19:03:59

 stack overflow
  Posted by: cityguy
  When: 07/04/2013 at 01:58:38

 Meshes looks strange.
  Posted by: ab_saratov
  When: 01/04/2013 at 04:31:08

 Lamppost Not loaded
  Posted by: Anonymous
  When: 22/03/2013 at 06:43:52

 Collision Class?
  Posted by: Da_Boom
  When: 21/03/2013 at 01:23:09

 Math boggles me
  Posted by: cityguy
  When: 17/03/2013 at 03:44:48

 Collision Class?
  Posted by: Da_Boom
  When: 16/03/2013 at 03:44:42

 Tree update
  Posted by: Anonymous
  When: 15/03/2013 at 21:11:22

 XNA 4.0
  Posted by: Anonymous
  When: 15/03/2013 at 19:43:57

 Error when I try to run.
  Posted by: Anonymous
  When: 15/03/2013 at 19:21:06

 Error With the Effect File
  Posted by: Anonymous
  When: 15/03/2013 at 18:21:01

 Can only get shadowmap
  Posted by: Anonymous
  When: 15/03/2013 at 15:48:52

 Vertex and Pixel Shader Versions?
  Posted by: Anonymous
  When: 15/03/2013 at 15:07:16

 Unsupported properties
  Posted by: Anonymous
  When: 15/03/2013 at 14:23:00

 Problem Loading Skybox
  Posted by: Rana
  When: 15/03/2013 at 10:34:45

 Black Screen Of Death - Help!
  Posted by: Anonymous
  When: 15/03/2013 at 03:43:43

 2.0 anyone?
  Posted by: Anonymous
  When: 15/03/2013 at 02:19:48

 Defitinition of tha rotation axis
  Posted by: Anonymous
  When: 15/03/2013 at 00:55:14




Topic: problem with drawprimitives



  
Goto parent category
  
Create a new user account


   problem with drawprimitives
 Poster : phoenix_07p
 Posts: 1
 Country : India
 City: Pune

  
Posted by phoenix_07p on 07/08/2008 at 15:08:43
namespace DXApp1
{
    public class Program:System.Windows.Forms.Form
    {
        Device device;
        //CustomVertex.TransformedColored[] vertices = new CustomVertex.TransformedColored[3];
        CustomVertex.PositionColored[] vertices;
        VertexBuffer vb;
        IndexBuffer ib;
        static int row=5, column=2;

        Program()
        {
            this.ClientSize = new Size(500, 500);
            this.Text = "DX Application";
            
        }

        public void SetCamera()
        {
            device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1f, 50f);
            device.Transform.View = Matrix.LookAtLH(new Vector3(0, 0, -30), new Vector3(0, 0, 0), new Vector3(0, 1, 0));
            device.RenderState.Lighting = false;
            device.RenderState.FillMode = FillMode.WireFrame;
            device.RenderState.CullMode = Cull.None;

        }

        public void InitializeVertexBuffer()
        {

            vb = new VertexBuffer(typeof(CustomVertex.PositionColored), 10, device, Usage.Dynamic | Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default);

            vertices = new CustomVertex.PositionColored[10];
            vertices[0].Position = new Vector3(0f, 0f, 0f);
            vertices[0].Color = Color.White.ToArgb();
            vertices[1].Position = new Vector3(5f, 0f, 0f);
            vertices[1].Color = Color.White.ToArgb();
            vertices[2].Position = new Vector3(10f, 0f, 0f);
            vertices[2].Color = Color.White.ToArgb();
            vertices[3].Position = new Vector3(15f, 0f, 0f);
            vertices[3].Color = Color.White.ToArgb();
            vertices[4].Position = new Vector3(20f, 0f, 0f);
            vertices[4].Color = Color.White.ToArgb();

            vertices[5].Position = new Vector3(5f, 0f, 0f);
            vertices[5].Color = Color.White.ToArgb();
            vertices[6].Position = new Vector3(5f, 5f, 0f);
            vertices[6].Color = Color.White.ToArgb();
            vertices[7].Position = new Vector3(5f, 10f, 0f);
            vertices[7].Color = Color.White.ToArgb();
            vertices[8].Position = new Vector3(5f, 15f, 0f);
            vertices[8].Color = Color.White.ToArgb();
            vertices[9].Position = new Vector3(5f, 20f, 0f);
            vertices[9].Color = Color.White.ToArgb();


            vb.SetData(vertices, 0, LockFlags.None);

        }


        public bool InitializeGraphics()
        {
            try
            {
                PresentParameters presentParams = new PresentParameters();
                presentParams.SwapEffect = SwapEffect.Discard;
                presentParams.Windowed = true;
                device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
                return true;
            }
            catch (DirectXException)
            {
                return false;
            }
        }


        protected override void  OnPaint(PaintEventArgs e)
        {
            this.Render();
        }

        public void Render()
        {
            device.Clear(ClearFlags.Target, Color.DarkSlateBlue, 1.0f, 0);

            device.BeginScene();
            device.VertexFormat = CustomVertex.PositionColored.Format;
            device.SetStreamSource(0, vb, 0);
            device.DrawPrimitives(PrimitiveType.TriangleStrip, 0,8);


            device.EndScene();

            device.Present();
            
        }

        static void Main()
        {
            using (Program instance = new Program())
            {
                if (!instance.InitializeGraphics())
                {
                    MessageBox.Show("DX Error");
                }

                instance.Show();
                instance.SetCamera();
                instance.InitializeVertexBuffer();
                while (instance.Created)
                {
                    instance.Render();
                    Application.DoEvents();
                }

            }
        }
    }
}

This is my code......
It wasn't working. There are no errors.Screen clears just fine. but nothin else shows up.I don't exactly want to draw the triangle. But when i passed the same vertices to ur code atleast something showed up.I modified ur code a little bit. Plz tell me why my code won't work. all that the modified code was this....

private void VertexDeclaration()
        {
            vb = new VertexBuffer(typeof(CustomVertex.PositionColored), 10, device, Usage.Dynamic | Usage.WriteOnly, CustomVertex.PositionColored.Format, Pool.Default);

            vertices = new CustomVertex.PositionColored[10];
            vertices[0].Position = new Vector3(0f, 0f, 0f);
            vertices[0].Color = Color.White.ToArgb();
            vertices[1].Position = new Vector3(5f, 0f, 0f);
            vertices[1].Color = Color.White.ToArgb();
            vertices[2].Position = new Vector3(10f, 0f, 0f);
            vertices[2].Color = Color.White.ToArgb();
            vertices[3].Position = new Vector3(15f, 0f, 0f);
            vertices[3].Color = Color.White.ToArgb();
            vertices[4].Position = new Vector3(20f, 0f, 0f);
            vertices[4].Color = Color.White.ToArgb();

            vertices[5].Position = new Vector3(5f, 0f, 0f);
            vertices[5].Color = Color.White.ToArgb();
            vertices[6].Position = new Vector3(5f, 5f, 0f);
            vertices[6].Color = Color.White.ToArgb();
            vertices[7].Position = new Vector3(5f, 10f, 0f);
            vertices[7].Color = Color.White.ToArgb();
            vertices[8].Position = new Vector3(5f, 15f, 0f);
            vertices[8].Color = Color.White.ToArgb();
            vertices[9].Position = new Vector3(5f, 20f, 0f);
            vertices[9].Color = Color.White.ToArgb();
            
      
            vb.SetData(vertices, 0, LockFlags.None);
        }

        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            device.Clear(ClearFlags.Target, Color.DarkSlateBlue, 1.0f, 0);

            device.BeginScene();
            device.VertexFormat = CustomVertex.PositionColored.Format;

            device.SetStreamSource(0, vb, 0);
            device.DrawPrimitives(PrimitiveType.TriangleList, 0, 8);
            
            device.EndScene();

            device.Present();

            this.Invalidate();
            angle += 0.05f;
        }

I removed the indices declaration completely.

I don't really care whether triangles show up correctly just that something shows up. I am tired of trying.
My question is just that why nothin shows up in my code when there is some output from ur code.
Thanx.
 Poster : riemer
 Posts: 1392
 Country : Belgium
 City: Antwerp

  
Posted by riemer on 08/08/2008 at 09:24:20
Did you turn off culling?

device.cullmode = cullmode.none;
<text>
Make sure lighting is disabled, which will render all colors in full.
 Poster : Anonymous
 Posts:
 Country :
 City:

  
Posted by Anonymous on 20/01/2012 at 22:03:00
I guess finding uesufl, reliable information on the internet isn't hopeless after all.

  
Post a new reply
 





Google
 
Web www.riemers.net
If you appreciate the amount of time I spend creating and updating
these pages, feel free to donate -- any amount is welcome !
- Website design & DirectX code : Riemer Grootjans -
©2006 Riemer Grootjans


News
Home
Forum
XNA 2.0 Recipes Book (8)
XNA 3.0 Recipes Book (8)
Downloads
Extra Reading (3)
Matrices: geometrical
Matrix Mathematics
Homogenous matrices
Community Projects (1)
Tutorials (160)
XNA 4.0 using C# (89)
DirectX using C# (54)
Series 1:Terrain (14)
Opening a window
Linking to the Device
Drawing a triangle
Camera
Rotation - Translation
Indices
Terrain creation
Terrain from file
DirectInput
Importing bmp files
Colored vertices
DirectX Light basics
Mesh creation
Mesh lighting
Series 2: Flightsim (19)
Series 3: HLSL (19)
Short Tuts (2)
Resizing problem
Checking Device caps
DirectX using C++ (15)
DirectX using VB (2)