D3DPRESENT PARAMETERS 說明

2022-11-24 19:11:47 字數 1872 閱讀 7448

typedef struct

_d3dpresent_parameters_

d3dpresent_parameters;

成員說明

backbufferwidth

backbufferheight

後備快取區所需要的寬度和高度。

如果使用全屏模式,則必須使用顯示器所支援的解析度(使用enumadaptermode獲取各種解析度)

如果使用視窗模式,預設使用0。

backbufferformat

後備緩衝區使用的顏色模式。即顏色深度和格式。

如果使用全屏模式,可以使用裝置支援的任何顏色模式。使用checkdevicetype方法來檢查。

如果使用視窗模式,則必須使用當前視窗使用的顏色模式。可以使用d3dfmt_unkown,系統會自動獲取該值。

backbuffercount

後備緩衝區的數目。可以為0,1,2,3.

通常一個後備緩衝區就足夠了。

multisampletype

多重取樣類別,用於圖形反鋸齒。使用1x – 16x。

注意,使用高階別的多重取樣類別的話,會消耗更多的圖形視訊記憶體。

swapeffect

指定系統如何將後臺緩衝區的內容複製到前臺緩衝區,從而在螢幕上顯示。它的值有:

d3dswapeffect_discard:清除後臺快取的內容

d3dswapeefect_flip:保留後臺快取的內容。當快取區》1時。

d3dswapeffect_copy: 保留後臺快取的內容,緩衝區=1時。

一般情況下使用d3dswapeffect_discard

hdevicewindow

指定進行渲染的視窗。

windowed

指定視窗模式。true = 視窗模式;false = 全屏模式

enableautodepthstencil

指定是否需要directx自動管理深度緩衝(用於關於每個畫素點的深度資訊)。3d場景應該開啟深度測試。

autodepthstencilformat

深度緩衝的格式。一般使用d3dfmt_d16,即深度值用16位二進位制表示。位數越多,場景繪製得越精確,相應記憶體消耗更多。

flags

d3dpresentflag_lockable_backbuffer表示鎖定後備緩衝區。一般情況下不使用。預設為0.

fullscreen_refreshrateinhz

指定螢幕重新整理率。

如果使用全屏模式的話,使用螢幕支援的任意頻率(使用enumadaptermodes獲取)。值為0表示使用預設重新整理率。

如果使用視窗模式的話,值必須為0,表示使用桌面重新整理率。

fullscreen_presentationinterval

指定後備緩衝區與前臺緩衝區的交換頻率。一般情況下使用d3dpresent_interval_default.

d3dpresent_interval_default:  視窗模式一定得用該選項!

d3dpresent_interval_immediate: vsync關閉,立即更新~

d3dpresent_interval_one:等待一個垂直掃描週期才更新,有助於減少剪斷和撕裂效果。

d3dpresent_interval_two ~ four:分別等待相應個數週期才更新!

定義於d3d9types.h,顯示模式的結構體

/* display modes */

typedef

struct

_d3ddisplaymode  

d3ddisplaymode;  

width和height為螢幕解析度,refreshrate為螢幕重新整理率。

format為顯示卡使用的繪圖表面影象格式。