自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 MapView开发坎坷经历

近来想在App中实现一种效果(如下图),在Fullscreen的MapView上叠一个Navigation Bar,Tap MapView则Navigation Bar出现,再次Tap则消失,类似于iOS自带的照片App的效果。初想应该很简单,但过程中也经历一些曲折,主要还是自己

2011-09-12 10:59:15 1413 1

原创 something about private iVar(成员变量) in ObjC

昨晚测试了private method,很自然想看看private iVar在ObjC里能怎样? First, ObjC提供了@private,可以在.h中把iVar定义为private,但对于只在Class里使用的iVar,我是不想让它出现的.h中的。有没有办法做到这一点? 有!在国外的论坛找到一种方法,但不清楚是否是推荐做法。 还是利用category。 在.m

2011-06-18 11:31:00 718

原创 private method in ObjC

关于ObjC的private method,一直不太确定其规则,故用程序测试一下。 定义三个类,MyClass, MySubClass, MyOtherClass. 其中MySubClass继承自MyClass, MyOtherClass独立存在。 关于private method有两种说法,一说使用category来实现,即在.m文件中如下书写, @interface M

2011-06-17 23:23:00 1025

原创 C语言头文件编写的几个基本规则

<br /><br />1.      注释,版权,作者,重大修订记录等信息<br />2.      防重入开关,也就是常见的#ifndef… #define… #endif<br />3.      C++编译器自适应开关,也就是常见的#ifdef __cplusplus…extern “C” { } #endif<br />4.      #include,头文件里应该include所有该文件中所使用的其它接口头文件。这里有也有两层含义,一是说头文件应做到自包含,即使用头文件的用户

2010-08-31 12:22:00 3652 1

原创 scons随笔

<br />Scons是新一代的软件构件工具,或者说make工具。SCons比较特别的一点是,它的配置文件实际就是通用的python脚本,而其它make工具一般都是自定义一套私有的语言。个人感觉这既是优点又是缺点,对于已经熟悉python的人来说,这非常好,省去学习成本,但对于从未接触过python的人来说,用python做为一种make脚本,实在是过于灵活了。<br /> <br />SCons的设计原则<br />正确,这一点从使用MD5作为文件更新检查算法就可见一斑。要知道make使用的是时间戳,在没

2010-08-26 16:45:00 1485

原创 兼容性问题思考

最近思考并实践了关于兼容性方面的一些内容。兼容性是一个硕大的话题,什么是讨论的范围是什么?谈谁与谁的兼容。其次什么是兼容?兼容如何定义。 从具体的应用软件(可被用户直接使用,有人机交互的软件),到软件组件(library)都有兼容性问题。比如win2000与win98, vista与winxp,又比如gtk1.2与gtk2.0,再比如x86系列CPU,从80386开始就一直保持兼容。普遍认

2010-05-26 15:40:00 588

原创 alpha混合与porter/duff

稍微接触过一点图形相关应用的人应该都会知道alpha混合,再深入一点就应该会看到porter, duff两位神人的名字,他们是最早在SIGGRAPH上提出图形混合概念的前辈。对于alpha混合,最简单的说法是Src*alpha + Dst*(1-alpha),至少这是我第一次了解到的alpha算法,但事实上porter, duff提出的混合远比这个复杂。因为每次都会忘记他们提出的那12个混合方

2010-04-09 21:50:00 5621

原创 OpenGL学习随笔(十三)

因为工作原因,有一段时间没玩OpenGL了。今天开始重新拾起。这一年来接触了些OpenGL/ES的chip provider,感觉大家都开始发力了,mobile 3D产业要爆发了。 之前一直在看1.x系列,现在从2.x开始,虽然1.x还有不少内容没玩过。 2.x系列最大的变化就是引入了可编程pipeline,相对于1.x的固定pipeline来说要灵活很多,具体一点比始光照,在2.

2010-03-12 15:48:00 1151

原创 Visual Studio 工具使用自问自答(Q&A)

因为多年一直在Linux下工作,对于微软的东东已经有些陌生了,偶尔用到这些工具的时候,经常会被一些工具配置和使用上的问题困扰,为了避免每次都记不起同样的问题以前是怎样解决的,特开个烂笔贴。 1. 如何设置Visual Studio编译器默认的include路径,library路径Tools->Options->Projects and Solutions->VC++ Directori

2010-03-10 10:45:00 625

原创 软件系统中模块调用关系的分析方法

之前也看到过有人介绍一些工具来分析C函数之间的调用关系,大致分为两类,静态分析和动态分析。前者如calltree和cflow,后者如gprof。不知道是我用的不好还是如何,我感觉这些工具都不好使用。如果面临一个完全没有文档的系统的源代码,如何才能快速对系统各模块之间的关系有个了解。cflow给出的信息太多,且针对于函数内的流程,gprof要求glibc/uclibc的支持,对于一些仅仅使用gnu工

2010-02-22 14:35:00 2297

转载 软件开发的愚公移山

我想不少热爱coding的中国程序员都十分向往国外优越的环境——在工作之余有大量的时间可以参与自己感举的开源或自由软件项目。特别是在公司怀才不遇的程序员们,大概都希望能在开源和自由软件社区中得到公众的认可吧。但中国的国情和国外有着天壤之别,我们没有人家那么好的社会福利,国家在发展,要想赶超世界,除了正确的方法,还少不了付出比别人更多的时间。高强度的工作让IT从业者连健康都难以保证,更别说思考开源和

2009-05-20 17:16:00 561

原创 backtrace与fomit-frame-pointer选项

事实上gcc的所有级别的优化(-O, -O2, -O3等)都会打开-fomit-frame-pointer,该选项的功能是函数调用时不保存frame指针,在ARM上就是fp,故我们无法按照APCS中的约定来回溯调用栈。但是GDB中仍然可以使用bt命令看到调用栈,为什么?得知GDB v6之后都是支持DWARF2的,也就意味着它可以不依赖fp来回溯调用栈(详见http://gcc.gnu.org/ml

2009-05-07 18:35:00 3644

翻译 FreeType Glyph Convention(二)

2. glyph轮廓线(outline)2.1 像素,点及设备分辨率在编写计算机图形程序时,一个很通常的假设是不同的物理设备(显示器或打印机)对像素的度量方式是不一样的。通常来说,像显示器或打印机这些输出设备在水平或垂直方向上往往有多种分辨率,这一点是被文字渲染高度重视的。我们通常使用两个以dpi为单位的数字来定义设备的分辨率,如分辨率为300*600dpi的打印机在水平方向上有300

2009-04-13 22:19:00 1544

翻译 FreeType Glyph Convention(一)

1. 与文字印刷相关的基本概念 1.1 字体文件(译注1),格式及信息字体是一组用于显示和打印的字符图像的集合。字体中的各个字符图像(character image)有着一些相同的属性,如外观,风格,衬线(译注2)等。在印刷领域,你必须要搞清楚“字体系列(font family)”和“同一系列的不同外观(font face)”之间的区别。不同的外观(face)一般来源于相同的字体模板,但在

2009-04-11 11:56:00 1592

原创 Source Insight Marco研究(语法篇)

Source Insight宏语法与C相似,编写好的宏以.em文件存储。要使用宏先需要把.em文件加入到当前工程或是Base工程中,然后为其分配一个快捷键或是菜单项,之后就可以使用键盘或是点击菜单来调用宏。si的宏语法“不是”大小写敏感的,且每行语句不强制要求以分号结束,语法元素之间的空格将被自动忽略,变量名必须以字母开头。1. 宏定义方法如下,可以传递参数,可以有返回值,但和一些脚本语言一样

2009-04-01 21:27:00 1583

原创 OpenGL学习随笔(十二)

凹凸纹理让物体看上去更真实,而凹凸效果的本质是光源入射到凹凸不平的物体表面之后产生的反射现象。在图形领域“更真实,更快速”宗旨的指导下,凹凸也表现出多种具体的解决方案。如果要完全真实模拟凹凸,那必然是一个浩大的工程,我理解主要有两点困难:1、现实物体表面的凹凸数据的收集,包括静态数据和动态数据(物理作用之后产生的各种凹凸)2、凹凸表面的光照计算,如果要真实模拟,则需要逐点计算。虽然光源照射到平面后

2009-03-14 22:04:00 1108 2

原创 VirtualBox网络设置

一定要写下来,就算是别人觉得很弱智也要写下来。我算是领教什么是好记性不如烂笔头。由于装机之后很少再去配置VirtualBox的网络,其结果就是每次装机完成之后,VirtualBox总是要上网找资料才能配置好。 记住了,VirtualBox使用Host Interface,主机系统(XP/Vista)中使用桥接方式,启动之后就可以双向访问了。

2009-02-21 15:49:00 619

原创 OpenGL学习随笔(十一)

前面的随笔中曾经有过一个疑问——在Windows下如何使用更高版本的OpenGL API。这个疑问在前几天终于被解开,答案即是通过wglGetProcAddress。Windows从95时代开始就只提供了1.1的OpenGL实现,所有高于此的功能,如果被硬件支持则都要使用wglGetProcAddress来调用,该API原型如下:PROC wglGetProcAddress( LPCSTR 

2009-01-21 15:04:00 934

原创 3D数学知识

我曾经很喜欢数学,但进高中后就开始讨厌,原因是数学新概念不断增多,还来不及理解和推敲,一堆题目就上来了,应试教育让本来很有趣的东西变得很无味。和3D相关的数学知识中最基础的是向量和矩阵。不吃概念亏,先清理一下概念。1. 向量,又称矢量,英文是vector,即用长度和方向来描述一个量,与之相反的概念是标量。向量的表示方法是(n0, n1, n2...)。两个向量相等表示其方向和长度都相等。向量的长度

2009-01-18 22:12:00 174

原创 OpenGL学习随笔(十)

在OpenGL中要使用光照分为四个步骤,1、启用光照2、启用光源,光源数量受硬件限制3、设置光源属性4、设置物体材质属性可见光照相关的属性比较多,要想理解各种光照效果,了解其内部数学计算公式是必要的,在此之上辅之一些实际例子,以有更直观效果,加深理解。从渲染输出的角度来说,光照的各种属性影响的是最后像素输出的颜色,即像素输出颜色由光照方程决定。这个方程redbook

2009-01-16 19:33:00 844

原创 OpenGL学习随笔(九)

早就想尝试一下在Mac上开发OpenGL程序,原因很简单,传闻Mac OS X对OpenGL支持得很好,当然也是防范老婆偶尔占用我的X60:)Apple为开发者提供了xCode,类似于Visual Studio一样的东东。要想在Mac下开发OpenGL程序其实就是如何使用配置xCode,应该与OpenGL本身没有什么关系。在网上搜索了一圈,终于在NeHe上找到一篇文章,按照其步骤基本就可以搞定了,

2009-01-11 12:07:00 1062

原创 OpenGL学习随笔(八)

简单纹理使用套路,最简单常用的场景,使用2维纹理对3D模型进行贴图。1、启用纹理功能,glEnable(GL_TEXTURE_2D)。2、创建纹理对象,glGenTexture(1, &texture)。3、将纹理对象设置为OpenGL当前纹理对象,以供OpenGL渲染,glBindTexture(GL_TEXTURE_2D, texture)。4、为纹理对象指定位图,glTe

2009-01-07 19:41:00 698

原创 OpenGL学习随笔(七)

很多时候,知识难以常握是因为我们只知其表不知其里,或者说不了解历史就不能理解现在。所以在学习到一定程度之后一定要去分析和实现OpenGL,之后才能真正理解和掌握OpenGL。每天在不断学习新的内容时,我都会选择重写测试代码,而不是在之前的代码上修改,原因是想找出一些思维定势和盲区。今天尝试用push和pop来写reshape时,就发现自己理解还不到位,static void reshape(int

2009-01-06 23:32:00 729

原创 OpenGL学习随笔(六)

在上次想往glDrawPixel中传入GL_BGR失败之后,就想找个机会把Mesa环境搭起来,以便后续学习。Mesa是一个OpenGL的跨平台开源实现,最新Mesa 7.x支持OpenGL 2.1标准。按照readme一步一步很容易就可以编译出windows版本的mesa。把之前编译不过的程序和mesa一起编译链接,成功!运行,结果也正确了。本以为事情就这样结束了,可是控制台上打印输出的OpenG

2009-01-03 22:52:00 2017

原创 OpenGL学习随笔(五)

困难接踵而至,不论是想深入研究还是快速了解全貌,对于我来说,看来不是件容易的事。继投影之后,连续看完了redbook中关于光照、位图、纹理三个章节。光照一节,看完之后虽然知道如何使用api,但始终有一种不快的感觉,不知其来龙去脉,为什么要这样定义api?出于物理实现还是另有其它?想从物理中找些答案,搜索了一下午,也没有什么头绪,只好暂时打处好奇的心。位图一节,同样也是被其API的设定搞晕了,似乎O

2009-01-01 23:34:00 1082 1

原创 OpenGL学习随笔(四)

久违了,我的blog。这几天被透视投影卡住了,虽然到现在也没有完全搞明白,但也还是应该阶段性总结一下。 3D图像在2D平面显示要经过以下几个步骤,1. 数据配置环节,配置顶点、颜色等数据,确定了物体的大小和外观。2. 指定模型视点变换参数,将物体到3D场景中,并确定我们的观察点,也就是人眼的位置。3. 指定投影变换参数,确定投影方式和方向。4. 指定视口变换参数,将投影结果映射至视口(

2008-12-23 17:32:00 1265

原创 OpenGL学习随笔(三)

如果每个顶点都要用glVertex这样去输入,那对于动辄几千个多边形的模型来说,恐怕每一帧几千次函数调用会让某些系统“疯”掉。一个比较容易想到方法是把顶点放在一起然后用一个命令将顶点数组的首地址配置给OpenGL。当然OpenGL也提供了这样的方法,而且不仅仅是针对顶点,所有需要频繁配置的数据OpenGL都为其设计了数组式配置的接口。使用数组配置方式有两个步骤,1. 使用glEnableClien

2008-12-18 23:47:00 680

原创 OpenGL学习随笔(二)

一个场景中存在多个元素,不论3D还是2D都是一样。但由于3D多出一个Z轴,因而人眼从不同角度观察到的场景是不一样的。如何设置观察点是后话,首先还是要了解如何定义一个元素(不考虑如何把它放到场景里)。在3D计算机图形世界里,所有图元都通过顶点(vertex)来表示。OpenGL支持(x,y), (x,y,z), (x,y,z,w)三种形式描述的顶点。其中(x,y,z,w)是齐次坐标(homogene

2008-12-17 21:49:00 816

原创 OpenGL学习随笔(一)

OpenGL是什么?OpenGL只是一个3D图形库,最早由SGI发起,目前由khronos group维护。本质上我们显示设备仍然是2D的,但OpenGL给我们虚拟了一个3D世界,基于OpenGL的API我们可以方便的绘制3D图像,还不需要关心这些3D图像是如何被转换至2D平面来显示的。由于OpenGL并不是一个窗口系统,所以将OpenGL的输出送至本地窗口系统显示是因平台而异的。但至少目前Mac

2008-12-16 22:00:00 1041 1

原创 source insight研究——正则表达式篇

正则表达式主要用来做搜索和替换,一般强大一点的编辑器都会支持。si在搜索和替换界面里都有Use Regular Expression这样的选项。个人认为使用正则表达式(后简称RE)应该是每个程序员都应该掌握的技能。虽然和vim这些相比si对RE的支持还是弱一点,但对于从未了解过RE的人来说,从si这样的编辑器来入门RE也不失为一个好的选择。学习任何一项科学或技术,了解其涉及的各种概念是第一步,也是

2008-12-14 09:24:00 5097 3

原创 source insight研究——快捷键篇

关于键盘和鼠标谁更快捷之争,是一个永远被程序员争论的话题。我想大多数人都不会极端的信奉一种操作方式,鼠标更为大众接受,但掌握一些快捷键对于提高操作速度是有帮助的。si为我们提供了丰富的快捷键和灵活的定制方式,同时还支持自定义命令和脚本,熟练掌握这些之后相信可以使你更加喜欢它。以下是我认为比较有用的快捷键:1. ctrl+o,打开文件列表2. F7,打开符号检索窗口(全局列表)3. F8,打开符号检

2008-12-13 15:45:00 8347 6

原创 source insight研究——配置篇

用si有好几年了,零零散散也累积了不少心得,但总觉得还有一些内容是不知道的,所以今天干脆来个大清扫,把所有的选项都研究一遍,并把自认为有用的内容在这里整理一下。si的主要配置都在Options->Perferences菜单里,1、GeneralProject File Synchronization->Remove missing file from project选上可以避免因文件找不到而弹出错

2008-12-13 13:50:00 25853 7

原创 跳变的前奏(二)

OpenGL中的几个概念,1. glu,基于opengl封装的更高层的图形库。2. glut。glut最早是Mark Kilgard用于redbook第二版中的样例写作时而搞出的一套接口,简化各平台上opengl与native window system对接的工作,由于这套接口的确比较简单好用,glut被广泛流行,成为了跨平台的事实标准。但自1998年之后,M. Kilgard就没有再更新过glu

2008-12-08 22:01:00 88

ttf文件转换成C数组

convert ttf to c arrays

2009-11-23

空空如也

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

TA关注的人

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