asphyre pxl canvas的常用函數介紹

asphyre pxl是一個可用於 delphi和freePascal的跨平臺2d 3D引擎,但介紹資料很少。其中的canvas是畫布,這上面的圖形會渲染到屏幕上。

canvas有很多實用的函數,簡介如下

function Initialize: Boolean; 初始化畫布以便用於渲染。請注意,要進行實際渲染,

@假設初始化成功,則需要首先調用link(beginscene)。此結果爲@true時

成功,否則爲@false。

 

function BeginScene: Boolean; 準備畫布以開始渲染。此方法成功後,可以進行任何呈現調用。

成功時返回@true,否則返回@false。

 

procedure EndScene; 完成畫布中的渲染階段。

 

procedure PutPixel 在目標曲面上繪製具有指定位置和顏色(阿爾法混合)的單個像素。

此方法被視爲基本功能,應始終由派生類實現

 

procedure Line 在兩個指定位置之間繪製線條,並用顏色漸變填充。

此方法被視爲基本功能,應始終由派生類實現。

 

procedure LineArray 使用純色在指定頂點之間繪製一系列線條。

 

procedure WuLine 在用單色填充的指定位置之間使用@link(putpoixel)原語繪製抗鋸齒“wu line”。

 

procedure Ellipse 用給定的原點、半徑和顏色繪製橢圓。

 

procedure Circle 用給定的原點、半徑和顏色繪製圓。

 

procedure WireQuad 在指定頂點(使其成爲線框四邊形)和頂點顏色之間繪製線。注意

這不一定符合最後一個像素呈現規則)。

 

procedure WireHexagon 在六角體中的每個頂點之間繪製線。頂點與中心相距0.5像素(因此直徑

是1)在所有方向上,乘以給定的矩陣,並在

相應的頂點。六邊形的尺寸、位置和旋轉可以通過以下一種或多種方式給出:

幾個3x3矩陣相乘在一起。

 

procedure DrawIndexedTriangles 繪製一個或多個用顏色漸變填充的三角形,由頂點、顏色和索引緩衝區指定。

此方法被視爲基本功能,應始終由派生類實現。

 

procedure FillTri  繪製由給定位置和顏色指定的顏色漸變填充的三角形。

 

procedure FillQuad 使用由給定頂點和顏色指定的顏色漸變繪製四邊形。

 

procedure FillRect 使用給定的邊距和顏色指定的顏色漸變繪製矩形

 

procedure FrameRect 繪製由給定頂點和顏色指定的線條寬度爲一個像素的矩形。儘管這可能會

對於矩形以外的形狀(例如四邊形)的座標,結果可能是不可預測的。

與其他線條繪製方法不同,此方法使用填充形狀,並假定四個頂點對齊

形成矩形。生成的結果符合最後一個像素規則,可用於繪製UI元素(而

像@link(wirequad)這樣的方法可能會根據實現產生大小不正確的矩形。

 

procedure HorizLine 用指定的座標和顏色漸變繪製水平線。此方法使用填充形狀而不是

實際行用於生成準確的結果,並用於呈現UI元素。

 

procedure VertLine 用指定的座標和顏色漸變繪製垂直線。此方法使用填充形狀而不是

實際行用於生成準確的結果,並用於呈現UI元素。

 

procedure FillHexagon 繪製六角體,其中頂點與中心相距0.5像素(因此直徑爲1),在所有方向上,

乘以給定的矩陣,並在相應的頂點處填充六種顏色的漸變。尺寸,

六角形的位置和旋轉可以用一個或多個3x3矩陣的組合乘以

一起。

 

procedure FillArc 在給定位置和半徑處繪製填充弧。弧以@code(initangle)開始,以

@code(endangle)(以弧度表示),細分爲@code(steps)中指定的三角形數。弧的形狀是

填充了四種顏色的漸變。

 

procedure FillEllipse 在給定位置和半徑處繪製實心橢圓。橢圓被細分爲若干三角形。

在@code(步驟)中指定。橢圓的形狀由四種顏色的漸變填充。

 

procedure FillCircle 在給定位置和半徑處繪製實心圓。圓被細分爲若干三角形。

在@code(步驟)中指定。圓的形狀由四種顏色的漸變填充。

 

procedure FillRibbon 在給定的內半徑和外半徑之間的位置繪製填充色帶。功能區開始於

@代碼(initangle)並以@code(endangle)結尾(以弧度表示),細分爲在

@代碼(步驟)。絲帶的形狀填充了四種顏色的漸變。

 

procedure QuadHole 在給定的位置和大小繪製一個填充矩形,其中給定的位置和大小有一個孔(橢圓形式)

中心和半徑。孔的質量由@code(steps)的值(以細分數表示)定義。

整個形狀由矩形邊緣的外部顏色和內部顏色開始填充漸變。

在孔的邊緣結束。此形狀對於突出顯示屏幕上的項目特別有用

使整個區域變暗,除了孔內的區域。

 

procedure DrawTexturedTriangles 繪製一個或多個由頂點、紋理座標和顏色漸變填充的三角形,

顏色和索引緩衝區。

 

procedure UseTexture 定義下一次調用@link(texquad)時要使用的指定紋理。紋理內部的座標是

在[0..1]範圍內的邏輯單元中定義

 

procedure UseTexturePx 定義下一次調用@link(texquad)時要使用的指定紋理。紋理內部的座標是

使用浮點座標以像素定義。

 

procedure UseImage 定義下一次調用@link(texquad)時要使用的指定圖像。如果圖像有多個紋理,則

將使用第一個。

 

procedure UseImage(const Image: TCustomCanvasImage; const Mapping: TQuad;

      const TextureIndex: Integer = 0); 定義指定的圖像及其紋理之一,以便在下次調用@link(texquad)時使用。座標系

紋理內部以[0..1]範圍內的邏輯單位定義。

 

procedure UseImagePx 定義指定的圖像及其紋理之一,以便在下次調用@link(texquad)時使用。座標系

紋理內部使用浮點座標以像素定義。

 

procedure UseImageRegion 定義要在下次調用@link(texquad)時使用的圖像的指定區域。只有一部分

該區域用於呈現由給定座標定義的;這些座標也可以鏡像

如果需要,水平和/或垂直翻轉。如果圖像沒有或只有一個圖案,則

@代碼(區域)應設置爲零;在這種情況下,將使用整個紋理。

 

procedure TexQuad 在給定頂點繪製紋理矩形並乘以指定的四種顏色漸變。質地必須

在此調用之前,通過@code(usetexture[…])或@code(useimage[…])調用之一進行設置。每一個調用

@code(texquad)必須有前面的@code(usetexture[…])或@code(useimage[…])調用才能指定圖像

或紋理。在應用之前,渲染紋理的所有像素都將乘以漸變顏色。

阿爾法混合。如果紋理不存在alpha通道,則將使用漸變的alpha值。

 

procedure Flush 刷新畫布緩存並在目標圖面上顯示掛起的基元。這對

在開始渲染(例如,3D場景)之前,請確保畫布緩存中沒有保留任何內容。

 

procedure Reset; 重置畫布操作所需的所有狀態。當自定義狀態更改

製作(例如,在3D場景中)以便將畫布恢復到其工作狀態,該方法應調用

 

function SetPalette 設置用於呈現8位索引圖像的調色板。對這類圖像的支持取決於

供應商和平臺。成功時返回@true,否則返回@false。

 

procedure ResetPalette; 重置調色板以用於呈現以前由@link(setpalete)設置的8位索引圖像。

 

function SetEffect 設置用於渲染的自定義明暗器效果。此功能可能依賴於提供程序和平臺。

此外,要使其工作,@italic(tcanvasattribute.customffect)應設置在@link(attributes)中。

 

property Parent: 提供對畫布父級的訪問(如果有)。

 

property CacheStall: Integer read FCacheStall; 上次呈現幀期間重設呈現緩存的次數。每次緩存重置通常是

耗時的操作如此之多的此類事件可能會損害應用程序的呈現

性能。如果這個參數在渲染場景中非常高,則渲染代碼應該

爲了更好地對圖像、形狀和混合類型進行分組而進行修改。

 

property ClipRect: TIntRect 將在其中進行渲染的剪切矩形。這對於將渲染限制爲

表面的某一部分。

 

property Attributes: TCanvasAttributes 定義影響渲染行爲的一個或多個畫布屬性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章