#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
{
///////////////////////////////////////////////////////////////////////////
+ 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){}
};
///////////////////////////////////////////////////////////////////////////
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(); }
};
///////////////////////////////////////////////////////////////////////////
#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
{
{
///////////////////////////////////////////////////////////////////////////
- class shader
+ class shader_device
{
public:
enum exception_codes
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 );
+ }
};
///////////////////////////////////////////////////////////////////////////
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;
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();
RelativePath="..\..\include\roast\graphics\directx\dx10\first.hpp"
>
</File>
+ <File
+ RelativePath="..\..\include\roast\graphics\directx\dx10\shader.hpp"
+ >
+ </File>
</Filter>
</Filter>
</Filter>