WINDOW游戏编程大师技巧
斐扬
这个作者很懒,什么都没留下…
展开
-
函数调用约定详解:_stdcall,_cdecl,_fastcall
函数调用约定详解:_stdcall,_cdecl,_fastcall<br />在C语言中,假设我们有这样的一个函数:<br /><br />int function(int a,int b)<br /><br />调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传递参转载 2010-08-06 13:07:00 · 725 阅读 · 0 评论 -
6.DirectX基础和令人生畏的COM
在学习DX一堆接口之前的知识补充,小的不能再小了。一个COM对象实际上就是实现大量界面的C++类或者是一套C++类, 一个界面就是一套函数。如图:一个COM对象,有IGRAPHICS、ISOUND和IINPUT三个界面。每一个界面都有大量的函数可以调用,COM技术要求用户创建的所有的界面必须从一个指定的基本类界面IUnknown中导出,以具备功能:引用计数和查询接口。 interface IUnknown { virtual HRESULT _stdcall Qu转载 2010-08-06 13:46:00 · 924 阅读 · 0 评论 -
7.3.双缓冲
实现双缓冲微不足道.需要你完成的只是制订一块同主DirectDraw画面相同尺寸的内存.将动画的每一屏幕画到它上面,然后拷贝双缓冲到主显示画.下面就是一个建立双缓冲的代码:UCHAR *double_buffer = (UCHAR)mallic(640*400);或者用新的C++语言操作符:UCHAR *double_buffer = new UCHAR[640*400];两种方法都可以得到一个双缓冲指针指向的307200字节大小的线性可寻址内存阵列.对一个位于(x,y)的像素点寻址,只需要double_b原创 2010-08-10 13:43:00 · 709 阅读 · 0 评论 -
7.2.巧妙的色彩
// initializes a direct draw struct#define DDRAW_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }// this builds a 16 bit color value in 5.5.5 format (1-bit alpha mode)#define _RGB16BIT555(r,g,b) ((b & 31) +原创 2010-08-10 13:22:00 · 547 阅读 · 0 评论 -
WINDOWS游戏编程大师技巧-常见编绎连接错误FAQ
<br />1.无法从“const char [10]”转换为“LPCWSTR”<br />vs6,vs2005的版本问题<br />解决方案1: <br />winclass.lpszClassName = (LPCTSTR)WINDOW_CLASS_NAME;<br />解决方案2:<br />wndcls.lpszClassName = L"ShadowJack first window";<br />2.error LNK2019: 无法解析的外部符号 _DirectDrawCreateEx@16,原创 2010-08-22 10:12:00 · 6241 阅读 · 6 评论 -
时空之旅博客文章-windows游戏编程大师笔记
<br /><br />转载时空之旅博客文章<br />http://hi.baidu.com/wxvp/blog/category/%D3%CE%CF%B7%D6%C6%D7%F7<br /> <br />windows游戏编程大师笔记1<br /> <br />dx的hal层:硬件抽象层,hal是一种设备驱动程序,dx直接调用它与硬件进行通讯,条件是当硬件支持<br /> <br />你提交的请求 时.hal才被调用,速度比hel快<br /> <br />dx的hel层:硬件仿真层,当硬件不支持你提交转载 2010-09-17 17:32:00 · 2938 阅读 · 0 评论