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 定义影响渲染行为的一个或多个画布属性。 |
东风夜放花千树 浙ICP备19024182号-2 浙公网安备 33078202001030号
GMT+8, 2024-12-21 19:36 , Processed in 0.030094 second(s), 15 queries .
Powered X3.4
© 2001-2017