SurfaceView实现UI系统

最初的想法是通过SurfaceView来实现UI,后来实验了一下,在目标板子上帧率太低,动画效果出不来。后来转向Angle。再后来Angle也遇到一些问题,又转回头研究SurfaceView,发现之前的绘图策略存在问题,用SurfaceView其实还是可以达到50左右的帧率。于是决定先基于SurfaceView构建一套UI系统,以后再研究Angle。 使用SurfaceView和Angle,两者...
阅读(2556) 评论(6)

利用Android游戏引擎Angle开发界面——显示汉字

Angle不支持汉字的显示,内带的AngleFont,对E文的支持是没问题。AngleFont通过把字符变为Bitmap的方式来加载字库,准备纹理。对于汉字字库,这个过程会耗时很长,全部加载进来,占用内存也很多;如果部分加载、根据使用频度更新字库缓存,算法又太麻烦。 我使用的是笨方法,先使用Android的Canvas,把汉字绘制到内存图片,然后根据图片生成一个AngleSprite(含配套的A...
阅读(3825) 评论(4)

利用Android游戏引擎Angle开发界面

最近在研究android游戏引擎Angle,准备纪录下学习心得。我的目的是用它实现UI,给我开发的安卓应用添加一些迷人的效果。初步研究了一下,只要解决下列问题就可以了: 1•汉字显示  2•动态更新纹理,比如从网络下载图片,更新显示  3•简单的动画效果  4•与播放器整合  5•实现一些基本控件,如List(文本、图片),Button,Tab,TextView等  6•与非openg...
阅读(3990) 评论(1)

MVC框架设计思想与设计理念

尽管MVC早已不是什么新鲜话题了,但是从近些年一些优秀MVC框架的设计上,我们还是会发现MVC在架构设计上的一些新亮点。本文将对传统MVC架构中的一些弊病进行解读,了解一些优秀MVC框架是如何化解这些问题的,揭示其中所折射出的设计思想与设计理念。 MVC回顾...
阅读(3246) 评论(1)

立此存照

好久没有来了,若干天前来了一次,发现之前的博文,格式都乱了。 这里,这里,看这里,再试一哈。 雪落无痕。 花开有声。 天下寂寞,古今皆同。...
阅读(2921) 评论(2)

VMR9的定制AP

    我要在3D场景中播放电影,或者把电影作为纹理来使用。    有两个办法,一个是写一个video render,用它来接管filter graph的最终输出,将视频数据拷贝到我们的私有纹理上,然后在合适的时候来使用它(主要是在D3D相关的主循环中)。    另一个是利用VMR9。VMR9允许我们自己提供Allocator-Presenter,以便完成一些特殊的需要。我们提供自己的A/P,VM...
阅读(5023) 评论(10)

重载delete操作符

delete和new操作符默认是静态成员函数,不需要添加static关键字,在操作符内不能使用this指针。在用delete操作符删除C++对象时会首先调用析构函数,然后才会释放内存。重载delete操作符没有办法在对象的析构函数被调用前做一些额外的操作。比如说检查一下还有没有第三者关注自己,如果有的话暂不调用析构函数也不释放内存,没有的话才真的调用析构函数然后释放内存。 有一次...
阅读(2015) 评论(1)

使用lua和tolua++遇到的一个古怪问题

    导出了一个编辑控件到lua,有个函数GetText,原型是这样的const  WCHAR *GetText()。     我在lua脚本中调用GetText函数,然后把结果传递给另一个函数SetFunc(const WCHAR *,...)。     假设我停留在一个窗口,点击某个按钮会触发上述操作。那么我第一次点击该按钮时结果和预期的一样,第二次点的时候tolua++解释器就报错了,...
阅读(3536) 评论(0)

DirectX画圆及圆角矩形的简单实现

讨论如何用d3d9来绘制圆及简单的圆角矩形。     画圆时采用Bresenham算法。不失一般性,假设圆的圆心位于坐标原点(如果圆心不在原点,可以通过坐标平移使其与原点重合),半径为R。以原点为圆心的圆C有四条对称轴:x=0,y=0,x=y和x=-y。若已知圆弧上一点P1=C(x, y),利用其对称性便可以得到关于四条对称轴的其它7个点,即: P2=C(x,-y), ...
阅读(8777) 评论(3)

处理WM_NCPAINT消息

处理WM_NCPAINT消息可以实现自绘窗口边框和标题栏。     手头有个窗口需要自绘边框,于是处理了WM_NCPAINT消息,结果程序初运行时可以正常绘制,一旦最小化或者调整窗口位置后就看不到自绘的边框了。找了半天发现犯了个愚蠢的错误。在获取窗口矩形后未做处理便开始了绘图操作,现在加上平移操作,使要绘制的矩形左上角坐标归零后一切正常。     窗口包含WS_BORDER和WS_THIC...
阅读(15174) 评论(3)

SHFileOperation函数静悄悄地删除指定目录

要删除一个目录,看了RemoveDirectory,只能移除空目录。建议我看SHFileOperation。看看SHFileOperation,果然是个强大的函数。     资源管理器中的文件操作(删除、创建、移动、重命名等)都可以用它来实现。在东集的时候就让一个组员在windows ce操作系统下,做了个个性化的explorer,文件操作用的就是这个函数。     下面的代码可以悄无声息...
阅读(3020) 评论(2)

xmlParser

    xmlParser是Dr. Ir. Frank Vanden Berghen个人开发的xml解析器,采用DOM模型,只有两个文件xmlParser.h和xmlParser.cpp。它简洁、快速,对于小的应用项目或者只是解析配置文件之类的应用足够了。    xmlParser可以被编译为静态库或动态库,或者直接将源文件加入工程。它支持宽字符(WIDECHAR),支持UTF8、SJIS、ASC...
阅读(5718) 评论(3)

DXUT为基础的控件库(2)

    目前已完成如下控件:    1.按钮        按钮可以通过提供四个状态的个性化纹理来定制,也可以使用库提供的默认纹理。可以只有图片,这通常用于定制。也可以在图片上叠加文字,多数情况下使用库默认的纹理即可;当然也可以自己提供纹理并指定文字。    2.单选按钮、复选框       可以利用库提供的选中/非选中纹理,也可以定制纹理。    3.编辑框   ...
阅读(3594) 评论(10)

DXUT为基础的控件库

    最近在开发一个简单的GUI控件库,包括按钮、复选按钮、单选按钮、单行编辑框、多行编辑框、列表控件、滑块、静态文本、滚动条、超链接按钮等。以DXUTGUI为基础,不过随着开发进程,发现DXUTGUI的设计比较简单,有大量需要改动的地方。    用tinyxml来解析配置,根据配置从控件库提取控件,动态生成界面。    利用lua或javascript做脚本,也可以直接使用DLL文件来...
阅读(2722) 评论(1)

婚纱,婚纱,照!

五一前拍了婚纱照,最强烈的感觉是程式化,从化妆、摄影师到POSE,都很程式化。当时我就在想,如何用程序来表示这个过程:过程式的还是面向对象?    职业习惯。    婚纱、婚纱、照!    现实世界和程序的思维密切相关,软件如何简洁而有效的来反应业务逻辑始终是个难题。不过它们之间的关系却无时无刻充盈于生活之中,编码时间长了,不自觉地会在某些生活场景中跳跃到程式世界。    努力,奴隶!...
阅读(3896) 评论(0)

tinyxml使用

   现在在做的程序的配置文件用xml格式,还有其他的一些文件,比如窗口布局、外观定义、图元集定义等。看了一些解析xml的开源的库,比较了一下, tinyxml和CMarkup比较好用,不过后者的协议不允许在商业应用中使用,tinyxml可以。于是就用tinyxml吧。    使用tinyxml有个问题,它的api都是ansi的,函数参数牵涉到字符串的要么是const char *要么是std::...
阅读(4184) 评论(0)

我们的宿舍我们的过去

老狼略带沙哑的声音,像西寺沟的流水,漫不经意地流过错落的石头,淡淡却隽永地荡进我的心里。    《睡在我上铺的兄弟》,你问我何时能一起回去,看看我们的宿舍我们的过去。    我们的宿舍我们的过去。忽然就想起来那天和老朱,在傍晚重游交大。那些原本在岁月的河流中越漂越远的陈年往事,此刻忽然逆流而上,倏忽之间来到眼前。    当年青涩的学生味早已被生活的抹布擦去,我们担心混不进宿舍。...
阅读(3824) 评论(2)

tolua++初探(六)

    这是学习tolua++的最后一篇了。在这一篇里完成一个稍微复杂一点的例子(^_^其实还是很简单)。    导出三个类CBase、CDerived1、CDerived2到lua,导出两个函数toDerived1、toDerived2。lua脚本中声明两个函数Derived1Test和Derived2Test,我们在C++中调用。Derived1Test和Derived2Test会调用to...
阅读(6604) 评论(3)

tolua++初探(五)

     这个……,tolua++支持采用了单继承的类的直接导出,在lua中可以像在C++中那样访问基类的方法。和其它简单类的导出没什么区别。    只是个简单的示例,我们定义一个控件基类,从它派生一个按钮类。然后在lua中分别访问基类和按钮类的方法。我们导出一个全局变量lbutton,同时也在lua中生成一个新button。    先看实际的头文件inheritance.h,我把...
阅读(4372) 评论(2)

tolua++初探(四)

     聚合是最常见的构造新类的方式了,另一个是继承。tolua++支持单继承,后面会提到继承的例子。这里先看看怎么将利用了聚合的类导出到lua中。     我的目的是想在Lua中使用C++类的实例,而不是在lua中生成C++类实例,所以我在利用tolua++向lua导出类时一般不导出构造函数,这样就无法在lua中生成类实例。    但是为了演示的方便,这个例子中用到的两个简单类...
阅读(5537) 评论(2)
    个人资料
    • 访问:5202937次
    • 积分:47039
    • 等级:
    • 排名:第69名
    • 原创:475篇
    • 转载:3篇
    • 译文:13篇
    • 评论:5448条
    我的图书(点击购买)
    博客专栏
    文章分类