Работаем с cRender.h.
добавляем прототипы для двух функций:
Код HTML:
void Draw_Box( int x, int y, int w, int h, D3DCOLOR Color, LPDIRECT3DDEVICE9 m_pD3Ddev);
void Draw_Border(int x, int y, int w, int h,int s, D3DCOLOR Color, LPDIRECT3DDEVICE9 m_pD3Ddev);
x,y - положение в пространстве
w,h - ширина и высота соответственно
s - ширина линии обводки
Color - цвет
m_pD3Ddev - указатель на устройство

переходим к сRender.cpp

Код HTML:
void cRender::Draw_Box(int x, int y, int w, int h, D3DCOLOR Color,IDirect3DDevice9* mDevice)
{
D3DRECT rec;
rec.x1 = x;
rec.x2 = x + w;
rec.y1 = y;
rec.y2 = y + h;
mDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);
mDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
mDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
mDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, D3DPT_TRIANGLESTRIP);
mDevice->Clear( 1, &rec, D3DCLEAR_TARGET, Color, 1, 1 );
}
Это самый простой вариант(прозрачность не поддерживается). Более сложный, с поддержкой прозрачности - по запросу пользователей.
Отрисуем:
Код HTML:
if( !Render.pFont)
Render.pFont->OnLostDevice();
else
{
Render.Draw_Box(10,10,180,250,GREY,pDevice);
Render.Draw_Text(40,40, GREEN, "Hello World. (Les#4)",L_Text);

Render.pFont->OnLostDevice();
Render.pFont->OnResetDevice();
}


Теперь опишем функцию Draw_Border(обводка)
Код HTML:
void cRender::Draw_Border(int x, int y, int w, int h,int s, D3DCOLOR Color,IDirect3DDevice9* mDevice)
{
Draw_Box(x, y, s, h,Color,mDevice);
Draw_Box(x,y+h, w, s,Color,mDevice);
Draw_Box(x, y, w, s,Color,mDevice);
Draw_Box(x+w,y, s,h+s,Color,mDevice);
}
Отрисуем:
Код HTML:
if( !Render.pFont)
Render.pFont->OnLostDevice();
else
{
Render.Draw_Box(10,10,180,250,GREY,pDevice);
Render.Draw_Border(10,10,180,250,2,RED,pDevice);
Render.Draw_Text(40,40, GREEN, "Hello World. (Les#4)",L_Text);

Render.pFont->OnLostDevice();
Render.pFont->OnResetDevice();
}