OSDN Git Service

directx/dx10/shader.hpp: set_primitive_topology(), draw(), draw_primitive() Add.
authorMyun2 <myun2@nwhite.info>
Sun, 24 Apr 2011 06:38:23 +0000 (15:38 +0900)
committerMyun2 <myun2@nwhite.info>
Sun, 24 Apr 2011 06:38:23 +0000 (15:38 +0900)
roast_ex/include/roast/graphics/directx/dx10/buffer.hpp
roast_ex/include/roast/graphics/directx/dx10/shader.hpp
roast_ex/test/dx9_test/dx9_test.cpp

index 43d2d11..93a1361 100644 (file)
@@ -69,7 +69,7 @@ namespace roast
                                class input_vertex_buffer : public buffer
                                {
                                public:
-                                       input_vertex_buffer(device &d, unsigned int size, const VERTEX_TYPE* initial_data) : buffer(d,D3D10_BIND_VERTEX_BUFFER,size,initial_data){}
+                                       input_vertex_buffer(device &d, const VERTEX_TYPE* initial_data, unsigned int size) : buffer(d,D3D10_BIND_VERTEX_BUFFER,size,initial_data){}
                                };
 
                                ///////////////////////////////////////////////////////////////////////////
index c1e3c9a..dfbaff7 100644 (file)
@@ -43,7 +43,24 @@ namespace roast
                                                UINT offset = 0;
                                                m_dev.get_d3ddevice_ptr()->IASetVertexBuffers( 0, 1, (ID3D10Buffer *const *)&buffer_ptr, &stride, &offset );
                                        }
+
+                                       void set_primitive_topology(::D3D10_PRIMITIVE_TOPOLOGY topology)
+                                       {
+                                               m_dev.get_d3ddevice_ptr()->IASetPrimitiveTopology(topology);
+                                       }
+
+                                       void draw(UINT vertex_count, UINT vertex_offset=0)
+                                       {
+                                               m_dev.get_d3ddevice_ptr()->Draw(vertex_count, vertex_offset);
+                                       }
+
+                                       void draw_primitive(::D3D10_PRIMITIVE_TOPOLOGY topology, UINT vertex_count, UINT vertex_offset=0)
+                                       {
+                                               set_primitive_topology(topology);
+                                               draw(vertex_count, vertex_offset);
+                                       }
                                };
+                               typedef shader_device render_device, renderer;
 
                                ///////////////////////////////////////////////////////////////////////////
                        }
index 66ce010..63ea846 100644 (file)
@@ -81,9 +81,9 @@ struct MyVertex {
            D3DXVECTOR3( -0.5f, -0.5f, 0.5f ), D3DXVECTOR3( 1.0f, 1.0f, 1.0f )
    };
 
-               graphics::input_vertex_buffer<MyVertex> ivb(d, 1024, vtx);
-               graphics::shader_device shader(d);
-               shader.set_vertex_buffer(ivb);
+               graphics::input_vertex_buffer<MyVertex> ivb(d, vtx, sizeof(vtx));
+               graphics::render_device ren(d);
+               ren.set_vertex_buffer(ivb);
 
                ::roast::windows::peek_message_loop lp;
                lp.start();