#include "../StdAfx.h"
#include <boost/smart_ptr.hpp>
#include <boost/signal.hpp>
#include "Scene0.h"
namespace stg{
namespace game{
Scene0::Scene0() :
siki::d3d::Scene(1),
m_pvertex(0){
static siki::d3d::TransformedVertex v[4] = {
{300.0f, 200.0f, 0.0f, 1.0f, 0xffffffff, 0.0f, 0.0f},
{300.0f, 300.0f, 0.0f, 1.0f, 0xffffffff, 0.0f, 1.0f},
{200.0f, 200.0f, 0.0f, 1.0f, 0xffffffff, 1.0f, 0.0f},
{200.0f, 300.0f, 0.0f, 1.0f, 0xffffffff, 1.0f, 1.0f}
};
m_v = v;
}
Scene0::~Scene0(){
}
bool Scene0::SetDevice(sharedptr<IDirect3D9> d3dobj, sharedptr<IDirect3DDevice9> device){
siki::d3d::TransformedVertex v[4] = {
{300.0f, 200.0f, 0.0f, 1.0f, 0xffffffff, 0.0f, 0.0f},
{300.0f, 300.0f, 0.0f, 1.0f, 0xffffffff, 0.0f, 1.0f},
{200.0f, 200.0f, 0.0f, 1.0f, 0xffffffff, 1.0f, 0.0f},
{200.0f, 300.0f, 0.0f, 1.0f, 0xffffffff, 1.0f, 1.0f}
};
//IDirect3DVertexBuffer9* pVertex;
HRESULT hr = device->CreateVertexBuffer(
sizeof(siki::d3d::TransformedVertex)*4,
D3DUSAGE_WRITEONLY,
D3DFVF_TRANSFORMED,
D3DPOOL_MANAGED,
&m_pvertex,
NULL
);
if(!SUCCEEDED(hr)){
return false;
}
//IDirect3DVertexBuffer9* pVertex;
hr = device->CreateVertexBuffer(
sizeof(siki::d3d::TransformedVertex)*4,
D3DUSAGE_WRITEONLY,
D3DFVF_TRANSFORMED,
D3DPOOL_MANAGED,
&m_pvertex,
NULL
);
void *pData;
hr = m_pvertex->Lock(0, sizeof(siki::d3d::TransformedVertex)*4, (void**)&pData, 0);
if(hr == D3D_OK){
memcpy(pData
, v
, sizeof(siki
::d3d::TransformedVertex)*4); m_pvertex->Unlock();
}
return true;
}
bool Scene0::Update(){
return true;
}
bool Scene0::Draw(sharedptr<IDirect3D9> d3dobj, sharedptr<IDirect3DDevice9> device){
device->SetStreamSource(0, m_pvertex, 0, sizeof(siki::d3d::TransformedVertex));
device->SetFVF(D3DFVF_TRANSFORMED);
device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
return true;
}
} // namespace game
} // namespace stg