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 定义影响渲染行为的一个或多个画布属性。

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