D3DRENDERSTATETYPE列舉 (d3d9types.h)
D3DRENDERSTATETYPE列舉型別會列出各種屬性或轉譯狀態。 驅動程序獨佔使用的D3DRENDERSTATETYPE列舉值可以指定轉譯資訊或紋理屬性。 顯示驅動程式會使用下列轉譯狀態:
Syntax
typedef enum _D3DRENDERSTATETYPE {
D3DRS_ZENABLE,
D3DRS_FILLMODE,
D3DRS_SHADEMODE,
D3DRS_ZWRITEENABLE,
D3DRS_ALPHATESTENABLE,
D3DRS_LASTPIXEL,
D3DRS_SRCBLEND,
D3DRS_DESTBLEND,
D3DRS_CULLMODE,
D3DRS_ZFUNC,
D3DRS_ALPHAREF,
D3DRS_ALPHAFUNC,
D3DRS_DITHERENABLE,
D3DRS_ALPHABLENDENABLE,
D3DRS_FOGENABLE,
D3DRS_SPECULARENABLE,
D3DRS_FOGCOLOR,
D3DRS_FOGTABLEMODE,
D3DRS_FOGSTART,
D3DRS_FOGEND,
D3DRS_FOGDENSITY,
D3DRS_RANGEFOGENABLE,
D3DRS_STENCILENABLE,
D3DRS_STENCILFAIL,
D3DRS_STENCILZFAIL,
D3DRS_STENCILPASS,
D3DRS_STENCILFUNC,
D3DRS_STENCILREF,
D3DRS_STENCILMASK,
D3DRS_STENCILWRITEMASK,
D3DRS_TEXTUREFACTOR,
D3DRS_WRAP0,
D3DRS_WRAP1,
D3DRS_WRAP2,
D3DRS_WRAP3,
D3DRS_WRAP4,
D3DRS_WRAP5,
D3DRS_WRAP6,
D3DRS_WRAP7,
D3DRS_CLIPPING,
D3DRS_LIGHTING,
D3DRS_AMBIENT,
D3DRS_FOGVERTEXMODE,
D3DRS_COLORVERTEX,
D3DRS_LOCALVIEWER,
D3DRS_NORMALIZENORMALS,
D3DRS_DIFFUSEMATERIALSOURCE,
D3DRS_SPECULARMATERIALSOURCE,
D3DRS_AMBIENTMATERIALSOURCE,
D3DRS_EMISSIVEMATERIALSOURCE,
D3DRS_VERTEXBLEND,
D3DRS_CLIPPLANEENABLE,
D3DRS_POINTSIZE,
D3DRS_POINTSIZE_MIN,
D3DRS_POINTSPRITEENABLE,
D3DRS_POINTSCALEENABLE,
D3DRS_POINTSCALE_A,
D3DRS_POINTSCALE_B,
D3DRS_POINTSCALE_C,
D3DRS_MULTISAMPLEANTIALIAS,
D3DRS_MULTISAMPLEMASK,
D3DRS_PATCHEDGESTYLE,
D3DRS_DEBUGMONITORTOKEN,
D3DRS_POINTSIZE_MAX,
D3DRS_INDEXEDVERTEXBLENDENABLE,
D3DRS_COLORWRITEENABLE,
D3DRS_TWEENFACTOR,
D3DRS_BLENDOP,
D3DRS_POSITIONDEGREE,
D3DRS_NORMALDEGREE,
D3DRS_SCISSORTESTENABLE,
D3DRS_SLOPESCALEDEPTHBIAS,
D3DRS_ANTIALIASEDLINEENABLE,
D3DRS_MINTESSELLATIONLEVEL,
D3DRS_MAXTESSELLATIONLEVEL,
D3DRS_ADAPTIVETESS_X,
D3DRS_ADAPTIVETESS_Y,
D3DRS_ADAPTIVETESS_Z,
D3DRS_ADAPTIVETESS_W,
D3DRS_ENABLEADAPTIVETESSELLATION,
D3DRS_TWOSIDEDSTENCILMODE,
D3DRS_CCW_STENCILFAIL,
D3DRS_CCW_STENCILZFAIL,
D3DRS_CCW_STENCILPASS,
D3DRS_CCW_STENCILFUNC,
D3DRS_COLORWRITEENABLE1,
D3DRS_COLORWRITEENABLE2,
D3DRS_COLORWRITEENABLE3,
D3DRS_BLENDFACTOR,
D3DRS_SRGBWRITEENABLE,
D3DRS_DEPTHBIAS,
D3DRS_WRAP8,
D3DRS_WRAP9,
D3DRS_WRAP10,
D3DRS_WRAP11,
D3DRS_WRAP12,
D3DRS_WRAP13,
D3DRS_WRAP14,
D3DRS_WRAP15,
D3DRS_SEPARATEALPHABLENDENABLE,
D3DRS_SRCBLENDALPHA,
D3DRS_DESTBLENDALPHA,
D3DRS_BLENDOPALPHA,
D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;
常數
D3DRS_ZENABLE 表示深度緩衝狀態 的D3DZBUFFERTYPE 列舉型別。 |
D3DRS_FILLMODE D3DFILLMODE列舉類型。 |
D3DRS_SHADEMODE D3DSHADEMODE列舉類型。 |
D3DRS_ZWRITEENABLE TRUE 可讓應用程式寫入深度緩衝區。 預設值為 TRUE。 此成員可讓應用程式防止系統使用新的深度值來更新深度緩衝區。 如果為 FALSE,仍會根據轉譯狀態D3DRS_ZFUNC進行深度比較,但深度值不會寫入緩衝區。 |
D3DRS_ALPHATESTENABLE TRUE 表示啟用每個像素 Alpha 測試。 如果測試通過,圖元就會由畫面緩衝區處理。 否則,會略過圖元的所有框架緩衝區處理。 |
D3DRS_LASTPIXEL 默認值為TRUE,可啟用線條中最後一個像素的繪製。 若要防止繪製最後一個像素,請將此值設定為 FALSE。 |
D3DRS_SRCBLEND D3DBLEND列舉類型。 |
D3DRS_DESTBLEND D3DBLEND列舉型別。 |
D3DRS_CULLMODE 一種D3DCULL列舉型別,指定如果完全反轉三角形如何擷取。 |
D3DRS_ZFUNC D3DCMPFUNC列舉類型,可讓應用程式根據相機距離接受或拒絕圖元。 圖元的深度值會與深度緩衝區值進行比較。 如果圖元的深度值通過比較函式,則會寫入圖元。 只有當轉譯狀態為TRUE時,深度值才會寫入深度緩衝區。 |
D3DRS_ALPHAREF 值,指定啟用 Alpha 測試時所測試像素的參考 Alpha 值。 這是 DWORD 轉譯狀態值的低 8 位中放置的 8 位值。 值的範圍可以從0x00000000到0x000000FF。 預設值為 0。 |
D3DRS_ALPHAFUNC D3DCMPFUNC列舉類型,可讓應用程式根據其 Alpha 值接受或拒絕圖元。 |
D3DRS_DITHERENABLE TRUE 表示啟用任一項。 預設值為 FALSE。 |
D3DRS_ALPHABLENDENABLE TRUE 可啟用Alpha混合透明度。 預設值為 FALSE。 Alpha 混合的類型取決於D3DRS_SRCBLEND和D3DRS_DESTBLEND轉譯狀態。 |
D3DRS_FOGENABLE TRUE 可啟用水氣混合。 預設值為 FALSE。 |
D3DRS_SPECULARENABLE TRUE 可啟用反射醒目提示。 預設值為 FALSE。 反射醒目提示的計算方式,就像物件中的每個頂點都位於物件的原點。 只要物件是以原點模型化,而且從光線到對象的距離相對大,這就會提供預期的結果。 在其他情況下,結果為未定義。 當這個成員設定為 TRUE 時,反射色彩會新增至紋理串聯之後的基底色彩,但在 Alpha 混合之前。 |
D3DRS_FOGCOLOR D3DCOLORVALUE結構。 |
D3DRS_FOGTABLEMODE D3DFOGMODE列舉型別,表示要用於圖元模糊的模糊公式。 |
D3DRS_FOGSTART 圖元或頂點模糊效果開始的深度,以線性模糊模式開始。 預設值為 0.0f。 深度是在世界空間中指定,用於頂點模糊,以及裝置空間 [0.0,1.0] 或世界空間用於圖元模糊。 對於圖元模糊,當系統使用 z 進行水氣計算時,這些值會位於裝置空間中,而當系統使用眼球相對的模糊 (w-fog) 時, 世界空間。 |
D3DRS_FOGEND 線性模糊模式的像素或頂點模糊效果結束的深度。 預設值為 1.0f。 深度是在世界空間中指定,用於頂點模糊,以及裝置空間 [0.0,1.0] 或世界空間用於圖元模糊。 對於圖元模糊,當系統使用 z 進行水氣計算,而當系統使用眼球相對的模糊 (w-fog) 時,這些值就會在裝置空間中。 |
D3DRS_FOGDENSITY 圖元或頂點模糊的模糊密度,用於指數型模糊模式 (D3DFOG_EXP 和D3DFOG_EXP2) 。 有效的密度值範圍從 0.0 到 1.0。 |
D3DRS_RANGEFOGENABLE TRUE 可啟用以範圍為基礎的頂點模糊。 默認值為 FALSE,在此情況下,系統會使用深度型的模糊。 在以範圍為基礎的模糊中,物件與查看器之間的距離是用來計算水氣效果,而不是物件 (的深度,也就是場景中的 z 座標) 。 在範圍型的模糊中,所有模糊方法都如往常般運作,不同之處在於它們會使用範圍,而不是計算中的深度。 範圍是用於模糊計算的正確因素,但通常會使用深度,因為範圍很耗時,計算和深度通常已可供使用。 當查看器的眼睛移動時,使用深度來計算模糊有不想要的效果,而讓周邊物件的模糊變更,在此案例中,深度變更和範圍會維持不變。 因為目前沒有硬體支援以每個圖元範圍為基礎的模糊,所以只會針對頂點模糊提供範圍更正。 |
D3DRS_STENCILENABLE TRUE 表示啟用 stenciling 或 FALSE 以停用 stenciling。 預設值為 FALSE。 |
D3DRS_STENCILFAIL D3DSTENCILOP列舉型別,指定要在樣板測試失敗時執行的樣板作業。 預設值為 D3DSTENCILOP_KEEP。 |
D3DRS_STENCILZFAIL D3DSTENCILOP列舉型別,指定樣板測試通過時要執行的樣板作業,而深度測試 (z 測試) 失敗。 |
D3DRS_STENCILPASS D3DSTENCILOP列舉型別,指定要在樣板和深度 (z) 測試通過時執行的樣板作業。 |
D3DRS_STENCILFUNC 比較函式可用來比較參考值與樣板緩衝區專案。 此比較僅適用於由D3DRS_STENCILMASK轉譯狀態所設定之樣板 (遮罩中所設定之參考值和樣板緩衝區專案中的位) 。 如果為 TRUE,樣板測試就會通過。 |
D3DRS_STENCILREF 樣板測試的 int 參考值。 預設值為 0。 |
D3DRS_STENCILMASK 套用至參考值和每個樣板緩衝區專案的遮罩,以判斷樣板測試的重要位。 默認遮罩0xFFFFFFFF。 |
D3DRS_STENCILWRITEMASK 寫入遮罩套用至寫入樣板緩衝區的值。 默認遮罩0xFFFFFFFF。 |
D3DRS_TEXTUREFACTOR 用於多重紋理混合的色彩與D3DTA_TFACTOR紋理混合自變數或D3DTOP_BLENDFACTORALPHA紋理混合作業。 |
D3DRS_WRAP0 多組紋理座標的紋理換行行為。 這個轉譯狀態的有效值可以是D3DWRAPCOORD_0 (或D3DWRAP_U) 、D3DWRAPCOORD_1 (或D3DWRAP_V) 、D3DWRAPCOORD_2 (或D3DWRAP_W) ,以及D3DWRAPCOORD_3旗標的任何組合。 這些會導致系統在給定紋理的第一個、第二個、第三個和第四個維度的方向換行,有時稱為 s、t、r 和 q 方向。 此轉譯狀態的預設值為 0, (在所有方向) 停用換行。 |
D3DRS_WRAP1 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP2 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP3 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP4 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP5 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP6 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP7 請參閱D3DRS_WRAP0。 |
D3DRS_CLIPPING TRUE 是表示 啟用 Direct3D 的基本裁剪,或 FALSE 以停用它。 預設值為 TRUE。 |
D3DRS_LIGHTING TRUE 表示啟用 Direct3D 光源或 FALSE 來停用它。 預設值為 TRUE。 只有包含頂點一般頂點的頂點已正確亮起;不包含一般頂點的頂點會在所有光源計算中採用 0 點乘積。 |
D3DRS_AMBIENT 環境光線色彩。 |
D3DRS_FOGVERTEXMODE 要用於頂點模糊的模糊公式。 |
D3DRS_COLORVERTEX TRUE 表示啟用每個頂點色彩或 FALSE 來停用它。 預設值為 TRUE。 啟用每個頂點色彩可讓系統在其光源計算中包含針對個別頂點定義的色彩。 |
D3DRS_LOCALVIEWER TRUE 表示啟用相機相對反射醒目提示,或 FALSE 表示使用正交反射醒目提示。 預設值為 TRUE。 使用正交投影的應用程式應該指定 FALSE。 |
D3DRS_NORMALIZENORMALS TRUE 表示啟用頂點常態的自動正規化,或為 FALSE 停用。 預設值為 FALSE。 啟用這項功能會導致系統在將頂點轉換成相機空間之後,將頂點的頂點常態正規化,這可能相當耗時。 |
D3DRS_DIFFUSEMATERIALSOURCE 光源計算的擴散色彩來源。 |
D3DRS_SPECULARMATERIALSOURCE 光源計算的反射色彩來源。 |
D3DRS_AMBIENTMATERIALSOURCE 光源計算的環境色彩來源。 |
D3DRS_EMISSIVEMATERIALSOURCE 光源計算的放射色彩來源。 |
D3DRS_VERTEXBLEND 如果有的話,用來執行幾何混合的矩陣數目。 |
D3DRS_CLIPPLANEENABLE 啟用或停用使用者定義的裁剪平面。 有效值為任何 DWORD,其中每個位 (集的狀態或未設定) 切換對應使用者定義裁剪平面的啟用狀態。 最小有效位 (位 0) 控制索引處的第一個裁剪平面,而後續位則控制較高索引的裁剪平面啟用。 如果已設定位,系統會在場景轉譯期間套用適當的裁剪平面。 預設值為 0。 |
D3DRS_POINTSIZE 浮點數,指定每個頂點未指定點大小時,用於點大小計算的大小。 當頂點包含點大小時,不會使用此值。 如果 D3DRS_POINTSCALEENABLE 為 FALSE,這個值會以螢幕空間單位表示;否則,此值會以世界空間單位為單位。 預設值是驅動程式傳回的值。 如果驅動程式傳回 0 或 1,預設值為 64,可允許軟體點大小模擬。 |
D3DRS_POINTSIZE_MIN 指定點基本類型大小下限的浮點值。 轉譯期間,點基本類型會固定在此大小上。 將此值設定為小於 1.0 的值會導致點在點未涵蓋圖元中心且反鋸齒停用或啟用反鋸齒時以降低強度轉譯時,即會捨棄點。 預設值為 1.0f。 此值的範圍大於或等於0.0f。 |
D3DRS_POINTSPRITEENABLE 當為 TRUE 時,會設定點基本型別的紋理座標,以便在每個點上對應完整紋理。 當為 FALSE 時,頂點紋理座標會用於整個點。 預設值為 FALSE。 您可以將 D3DRS_POINTSCALEENABLE 設定為 FALSE,並將 D3DRS_POINTSIZE 設為 1.0,以達到 DirectX 7 樣式的單圖元點,也就是預設值。 |
D3DRS_POINTSCALEENABLE 布爾值,控制點基本類型的大小計算。 當為 TRUE 時,點大小會解譯為相機空間值,並依距離函式和 frustum 縮放來檢視區 y 軸縮放,以計算最終的螢幕空間點大小。 當為 FALSE 時,點大小會解譯為螢幕空間,並直接使用。 預設值為 FALSE。 |
D3DRS_POINTSCALE_A 浮點基本類型控制距離型大小衰減的浮點值。 只有在D3DRS_POINTSCALEENABLE為 TRUE 時,才會使用中。 預設值為 1.0f。 此值的範圍大於或等於0.0f。 |
D3DRS_POINTSCALE_B 浮點基本類型控制距離型大小衰減的浮點值。 只有在D3DRS_POINTSCALEENABLE為 TRUE 時,才會使用中。 預設值為 0.0f。 此值的範圍大於或等於0.0f。 |
D3DRS_POINTSCALE_C 浮點基本類型控制距離型大小衰減的浮點值。 只有在D3DRS_POINTSCALEENABLE為 TRUE 時,才會使用中。 預設值為 0.0f。 此值的範圍大於或等於0.0f。 |
D3DRS_MULTISAMPLEANTIALIAS 布爾值,決定使用多重取樣轉譯目標緩衝區時,如何計算個別樣本。 當設定為 TRUE 時,會計算多個樣本,以便針對每個多個樣本在不同的樣本位置取樣來執行完整場景反鋸齒。 當設定為 FALSE 時,會以相同的樣本值寫入多個樣本,在圖元中心取樣,這允許非反鋸齒轉譯至多重取樣緩衝區。 當轉譯為單一範例緩衝區時,這個轉譯狀態沒有任何作用。 預設值為 TRUE。 |
D3DRS_MULTISAMPLEMASK 此遮罩中的每個位,從 LSB () 至少有效位開始,控制多重取樣轉譯目標中其中一個樣本的修改。 因此,針對 8 個樣本的轉譯目標,低位元組包含八個樣本的八個寫入啟用。 當轉譯為單一範例緩衝區時,這個轉譯狀態沒有任何作用。 預設值為 0xFFFFFFFF。 此轉譯狀態可讓您使用多重取樣緩衝區做為累積緩衝區,執行幾何的多階段轉譯,其中每個傳遞都會更新樣本子集。 如果有 n 個多重取樣和已啟用 k 的樣本,則呈現的影像產生的濃度應該是 k/n。 每個圖元的每個元件 RGB 都會以 k/n 來分解。 |
D3DRS_PATCHEDGESTYLE 設定修補邊緣是否會使用浮點數樣式鑲嵌。 |
D3DRS_DEBUGMONITORTOKEN 僅設定偵錯監視器。 |
D3DRS_POINTSIZE_MAX 浮點數,指定將固定點 Sprite 的大小上限。 此值必須小於或等於 D3DCAPS9 的 MaxPointSize 成員,且大於或等於D3DRS_POINTSIZE_MIN。 預設值為 64.0。 |
D3DRS_INDEXEDVERTEXBLENDENABLE 布爾值,可啟用或停用已編製索引的頂點混合。 預設值為 FALSE。 當設定為 TRUE 時,會啟用已編製索引的頂點混合。 當設定為 FALSE 時,索引頂點混合會停用。 如果啟用此轉譯狀態,用戶必須將矩陣索引當做封裝的 DWORD 與每個頂點傳遞。 停用轉譯狀態並透過D3DRS_VERTEXBLEND狀態啟用頂點混合時,相當於在每個頂點中擁有矩陣索引0、1、2、3。 |
D3DRS_COLORWRITEENABLE UINT 值,可針對轉譯目標色彩緩衝區啟用個別通道寫入。 設定位會導致在 3D 轉譯期間更新色彩通道。 清除位會導致色彩通道不受影響。 |
D3DRS_TWEENFACTOR 控制 tween 因數的浮點數。 |
D3DRS_BLENDOP 當Alpha混合轉譯狀態D3DRS_ALPHABLENDENABLE設定為TRUE時,用來選取套用算術運算的值。 如果不支援D3DPMISCCAPS_BLENDOP裝置功能,則會執行D3DBLENDOP_ADD。 |
D3DRS_POSITIONDEGREE N 修補程式位置插補度。 這些值可以D3DDEGREE_CUBIC (默认) 或D3DDEGREE_LINEAR。 |
D3DRS_NORMALDEGREE N 修補一般插補度。 這些值可以D3DDEGREE_LINEAR (默认) 或D3DDEGREE_QUADRATIC。 |
D3DRS_SCISSORTESTENABLE TRUE 表示啟用剪刀測試,並停用 FALSE。 預設值為 FALSE。 |
D3DRS_SLOPESCALEDEPTHBIAS 用來判斷可套用多少偏差來共同平面基本類型,以減少 z-fighting。 預設值為 0。 |
D3DRS_ANTIALIASEDLINEENABLE TRUE 表示啟用行反鋸齒,FALSE 表示停用行反鋸齒。 預設值為 FALSE。 |
D3DRS_MINTESSELLATIONLEVEL 最小鑲嵌層級。 預設值為 1.0f。 |
D3DRS_MAXTESSELLATIONLEVEL 鑲嵌層級上限。 預設值為 1.0f。 |
D3DRS_ADAPTIVETESS_X 以 x 方向調適性鑲嵌的數量。 預設值為 0.0f。 |
D3DRS_ADAPTIVETESS_Y 以 Y 方向調適性鑲嵌的數量。 預設值為 0.0f。 |
D3DRS_ADAPTIVETESS_Z 以 z 方向調適性鑲嵌的數量。 預設值為 1.0f。 |
D3DRS_ADAPTIVETESS_W 在 w 方向中調適性鑲嵌的數量。 預設值為 0.0f。 |
D3DRS_ENABLEADAPTIVETESSELLATION TRUE 表示啟用調適型鑲嵌,FALSE 表示停用。 |
D3DRS_TWOSIDEDSTENCILMODE TRUE 會啟用雙邊的 stenciling,FALSE 會停用它。 預設值為 FALSE。 應用程式應該將D3DRS_CULLMODE設定為 D3DCULL_NONE,以啟用雙面樣板模式。 如果三角形彎曲順序順序順序順序,將會使用D3DRS_STENCIL* 作業。 如果繞邊順序為反針針,則會使用D3DRS_CCW_STENCIL* 作業。 |
D3DRS_CCW_STENCILFAIL 如果 CCW 樣板測試失敗,要執行的樣板作業。 |
D3DRS_CCW_STENCILZFAIL 如果 CCW 樣板測試通過且 z 測試失敗,則為要執行的樣板作業。 |
D3DRS_CCW_STENCILPASS 如果 CCW 樣板和 z 測試都通過,則為要執行的樣板作業。 |
D3DRS_CCW_STENCILFUNC 比較函式。 如果 ( (ref & 遮罩) 樣板函式 (樣板 & 遮罩) ) 為 TRUE,CCW 樣板測試就會通過。 |
D3DRS_COLORWRITEENABLE1 裝置的其他 ColorWriteEnable 值。 |
D3DRS_COLORWRITEENABLE2 裝置的其他 ColorWriteEnable 值。 |
D3DRS_COLORWRITEENABLE3 裝置的其他 ColorWriteEnable 值。 |
D3DRS_BLENDFACTOR Alpha 混合期間的常數混合因數。 |
D3DRS_SRGBWRITEENABLE 啟用轉譯目標寫入,以將 gamma 更正為 sRGB。 格式必須公開D3DUSAGE_SRGBWRITE。 預設值為 0。 |
D3DRS_DEPTHBIAS 用於比較深度值的浮點值。 |
D3DRS_WRAP8 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP9 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP10 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP11 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP12 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP13 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP14 請參閱D3DRS_WRAP0。 |
D3DRS_WRAP15 請參閱D3DRS_WRAP0。 |
D3DRS_SEPARATEALPHABLENDENABLE TRUE 會啟用 Alpha 色板的個別混合模式。 預設值為 FALSE。 當設定為 FALSE 時,套用至 Alpha 的轉譯目標混合因數和作業會強制與針對色彩定義的作業相同。 在未設定上限的實作上,此模式實際上會硬式連接到 FALSE D3DPMISCCAPS_SEPARATEALPHABLEND。 |
D3DRS_SRCBLENDALPHA 除非D3DRS_SEPARATEALPHABLENDENABLE為 TRUE,否則會忽略此值。 |
D3DRS_DESTBLENDALPHA 除非D3DRS_SEPARATEALPHABLENDENABLE為 TRUE,否則會忽略此值。 |
D3DRS_BLENDOPALPHA 當轉譯狀態D3DRS_SEPARATEALPHABLENDENABLE設定為 TRUE 時,用來選取套用至個別 Alpha 混合的算術運算的值。 |
D3DRS_FORCE_DWORD 強制此列舉編譯為大小為32位。 如果沒有此值,某些編譯程式會允許此列舉編譯成 32 位以外的大小。 不使用這個值。 |
備註
這些轉譯狀態僅供內部使用:
D3DRENDERSTATE_EVICTMANAGEDTEXTURES
判斷是否從記憶體收回紋理。 驅動程式會使用不含預設值的 BOOL 數據類型來偵測是否要收回。
此轉譯狀態會決定驅動程式是否會從視訊記憶體收回它所管理 (的紋理,而不是 Direct3D 運行時間所管理的紋理) 。 如果轉譯狀態值為 TRUE,驅動程式會收回紋理。 否則,驅動程式不會收回這些紋理。
D3DRENDERSTATE_SCENECAPTURE
指定畫面內擷取之幾何數據的開始場景資訊或結束場景資訊。 驅動程式會使用具有 預設值的 BOOL 數據類型來偵測場景擷取資訊。
驅動程式會先以 TRUE 回應D3DRENDERSTATE_SCENECAPTURE,以開始場景資訊,接著使用 FALSE 回應結束場景資訊,以擷取框架內的幾何數據。 如需範例實作,請參閱隨附於 Windows 驅動程式開發工具包的 permedia2 範例驅動程式 (DDK) 。 在 D3dDrawPrimitives2 呼叫中使用 D3DRENDERSTATE_SCENECAPTURE轉譯狀態會取代舊版 D3DHALCallbacks-D3dSceneCapture> 回呼例程。
請務必小心,使用D3DRENDERSTATE_SCENECAPTURE轉譯狀態,將實作舊版 D3DHALCallbacks-D3dSceneCapture> 回呼例程的驅動程式更新為一個。 D3dSceneCapture 回呼例程會使用常數D3DHAL_SCENE_CAPTURE_START和D3DHAL_SCENE_CAPTURE_END分別表示場景的開頭和結尾。 這些常數的值分別為 0 和 1。 如果您使用這些常數來取代這個轉譯狀態的 TRUE 和 FALSE ,則意義會與您想要的相反。
D3DRS_DELETERTPATCH
僅限 DirectX 8.0 和更新版本。
從記憶體中刪除矩形或三角形修補程式。 驅動程式會使用不含預設值的 DWORD 資料類型來偵測要刪除的修補程式。
此轉譯狀態會通知驅動程式要刪除修補程式。 這個轉譯狀態的值是受影響的修補程式句柄。 所有快取的信息都應該釋放,而且應該從驅動程式的修補程式句柄數據表中移除句柄。 應用程式看不到此轉譯狀態,但在應用程式呼叫 DeletePatch 函式時,會在內部產生。 只有在 DeletePatch 明確刪除修補程式時,才會將此轉譯狀態傳送至驅動程式。 當裝置損毀時,應該清除所有其他修補程式。
D3DRS_MAXPIXELSHADERINST
僅限 DirectX 9.0 和更新版本。
決定圖元著色器組合器可執行的最大指令數目。
驅動程式會使用預設值為 D3DINFINITEINSTRUCTIONS (0xffffffff) 的 DWORD 資料類型來報告圖元著色器指令的最大數目。 此最大數目取決於顯示裝置支援的圖元著色器版本,如下表所示。
版本 | 最大數目 |
---|---|
早於 2_0 | 0 |
2_0 | 從 96 到 D3DINFINITEINSTRUCTIONS |
3_0 和更新版本 | 從 2ー⁶ (0x0000ffff) 到 D3DINFINITEINSTRUCTIONS |
D3DINFINITEINSTRUCTIONS代表幾乎無限制的數量。
此轉譯狀態的有效值為 2 的數值;如果驅動程式設定任何其他整數,運行時間會使用下一個最接近的 2 個數位。
運行時間會將D3DCAPS9結構的 MaxVShaderInstructionsExecuted 成員設定為這個最大數目。
D3DRS_MAXVERTEXSHADERINST
僅限 DirectX 9.0 和更新版本。
決定頂點著色器組合器可執行的最大指令數目。
驅動程式會使用預設值為 D3DINFINITEINSTRUCTIONS (0xffffffff) 的 DWORD 資料類型來報告頂點著色器指令的最大數目。 此最大數目取決於顯示裝置支援的頂點著色器版本,如下表所示。
版本 | 最大數目 |
---|---|
早於 2_0 | 0 |
2_0 和更新版本 | 從 2ー⁶ (0x0000ffff) 到 D3DINFINITEINSTRUCTIONS |
D3DINFINITEINSTRUCTIONS代表幾乎無限制的數量。
此轉譯狀態的有效值為 2 的數值;如果驅動程式設定任何其他整數,運行時間會使用下一個最接近的 2 個數位。
運行時間會將D3DCAPS9結構的 MaxVShaderInstructionsExecuted 成員設定為這個最大數目。
驅動程式會在執行圖形轉譯時使用這些轉譯狀態。 只有驅動程式專屬的轉譯狀態才會包含在 Windows 驅動程式套件 (WDK) 檔中。 DirectX SDK 檔中包含 DirectX 應用程式可存取的轉譯狀態。 這些應用層級轉譯狀態包含這類特性,例如是否啟用Alpha混合、是否啟用混合、是否使用 Direct3D 光源,以及要使用的底紋類型。
若要更新特定的轉譯狀態,Direct3D 會儲存轉譯狀態的相關信息,然後呼叫驅動程式的 D3dDrawPrimitives2 回呼例程。 提供給驅動程式的資訊可讓它:
判斷它應該更新一或多個轉譯狀態。
識別要更新的轉譯狀態,以及新的轉譯狀態值應該是什麼。
請注意,若要接受某些轉譯狀態,驅動程式必須先前在D3DPRIMCAPS結構的相關成員中設定功能旗標。
為了指出特定的轉譯狀態更新,Direct3D 會將 D3DHAL_DP2COMMAND 結構插入命令緩衝區、將這個結構的 bCommand 成員設定為D3DDP2OP_RENDERSTATE (查看 D3DDP2OP_RENDERSTATE D3DHAL_DP2OPERATION) 的描述,並將相同結構的 wStateCount 成員設定為要更新的轉譯狀態數目。
緊接 在D3DHAL_DP2COMMAND 結構之後,Direct3D 會將一 個D3DHAL_DP2RENDERSTATE 結構插入命令緩衝區中,以便更新每個轉譯狀態。 這個 結構的 RenderState 成員會識別要變更的轉譯狀態;這個轉譯狀態的新值是在 DWORD 值) 的 dwState 成員 (或D3DVALUE值) 的 fState 成員 (中指定。
下圖顯示命令緩衝區的一部分,其中包含D3DDP2OP_RENDERSTATE命令和兩個D3DHAL_DP2RENDERSTATE結構。 三個結構的第一個表示要更新兩個轉譯狀態。 第二個結構表示D3DRENDERSTATE_FILLMODE轉譯狀態要變更為D3DFILL_SOLID。 第三個結構表示D3DRENDERSTATE_SHADEMODE轉譯狀態應該更新為D3DSHADE_GOURAUD。
其他附注
如需所有已啟用轉譯狀態類型的完整清單,請參閱 DirectX SDK 檔中的D3DTEXTURESTAGESTATETYPE、D3DTEXTUREOP和D3DTEXTUREFILTER列舉類型。
已對 DirectX 5.0 和更新版本D3DRENDERSTATETYPE列舉類型進行一些變更。 D3DRENDERSTATE_BLENDENABLE已完全移除,不過它定義為 d3dtypes.h 頭檔中的 D3DRENDERSTATE_ALPHABLENDENABLE。 如需說明,請參閱D3DRENDERSTATE_COLORKEYENABLE。 間隔 [128, 255] 中的 128 整數值會保留給紋理座標換行旗標。 這些是使用 D3DWRAP_U和 D3DWRAP_V 宏所建構。 使用旗標字會保留與大於 2D 之紋理座標的正向相容性。
多重文字宏操作和D3DRENDERSTATE_TEXTUREFACTOR覆寫 COLOR{OP,ARG1,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2}的所有個別紋理混合 (控件 ) 。
規格需求
需求 | 值 |
---|---|
標頭 | d3d9types.h (包含 D3dhal.h) |