正在coding的一个开源3d小引擎——zge
来源:互联网 发布:单页营销网站源码 编辑:程序博客网 时间:2024/06/06 10:49
ZGE 起初是用OPENGL改写的HGE引擎,目前的版本号是0.6A
目前的定义是轻量级渲染引擎。 附件是ZGE引擎编译完成的部分。
引擎的接口如下 (暂定2009-1-11)
//引擎接口
如何使用的范例
目前只完成了core库,现在打算开始写help库。
目前的定义是轻量级渲染引擎。 附件是ZGE引擎编译完成的部分。
引擎的接口如下 (暂定2009-1-11)
//引擎接口
- class Root
- {
- public:
- //输入部分
- virtual bool Input_KeyDown(unsigned char key) =0 ;
- virtual bool Input_KeyUp(unsigned char key) = 0;
- virtual bool Input_ButtonDown(int button) = 0;
- virtual bool Input_ButtonUp(int button)= 0;
- virtual void Input_GetMouseMovement(int &dx, int &dy) = 0;
- virtual int Input_GetMouseWheelMovement() = 0;
- //资源部分
- virtual bool Resource_AttachPack(const char* filename, const char* password) = 0;
- virtual void Resource_RemovePack(const char* filename) = 0;
- virtual void Resource_RemoveAllPacks() = 0;
- virtual void* Resource_Load(const char* filename, unsigned int *size=0) = 0;
- virtual void Resource_Free(void *res) = 0;
- virtual char* Resource_MakePath(const char* filename) = 0;
- virtual char* Resource_EnumFiles(const char* wildcard) = 0;
- virtual char* Resource_EnumFolders(const char* wildcard) = 0;
- //系统部分
- virtual bool System_Initiate(LOOPFUNC update,LOOPFUNC render) = 0;
- virtual void System_Shutdown() = 0;
- virtual bool System_Start() = 0;
- virtual char* System_GetErrorMessage() = 0;
- virtual void System_Log(const char* format, ...) = 0;
- virtual void System_Configure(const zgestring& configfilename) = 0;
- //脚本部分
- virtual bool Script_Install(const zgestring& scriptfilename,const zgestring& scriptname) = 0;
- virtual void Script_UnInstall(const zgestring& scriptname) = 0;
- virtual int Script_GetIntVariable(const zgestring& scriptname,const zgestring& tokenname) = 0;
- virtual float Script_GetFloatVariable(const zgestring& scriptname,const zgestring& tokenname) = 0;
- virtual int* Script_GetIntArray(const zgestring& scriptname,const zgestring& tokenname,unsigned int* arraylength) = 0;
- virtual float* Script_GetFloatArray(const zgestring& scriptname,const zgestring& tokenname,unsigned int* arraylength) = 0;
- virtual char* Script_GetString(const zgestring& scriptname,const zgestring& tokenname,unsigned int* strlength) = 0;
- //随机数
- virtual void Random_Seed(int seed=0) = 0;
- virtual int Random_Int(int min, int max) = 0;
- virtual float Random_Float(float min, float max) = 0;
- //计时器
- virtual double Timer_GetTimeRightNow() = 0;
- virtual double Timer_GetLastFrameDelta() = 0; //上一帧花的总时间(两次更新开始的时间间隔)
- virtual double Timer_GetLastUpdataDelta() = 0; //上次更新用的时间
- virtual double Timer_GerLastRenderDelta() = 0; //上次渲染用的时间
- virtual int Timer_GetFPS() = 0;
- //音乐部分
- //空缺 将由WaNGs完成
- //2d图形部分
- virtual void Gfx_BeginScene2D() = 0;
- virtual void Gfx_BeginScene3D() = 0;
- virtual void Gfx_EndScene() = 0;
- virtual void Gfx_Clear() = 0;
- virtual void Gfx_RenderLine(vertex* line) = 0;
- virtual void Gfx_RenderTriple(vertex* triplelist,unsigned int triplecount) = 0;
- virtual void Gfx_RenderQuad(vertex* quadlist,unsigned int quadcount) = 0;
- //渲染状态管理
- virtual void GfxStat_SetTexture(const zgestring& texname) = 0;
- virtual void GfxStat_SetClipping(vertex* quad) = 0;
- virtual void GfxStat_SetTransform() = 0;
- //virtual void GfxStat_SetShader(void* shader) = 0;
- virtual void GfxStat_EnableState(ZgeGfxState) = 0;
- virtual void GfxStat_DisableState(ZgeGfxState) = 0;
- virtual void GfxStat_SetDefault() = 0;
- //...
- //文理部分
- virtual void Texture_Load(const zgestring& filename,const zgestring& texname) = 0;
- virtual void Texture_Free(const zgestring& texname) = 0;
- virtual int Texture_GetWidth(const zgestring& texname) = 0;
- virtual int Texture_GetHeight(const zgestring& texname) = 0;
- //释放接口
- virtual void Release() = 0;
- };
如何使用的范例
- #include "root.h"
- #pragma comment(lib,"debug/zge2d.lib")
- class Game
- {
- Root* root;
- public:
- Game()
- {
- root = getRoot(__ZGE2D_VERSION_);
- //。。。
- }
- int Update(){//....做一些更新
- };
- void Render(){//...做一些渲染工作
- root->Gfx_Clear();
- root->Gfx_BeginScene2D();
- //...do someting..for rendering
- root->Gfx_EndScene();
- };
- } game_process;
- int Update()
- {
- return game_process.Update();
- }
- int Render()
- {
- game_process.Render();
- return 1;
- }
- int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT)
- {
- Root* root = 0;
- if(root = getRoot(__ZGE2D_VERSION_))
- {
- if(root->System_Initiate(Update,Render))
- {
- root->System_Start();
- }
- }
- return 0;
- }
目前只完成了core库,现在打算开始写help库。
ZGE 0.6开发的任务分配与完成情况
ZGE 0.6开发的任务分配与完成情况
corivSky 写扩展库class ZgeMesh
基本目标将MD2文件转为引擎可消化的格式。
完成周期 1 周
Zoo.ed 改写核心引擎的脚本部分Root::Script_*() = 0;函数
使用LUA扩展脚本引擎
完成周期 1 周
该引擎下载地址:
http://zooserver.oicp.net/zoobbs/viewthread.php?tid=30&extra=page%3D1
源代码不放出来了。
因为bug多多啊~(*^__^*) 嘻嘻……放出来害人啊……
corivSky 写扩展库class ZgeMesh
基本目标将MD2文件转为引擎可消化的格式。
完成周期 1 周
Zoo.ed 改写核心引擎的脚本部分Root::Script_*() = 0;函数
使用LUA扩展脚本引擎
完成周期 1 周
该引擎下载地址:
http://zooserver.oicp.net/zoobbs/viewthread.php?tid=30&extra=page%3D1
源代码不放出来了。
因为bug多多啊~(*^__^*) 嘻嘻……放出来害人啊……
- 正在coding的一个开源3d小引擎——zge
- zge工作计划——变更了
- 我正在开发的j2me 2.5D游戏引擎
- 一个超快的3D图形引擎的实现
- 一个实用的3-D游戏引擎实现方法
- Rajawali是一个用于Android应用的3D引擎
- 3D引擎:Horde3D:小感3
- 3D引擎:Horde3D:小感
- 3D引擎:Horde3D:小感2
- 3D打印机切片引擎Cura分析<二>记一个小软件
- 常用的开源3D游戏引擎(转)
- 基于Java的开源3D游戏引擎jMonkeyEngine
- 基于Java的开源3D游戏引擎jMonkeyEngine
- 使用Vulkan封装一个2D小引擎
- Vortex2D.NET一个开源的2D图形引擎-介绍
- 3D引擎--可移植到Android的开源的引擎及调查报告
- 3D引擎--可移植到Android的开源的引擎
- 3D引擎--可移植到Android的开源的引擎
- RPC漏洞的通用分析方法(图)
- FastReport打印空行
- 自用的文件捆绑器
- 战斗结束
- 架构师的工作分析
- 正在coding的一个开源3d小引擎——zge
- acm pku 2479解题报告
- 叶帆工控自动化一览
- 什么是ERP和ERP的作用
- 按指定规则没找到任何链接! 获取列表网址失败,无法完成采集!
- indy 实现http proxy
- oracle unique index
- ATOMN270+945GSE 的EC
- What I'm afraid of?