自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(8)
  • 资源 (5)
  • 收藏
  • 关注

原创 lua笔记 --- 一个C++调用lua函数的类的实现

这个类基本上是从LuaPlus那里弄来的,为什么不支持用LuaPlus,因为那东西我实在不知道怎么编译,能编译通过的版本的旧版本的了,而且之前的版本有BUG的存在,使用起来有阴影,不想用了,还是自己写个比较靠谱。因为感觉LuaPlus那个LuaFunction有点不好用,所以进行了一些改造。自己认为目前自己封装的这个还是比较好用的。namespace Lua_Wrapper{stru

2013-05-12 15:45:31 2327 1

原创 lua5.1.4中实现自定义require的loader函数

刚开始以为只是简单的把自己的C函数,替换到package.loaders[2](索引2是lua的文件加载器)里面就OK了,实际上也是这样的,但是这样的代价就是文件搜索啊,一堆一堆的判断啊都要自己做,因为这些lua本身已经实现了,所以肯定直接拿来用之。但问题来了,发现直接简单的package.loaders[2]=myloadfunc是失败的。会抛出这个错误:luaL_error(L, LUA_

2013-05-11 23:04:55 6606

原创 luajit笔记---编译bytecode(字节码文件)

虽说这种东西其实没多少用,不过老板是烧饼所以不会承认的,不过编译之后别人反编译也看不到变量命这种自欺欺人的心理作用还是有点用的。于是发现lua5.1编译出来的字节码luajit是不能用的,后来去官网看到编译方法,输入后却说没有这个命令,卧槽。于是继续google,找到了一个跟我一样的家伙,后面有人给出解决方案了In the LuaJIT source distribution, the

2013-05-11 12:04:16 9729 3

原创 luajit笔记---luajit静态库依赖顺序问题

以前从来没有意识到,依赖静态库那里的填写顺序,会对编译结果有影响。不知道这是不是luajit静态库本身的问题。结论是,依赖顺序必须是lua51.lib luajit.lib反过来编译出来的东西就无法运行,会提示缺少luajit.exe,即使放入luajit.exe会继续提示缺少lua51.dll,继续满足条件,然后直接就崩溃。静态库本身就不会依赖什么DLL,这种错误是很明显的,不知道这

2013-05-06 19:55:12 2847

原创 luajit笔记---编译成静态库以及FFI绑定宿主程序函数

本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。Google来Google,终于看到用FFI绑定宿主程序函数的例子,卧槽,知道真相我的眼泪都流下来!原来FFI本质是绑定导出的符号,所以说只要导出符号就可以用,吐血。#incl

2013-05-05 22:07:04 9185 2

原创 FreeImage加载PNG8失败的原因找到了

之前用FreeImage加载PNG8出错,而加载PNG24缺没错,一直百思不得其解,认为是FreeImage库的问题,后来发现,各大引擎都用FreeImage,而区区PNG8就对付不了,明显说不过去,这说明是我的操作方式有误。于是建立一个简单的工程,测试那种加载不成功的PNG8图片,发现一点问题都木有,那么就是环境问题了。后来给FreeImage设置了一个错误回调,打印出来的是解压错误。回想其

2013-05-05 10:27:43 2002

原创 自己尝试实现了一个lua_Reader

为什么要自己实现呢,因为脚本这东西总要加密,lua似乎没有直接从内存读取脚本这东西,似乎dostring可以,不过因为听说效率较低所以pass,而且dostring也不能读取编译后的文件。其实纯C的函数指针和C++等高级语言的抽象接口差不多,不过灵活度还是要高很多。现在发现面向对象有些东西的确是太死板了,以前觉得模板这东西很强大,现在发现这个不过是来弥补先天的不足,那还不如C的函数指针来得直接

2013-05-03 23:13:52 3553

原创 编程小技巧笔记

变量的区间限制if(a>10)a = 10;if(a<0)a = 0;//优化a = min(a,10);a = max(a,0);

2013-05-01 14:31:34 782

即时战略DEMO中的A星算法与最近点查找

一个烂尾的即时战略游戏,内置了行军的简单阵型排布和高效A星寻路算法,通过二叉堆数据结构优化了A星搜索时间,属于个人早期的作品,现在拿来分享,基于HGE引擎,工程正常情况下应该可以通过编译并运行

2013-10-16

Lua/LuaJit 图片处理

Luajit可以直接加载C编译出来的DLL,绑定函数并调用。这里因为个人贪图freeimageplus的便利,又因为freeimageplus是C++编写,所以自己写了个DLL重新包装了个DLL来导出,其实现在看来完全是多余了。 内附的Lua代码包含了图片缩放,实际上也注册了zip打包函数,可以打成zip包。图片的路径从剪贴板获取,会扫描整个文件夹对所有图片进行处理。

2013-07-23

HGE动画编辑器v1.0

一个简单的HGE动画编辑器,实现了动画预览,脚本保存等一些基本功能

2013-06-16

HGE多线程渲染方案

使用循环队列最小锁实现底层多线程渲染。原始HGE接口未进行任何修改,理论上只需替换DLL即可实现多线程渲染,并且大幅度提高性能。 使用循环队列原来本来无需加锁,但由于我们的项目资源加载又开启了另一条线程,为了最简单实现,使用了加锁,否则可能需要再加入一个循环队列。 如果仅使用单线程加载,可以自己去锁。 目前效率测试,在CPU差的机器上性能提升非常明显,超过5倍以上。

2013-04-12

QT桌面精灵

基于QT的桌面精灵,实现了基本的动画和动作,简单的交互和菜单等

2012-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除