示例#1
0
void d3d_vis::draw_graph( vb_id verts, size_t n_verts, ib_id inds, size_t n_inds )
{
    in_world();

    pdevice_->SetStreamSource(0, vbs_[verts], 0, sizeof (b_vertex));
    pdevice_->SetIndices(ibs_[inds]);
    pdevice_->DrawIndexedPrimitive(D3DPT_LINELIST, 0, 0, n_verts, 0, n_inds);

    in_screen();
}
示例#2
0
文件: point.c 项目: coins11/gba
static inline int
move_point (Point *p, int x, int y)
{
	if ( in_screen( p->x + x, p->y + y ) ) {
		p->x += x;
		p->y += y;

		return 1;
	} else {
		return 0;
	}
}
示例#3
0
d3d_vis::d3d_vis(HWND hwnd, LPDIRECT3DDEVICE9 pdevice)
:   hwnd_       (hwnd),
    pdevice_    (pdevice),

    color_ (D3DCOLOR_XRGB(255,255,0)),

    ofs_ (0.0f, 0.0f),
    scale_ (1.0f)
{

    RECT myrect;
    GetClientRect (hwnd_, &myrect);
    HRESULT hr = D3DXCreateFont( pdevice_, 16, 0, FW_NORMAL, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TEXT("Arial"), &pfont_ );
    assert (SUCCEEDED(hr));

    D3DXMATRIX proj;
    D3DXMatrixOrthoOffCenterRH (&proj, 0, (float)myrect.right, (float)myrect.bottom, 0, -1.0f, 1.0f);
    pdevice_->SetTransform (D3DTS_PROJECTION, &proj);

    D3DVERTEXELEMENT9 dwDeclSingle[] =
    {
        {0,  0,  D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
        {1,  0,  D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,    0} ,
        D3DDECL_END()
    };

    D3DVERTEXELEMENT9 dwDeclMulti[] =
    {
        {0,  0,  D3DDECLTYPE_FLOAT3,   D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},
        {0,  12,  D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,   0} ,
        D3DDECL_END()
    };

    pdevice_->CreateVertexDeclaration(dwDeclSingle, &pvdeclsingle_);
    pdevice_->CreateVertexDeclaration(dwDeclMulti, &pvdeclmulti_);

    pdevice_->CreateVertexBuffer(sizeof (DWORD), 0, 0, D3DPOOL_MANAGED, &psinglecolor_, NULL);
   
    pdevice_->CreateVertexBuffer(sizeof (b_vertex) * 5, 0, 0, D3DPOOL_MANAGED, &prect_, NULL);

    pdevice_->SetStreamSource(1, psinglecolor_, 0, 0);

    set_color (0xFFFFFFFF);
    in_screen();
}