OSDN Git Service

directx/dx10/shader.hpp: shader -> shader_device, set_vertex_buffer() Add.
authorMyun2 <myun2@nwhite.info>
Sun, 24 Apr 2011 05:05:52 +0000 (14:05 +0900)
committerMyun2 <myun2@nwhite.info>
Sun, 24 Apr 2011 05:05:52 +0000 (14:05 +0900)
roast_ex/include/roast/graphics/directx/dx10/buffer.hpp
roast_ex/include/roast/graphics/directx/dx10/device.hpp
roast_ex/include/roast/graphics/directx/dx10/shader.hpp
roast_ex/test/dx9_test/dx9_test.cpp
roast_ex/test/dx9_test/roast_test_3rd.vcproj

index 608bf50..a07434c 100644 (file)
@@ -4,6 +4,7 @@
 #define __SFJP_ROAST_EX__graphics__directx__dx10__buffer_HPP__
 
 #include "roast/graphics/directx/dx10/device.hpp"
+#include "roast/graphics/directx/shader_param.hpp"     //      Hmm...
 
 namespace roast
 {
@@ -63,10 +64,11 @@ namespace roast
 
                                ///////////////////////////////////////////////////////////////////////////
 
+                               template <typename VERTEX_TYPE>
                                class input_vertex_buffer : public buffer
                                {
                                public:
-                                       input_vertex_buffer(device &d,unsigned int size, const void* initial_data) : buffer(d,D3D10_BIND_VERTEX_BUFFER,size,initial_data){}
+                                       input_vertex_buffer(device &d, unsigned int size, const VERTEX_TYPE* initial_data) : buffer(d,D3D10_BIND_VERTEX_BUFFER,size,initial_data){}
                                };
 
                                ///////////////////////////////////////////////////////////////////////////
index a73bb89..68ec4f6 100644 (file)
@@ -153,6 +153,8 @@ namespace roast
                                        
                                        idirect3d_device* get_idirect3d_device_ptr(){ return get_internal_ptr(); }
                                        idirect3d_device* get_id3d_device_ptr(){ return get_internal_ptr(); }
+                                       idirect3d_device* get_id3ddevice_ptr(){ return get_internal_ptr(); }
+                                       idirect3d_device* get_id3ddev_ptr(){ return get_internal_ptr(); }
                                };
 
                                ///////////////////////////////////////////////////////////////////////////
index 7158538..532b78c 100644 (file)
@@ -4,6 +4,7 @@
 #define __SFJP_ROAST_EX__graphics__directx__dx10__shader_HPP__
 
 #include "roast/graphics/directx/dx10/device.hpp"
+#include "roast/graphics/directx/dx10/buffer.hpp"
 
 namespace roast
 {
@@ -15,7 +16,7 @@ namespace roast
                        {
                                ///////////////////////////////////////////////////////////////////////////
 
-                               class shader
+                               class shader_device
                                {
                                public:
                                        enum exception_codes
@@ -28,15 +29,19 @@ namespace roast
                                        device& m_dev;
 
                                public:
-                                       shader(device &d) : m_dev(d)
+                                       shader_device(device &d) : m_dev(d)
                                        {
                                        }
 
                                        ///////////////
 
-                                       
-                                       //////////////////////////////////////////////////////////////////////////////
-                                       
+                                       template <typename VERTEX_TYPE>
+                                       void set_vertex_buffer(const input_vertex_buffer<VERTEX_TYPE> &vb)
+                                       {
+                                               UINT stride = sizeof(VERTEX_TYPE);
+                                               UINT offset = 0;
+                                               m_dev.get_d3ddevice_ptr()->IASetVertexBuffers( 0, 1, &pBuffer, &stride, &offset );
+                                       }
                                };
 
                                ///////////////////////////////////////////////////////////////////////////
index b715911..0f961c0 100644 (file)
@@ -68,8 +68,8 @@ void main( void )
                d2.end_scene();
                d2.present();*/
 
-               shader_param_<shader_param_type::float2> ss;
-               printf("size=%d\n", sizeof(shader_param_<shader_param_type::float1, shader_param_type::float4>) );
+               shader_param_<shader_param_type::float3, shader_param_type::float4, shader_param_type::int_> ss;
+               printf("size=%d\n", sizeof(shader_param_<shader_param_type::float3, shader_param_type::float4, shader_param_type::int_>) );
 
 struct MyVertex {
         D3DXVECTOR3 Pos;
@@ -81,7 +81,7 @@ struct MyVertex {
            D3DXVECTOR3( -0.5f, -0.5f, 0.5f ), D3DXVECTOR3( 1.0f, 1.0f, 1.0f )
    };
 
-               graphics::input_vertex_buffer buf(d, 1024, vtx);
+               graphics::input_vertex_buffer<MyVertex> buf(d, 1024, vtx);
 
                ::roast::windows::peek_message_loop lp;
                lp.start();
index 94c1da6..37a4bfb 100644 (file)
                                                                RelativePath="..\..\include\roast\graphics\directx\dx10\first.hpp"
                                                                >
                                                        </File>
+                                                       <File
+                                                               RelativePath="..\..\include\roast\graphics\directx\dx10\shader.hpp"
+                                                               >
+                                                       </File>
                                                </Filter>
                                        </Filter>
                                </Filter>