首先我们声明渲染对象的句柄和配合使用的精灵。
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);
结束标识和前面的教程一样。