Categories
OpenGL

OpenGL notes(5)

换到Glut上面,原先找到的cocoa那层都得重新写过。考虑到将来的移植问题,读取BMP的部分也就没用glaux(这玩意儿只有windows下能用……)和mac的库,自己弄了个读bmp的函数。写好之后测了半天,图片明明读进来了就是不显示纹理。折腾了一个下午,最后发现是个莫名其妙的问题导致bmp的头部读取不正常。

typedef struct tagBITMAPFILEHEADER
{
short int bfType; //specifies the file type
int bfSize; //specifies the size in bytes of the bitmap file
short int bfReserved1; //reserved; must be 0
short int bfReserved2; //reserved; must be 0
int bfOffBits; //species the offset in bytes from the bitmapfileheader to the bitmap bits

}BITMAPFILEHEADER;

很清楚的结构,short int长度2,int长度4,想当然的sizeof(BITMAPFILEHEADER)=14,试了一下,居然是16……搜了搜,发现这涉及结构体成员的对齐方式,把这段定义放进#pragma pack(1)和#pargma pack()之间即可。

原因是#pragma pack(n)指定了成员的对齐方式。对齐的时候,假设某个成员长度len,则取x=min(len, n),这个成员的起始地址就是x的整数倍。

据说intel和m$的面试题也考到这点,当然更深入。http://www.sf.org.cn/Article/base/200509/260.html

Categories
post

Be happy, with your game

在校内上看到的,转移过来,也许有一天会需要这样的激励。

所有的生物都渴望生命的延续。这是个魔咒吧?好让游戏能够继续下去?但是,既然来到这个有奶油蛋糕又有臭虫蟑螂的房间里,既然注定几十年之后都得被赶出去,那就先好好面对着吧,反正也不知道外面是天堂还是炼狱,何苦提早去揭晓答案呢。既然哭着笑着都是得走这么一遭,那就BE HAPPY吧,吃吃蛋糕踩踩小强,臭虫咱们惹不起还躲不起么?

何况,在延续生命的意志和随之而来的痛苦之间,我们还有这样感人的室友。

Categories
校内

Nick Vujicic视频有感

很感动的视频。

所有的生物都渴望生命的延续。这是个魔咒吧?好让游戏能够继续下去?但是,既然来到这个有奶油蛋糕又有臭虫蟑螂的房间里,既然注定几十年之后都得被赶出去,那就先好好面对着吧,反正也不知道外面是天堂还是炼狱,何苦提早去揭晓答案呢。既然哭着笑着都是得走这么一遭,那就BE HAPPY吧,吃吃蛋糕踩踩小强,臭虫咱们惹不起还躲不起么?

何况,在延续生命的意志和随之而来的痛苦之间,我们还有这样感人的室友。

http://www.youtube.com/watch?v=Tv1gCa5Us7Q

Categories
家里就是不同

再一个月

机票算是定下来了,12月10日,厦门-北京-Vancouver,全程居然才4500,意外的便宜。所以这就步入最后一月了。

回顾一下过去,四个月零零碎碎的做了不少事情,遇见了不少人,五味杂陈。展望未来,剩下的一个月要慢慢紧张起来过日子了,抓紧时间再多看点书,多想点事情,多玩玩吉他。正在看陀思妥耶夫斯基的《罪与罚》,不知是不是在描绘失去上帝后的黑暗世界,第4章看完就做了噩梦。醒来回到现实后不禁释然,还好这个时代并非那么糟糕。还有每周前景渺茫的阿仙奴可看,还有火箭。今天中午火箭的比赛也是刺激无比,只看了加时赛,就幸运的抓到了最跌宕的结尾。如果是在宿舍的话估计大家都要捶墙跺脚砸电视了吧。可是我只能对着电脑骂。去了那里之后还不知道能不能这么放肆的享受。