随笔分类 - DX9
摘要:1 bool initInput(HWND hWnd) 2 { 3 // 第一步 得到获取设备的接口 和 创建D3D设备一样 4 // 由接口获得另一个接口。 5 HRESULT res; 6 res = DirectInput8Create(GetModuleHandle(NULL), 7 DIRECTINPUT_VERSION, 8 IID_IDirectInput8, 9 (void **)&pInput,10 NULL);11 12 if (!SUCCEEDED(res))13 ...
阅读全文
摘要:1 HRESULT D3DXLoadSurfaceFromFile( 2 __in LPDIRECT3DSURFACE9 pDestSurface, // 目的表面,装载文件 3 __in const PALETTEENTRY *pDestPalette, // 目的表面的调色板,可以为NULL 4 __in const RECT *pDestRect, // 目的矩形,NULL表示整个表面 5 __in LPCTSTR pSrcFile, // 源文件名 6 __in const RECT *pSrcRect, // 一般为空,...
阅读全文
摘要:翻译自DXSDK将渲染目标数据从设备内存拷贝到系统内存。HRESULT GetRenderTargetData( [in] IDirect3DSurface9 *pRenderTarget, [in] IDirect3DSurface9 *pDestSurface);pRenderTarget [in]Pointer to an IDirect3DSurface9 object, representing a render target.指向一个IDirect3DSurface9对象,代表一个渲染目标,源表面。pDestSurface [in]Pointer to an IDirect3DSu
阅读全文
摘要:交换链,对应的接口是IDirect3DSwapChain9,是整个Directx 3D中最核心的接口。D3d程序至少包含一个swap chain,在调用CreateDevice时自动创建,其中的D3DPRESENT_PARAMETERS * pPresentationParameters参数设置将要创建的IDirect3DSwapChain9的属性。首先我们看看这个接口提供的函数,我们可以找到Present函数,其实不难猜到IDirect3DDevice9::Present函数内部就是调用了默认IDirect3DSwapChain9的Present函数。 进一步讲,IDirect3DDe...
阅读全文
摘要:1 bool initD3D(HWND hWnd) 2 { 3 4 // 主要目的是获取设备,为调用下面的函数做很多准备。 5 // 比如 获取IDirect3D9 ,获取支持的顶点处理,填充后备缓冲相关参数等。 6 7 // IDirect3D9::CreateDevice( 8 //UINT Adapter, 9 //D3DDEVTYPE DeviceType,10 //HWND hFocusWindow,11 //DWORD BehaviorFlags,12 //D3DPRESENT_PARAMETERS *pPres...
阅读全文
摘要:由于创建设备时要用到这个值,所以在这里总结一下,以免以后再找。首先引自msdn:Copy只能为构成单个后台缓冲区的交换链指定此交换效果。 无论交换链是有窗口的还是全屏的,运行库都保证Device的基于复制的Present操作所暗示的语义;具体来说,该操作使后台缓冲区的内容保持不变,而不是像基于翻转的Present操作那样用前台缓冲区的内容来取代后台缓冲区的内容。对于有窗口交换链,Present操作使后台缓冲区内容被直接复制到目标窗口的工作区。由于没有尝试使复制与显示适配器的垂直回描周期同步,因此,可能会看到图像撕裂效果。对于全屏交换链,运行库将组合使用翻转和复制操作(如有必要,隐藏的后台缓冲区
阅读全文
摘要:简单地学习了四个API:1 HRESULT CreateOffscreenPlainSurface(2 [in] UINT Width, // 宽度3 [in] UINT Height, // 高度4 [in] D3DFORMAT Format, // 像素格式5 [in] D3DPOOL Pool, // 内存池类型6 [out, retval] IDirect3DSurface9 **ppSurface, // 返回的表面的指针7 [in] HANDLE *pSh...
阅读全文

浙公网安备 33010602011771号