#pragma once
//#include "hge.h"
#include "StdAfx.h"
#include "Utility.h"
#include "include/hge.h"
#include "include/hgesprite.h"
#include "include/hgeresource.h"
#pragma comment (lib ,"lib/hge.lib")
#pragma comment (lib ,"lib/hgehelp.lib")
class CHgeGlobal
{
public:
public:
CHgeGlobal(void);
~CHgeGlobal(void);
public:
ST_INSTANCE(CHgeGlobal);
bool Init(HWND hWnd);
void Fini();
void Render();
HGE* GetHge();
//private:
// ST_STRUCTOR_NOCON(CHgeGlobal);
HWND m_hWnd;
};
//
#include "StdAfx.h"
#include "HgeGlobal.h"
//#include "hge.h"
//#include "hgesprite.h"
HGE* g_pHge;
bool FrameFunc()
{
//CGameTable::Instance().Update();
return false;
}
bool RenderFunc()
{
g_pHge->Gfx_BeginScene();
g_pHge->Gfx_Clear(ARGB(255,25,119,130));
//CGameTable::Instance().Render();
g_pHge->Gfx_EndScene();
return false;
}
ST_DEFINE(CHgeGlobal);
CHgeGlobal::CHgeGlobal(void)
: m_hWnd(NULL)
{
}
bool CHgeGlobal::Init( HWND hWnd )
{
m_hWnd = hWnd;
g_pHge = hgeCreate(HGE_VERSION);
ASSERT( g_pHge != NULL );
g_pHge->System_SetState( HGE_FRAMEFUNC, FrameFunc );
g_pHge->System_SetState( HGE_RENDERFUNC, RenderFunc );
g_pHge->System_SetState( HGE_WINDOWED, true );
g_pHge->System_SetState( HGE_USESOUND, false );
g_pHge->System_SetState( HGE_ZBUFFER, true );
g_pHge->System_SetState( HGE_SCREENWIDTH,1024);
g_pHge->System_SetState( HGE_SCREENHEIGHT,768);
g_pHge->System_SetState( HGE_HWNDPARENT, m_hWnd );
g_pHge->System_SetState( HGE_HIDEMOUSE, false );
//g_pHge->System_SetState( HGE_POSTEVENT, true );
g_pHge->System_Initiate();
return true;
}
void CHgeGlobal::Fini()
{
g_pHge->System_Shutdown();
g_pHge->Release();
}
void CHgeGlobal::Render()
{
if( g_pHge->System_GetState(HGE_HWND) )
g_pHge->System_Start();
}
HGE* CHgeGlobal::GetHge()
{
return g_pHge;
}
//
然后建立消息int CGameClientView::OnCreate(LPCREATESTRUCT lpCreateStruct) 函数下
CHgeGlobal::Instance().Init(m_hWnd);
void CGameClientView::DrawGameView(CDC * pDC, int nWidth, int nHeight)
{
HWND gamewnd = CHgeGlobal::Instance().GetHge()->System_GetState(HGE_HWND);