首先我们声明渲染对象的句柄和配合使用的精灵。
hgeSprite* tar;
HTARGET target;
在一些事件期间,如视频模式选择,渲染对象的纹理句柄可能改变。所以我们在获得新的渲染目标的纹理时写GfxRestoreFunc函数。
bool GfxRestoreFunc()
{
if(tar && target)
tar->SetTexture(hge->Target_GetTexture(target));
return false;
}
在RenderFunc中我们首先渲染所有的素材到纹理,在Gfx_BeginScene中详细指定渲染对象。
hge->Gfx_BeginScene(target);
hge->Gfx_Clear(0);
par->Render();
spr->Render(x, y);
hge->Gfx_EndScene();
接着渲染一些纹理的示例到屏幕。
hge->Gfx_BeginScene();
hge->Gfx_Clear(0);
for(i=0;i<6;i++)
{
tar->SetColor(0xFFFFFF | (((5-i)*40+55)<<24));
tar->RenderEx(i*100.0f, i*50.0f, i*M_PI/8, 1.0f-i*0.1f);
}
fnt->printf(5, 5 ,HGETEXT_LEFT, "dt:%.3f/nFPS:%d",
hge->Timer_GetDelta(), hge->Timer_GetFPS());
hge->Gfx_EndScene();
在WinMain中配置自己的GfxRestoreFunc函数。
hge->System_SetState(HGE_GFXRESTOREFUNC, GfxRestoreFunc);
在HGE初始化后,我们创建渲染对象和一个精灵,用创建的纹理渲染时容易点。
target=hge->Target_Create(512,512,false);
tar=new hgeSprite(
hge->Target_GetTexture(target),0,0,512,512);
tar->SetBlendMode(
BLEND_COLORMUL | BLEND_ALPHAADD | BLEND_NOZWRITE);
程序关闭时我们删除精灵以及对象。
delete tar;
hge->Target_Free(target);
结束标识和前面的教程一样。