D3DRENDERSTATETYPE列舉 (d3d9types.h)
D3DRENDERSTATETYPE列舉類型會列出各種屬性或轉譯狀態。 驅動程序獨佔使用的D3DRENDERSTATETYPE列舉值可以指定轉譯資訊或紋理屬性。 顯示驅動程式會使用下列轉譯狀態:
語法
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 座標)。 在以範圍為基礎的霧中,所有霧方法都會如往常運作,不同之處在於它們會使用範圍,而不是計算中的深度。 Range 是用於霧運算的正確因素,但深度通常會改用,因為範圍對於計算和深度而言相當耗時,因此通常已可供使用。 使用深度來計算霧對周邊對象的霧度會隨著觀眾的眼睛移動而改變的不理想效果,在此情況下,深度變化和範圍會保持不變。 因為目前沒有硬體支援以每像素範圍為基礎的霧,因此範圍修正僅適用於頂點霧。 |
D3DRS_STENCILENABLE TRUE 表示啟用 stenciling 或 FALSE 來停用 stenciling。 預設值為 FALSE。 |
D3DRS_STENCILFAIL D3DSTENCILOP 列舉型別,指定要在樣板測試失敗時執行的樣板作業。 預設值為 D3DSTENCILOP_KEEP。 |
D3DRS_STENCILZFAIL D3DSTENCILOP列舉型別,指定樣板測試通過且深度測試失敗時所要執行的樣板作業。 |
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 光源計算的 Emissive 色彩來源。 |
D3DRS_VERTEXBLEND 要用來執行幾何混合的矩陣數目,如果有的話。 |
D3DRS_CLIPPLANEENABLE 啟用或停用使用者定義的裁剪平面。 有效值為任何 DWORD,其中每個位的狀態(設定或未設定)都會切換對應使用者定義裁剪平面的啟用狀態。 最小有效位 (位元 0) 會控制索引 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 啟用或停用索引頂點混合的bool值。 預設值為 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 會啟用雙面的強制功能,FALSE 會停用它。 預設值為 FALSE。 應用程式應將D3DRS_CULLMODE設定為 D3DCULL_NONE,以啟用雙面樣板模式。 如果三角形繞行順序順序順序,則會使用D3DRS_STENCIL* 作業。 如果纏繞順序為逆時針,則會使用D3DRS_CCW_STENCIL* 作業。 |
D3DRS_CCW_STENCILFAIL 如果 CCW 樣板測試失敗,要執行的樣板作業。 |
D3DRS_CCW_STENCILZFAIL 如果 CCW 樣板測試通過且 z-test 失敗,則為要執行的樣板作業。 |
D3DRS_CCW_STENCILPASS 如果 CCW 樣板和 z 測試都通過,則執行樣板作業。 |
D3DRS_CCW_STENCILFUNC 比較函式。 CCW 樣板測試通過(ref & mask) 樣板函式(樣板 & 遮罩)為 TRUE。 |
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 的轉譯目標混合因數和作業會強制與針對色彩定義的相同。 在未設定上限D3DPMISCCAPS_SEPARATEALPHABLEND的實作上,此模式實際上會硬連到 FALSE。 |
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 來偵測場景擷取資訊。
驅動程式會先使用 TRUE 回應D3DRENDERSTATE_SCENECAPTURE,以便開始場景資訊,接著使用 FALSE,以擷取框架內的幾何數據。 如需範例實作,請參閱隨附於 Windows 驅動程式開發工具包 (DDK) 的 permedia2 範例驅動程式。 在 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 函式時,會在內部產生。 只有當 DeletePa tch 明確刪除修補程式時,才會將此轉譯狀態傳送至驅動程式。 當裝置損毀時,應該清除所有其他修補程式。
D3DRS_MAXPIXELSHADERINST
DirectX 9.0 和更新版本。
決定圖元著色器組合器可以執行的指令數目上限。
驅動程式會使用預設值為 D3DINFINITEINSTRUCTIONS 的 DWORD 資料類型(0xffffffff)來報告圖元著色器指令數目上限。 此最大數目取決於顯示裝置支援的圖元著色器版本,如下表所示。
版本 | 最大數目 |
---|---|
早於 2_0 | 0 |
2_0 | 從 96 到 D3DINFINITEINSTRUCTIONS |
3_0 和更新版本 | 從 2ー⁶ (0x0000ffff) 到 D3DINFINITEINSTRUCTIONS |
D3DINFINITEINSTRUCTIONS代表幾乎無限制的數量。
這個轉譯狀態的有效值為 2 的數值;如果驅動程式設定任何其他整數,運行時間會使用 2 個數位的下一個最接近的電源。
運行時間會將D3DCAPS9結構的 MaxVShaderInstructionsExecuted 成員設為此最大數目。
D3DRS_MAXVERTEXSHADERINST
DirectX 9.0 和更新版本。
決定頂點著色器組合器可執行的最大指令數目。
驅動程式會使用預設值為 D3DINFINITEINSTRUCTIONS 的 DWORD 數據類型(0xffffffff),來報告頂點著色器指令數目上限。 此最大數目取決於顯示裝置支援的頂點著色器版本,如下表所示。
版本 | 最大數目 |
---|---|
早於 2_0 | 0 |
2_0 和更新版本 | 從 2ー⁶ (0x0000ffff) 到 D3DINFINITEINSTRUCTIONS |
D3DINFINITEINSTRUCTIONS代表幾乎無限制的數量。
這個轉譯狀態的有效值為 2 的數值;如果驅動程式設定任何其他整數,運行時間會使用 2 個數位的下一個最接近的電源。
運行時間會將D3DCAPS9結構的 MaxVShaderInstructionsExecuted 成員設為此最大數目。
驅動程式在執行圖形轉譯時會使用這些轉譯狀態。 Windows 驅動程式套件 (WDK) 檔中只會包含驅動程式特定的轉譯狀態。 DirectX SDK 檔中包含 DirectX 應用程式可存取的轉譯狀態。 這些應用層級轉譯狀態包括是否啟用 Alpha 混合、是否啟用 der、是否使用 Direct3D 光源,以及要使用的底紋類型等特性。
若要更新特定的轉譯狀態,Direct3D 會儲存轉譯狀態的相關信息,然後呼叫驅動程式的 D3dDrawPrimitives2 回呼例程。 提供給驅動程式的資訊可讓它:
判斷它應該更新一或多個轉譯狀態。
識別要更新的轉譯狀態,以及新的轉譯狀態值應該是什麼。
請注意,若要接受特定轉譯狀態,驅動程式必須先前在D3DPRIMCAPS結構的相關成員中設定功能旗標。
為了指出特定的轉譯狀態更新,Direct3D 會將 D3DHAL_DP2COMMAND 結構插入命令緩衝區,將 bCommand 成員設定為D3DDP2OP_RENDERSTATE (請參閱 D3DHAL_DP2OPERATION中D3DDP2OP_RENDERSTATE的描述),並將相同結構的 wStateCount 成員設定為要更新的轉譯狀態數目。
緊接在 D3DHAL_DP2COMMAND 結構之後,Direct3D 會將一個 D3DHAL_DP2RENDERSTATE 結構插入命令緩衝區,以便更新每個轉譯狀態。 這個結構的 RenderState 成員會識別要變更的轉譯狀態;這個轉譯狀態的新值是在 dwState 成員 (針對 DWORD 值) 或 fState 成員中指定 (針對 D3DVALUE 值)。
下圖顯示命令緩衝區的一部分,其中包含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,ARG2} & ALPHA{OP,ARG1,ARG2})。
要求
要求 | 價值 |
---|---|
標頭 | d3d9types.h (包括 D3dhal.h) |