Love2D APICanvas本页总览Canvas 描述: Canvas 用于离屏渲染。将其视为您可以绘制的不可见屏幕,但只有将其绘制到实际可见屏幕上时,它才会可见。它也称为 "render to texture"。 release 类型: 函数。 描述: 销毁对象的 Lua 引用。如果该对象未被任何其他 LÖVE 对象或线程引用,则该对象将被完全删除。 这个方法可以用来立即清理资源,而不需要等待Lua的垃圾收集器。 签名: release: function(self: Canvas): boolean 返回值: 返回类型描述boolean如果对象已通过此调用释放,则为 true;如果先前已释放过该对象,则为 false。 type 类型: 函数。 描述: 获取字符串形式的对象类型。 签名: type: function(self: Canvas): string 返回值: 返回类型描述string字符串类型。 Of 类型: 函数。 描述: 检查对象是否属于某种类型。如果对象的层次结构中具有指定名称的类型,则此函数将返回 true。 签名: typeOf: function(self: Canvas, type_name: string): boolean 参数: 参数名类型描述type_namestring要检查的类型的名称。 返回值: 返回类型描述boolean如果对象属于指定类型,则为 true,否则为 false。 getWidth 类型: 函数。 描述: 获取纹理的宽度。 签名: getWidth: function(self: Canvas): integer 返回值: 返回类型描述integer纹理的宽度。 getHeight 类型: 函数。 描述: 获取纹理的高度。 签名: getHeight: function(self: Canvas): integer 返回值: 返回类型描述integer纹理的高度。 getDimensions 类型: 函数。 描述: 获取纹理的宽度和高度。 签名: getDimensions: function(self: Canvas): integer, integer 返回值: 返回类型描述integer纹理的宽度。integer纹理的高度。 getPixelWidth 类型: 函数。 描述: 获取纹理的宽度(以像素为单位)。 DPI 比例因子,而不是像素。使用 getWidth 进行与绘制纹理相关的计算(例如,计算原点偏移量),并且仅在专门处理像素时(例如使用 Canvas:newImageData 时)使用 getPixelWidth。 签名: getPixelWidth: function(self: Canvas): integer 返回值: 返回类型描述integer纹理的宽度,以像素为单位。 getPixelHeight 类型: 函数。 描述: 获取纹理的高度(以像素为单位)。 DPI 比例因子,而不是像素。使用 getHeight 进行与绘制纹理相关的计算(例如,计算原点偏移量),并且仅在专门处理像素时(例如使用 Canvas:newImageData 时)使用 getPixelHeight。 签名: getPixelHeight: function(self: Canvas): integer 返回值: 返回类型描述integer纹理的高度,以像素为单位。 getPixelDimensions 类型: 函数。 描述: 获取纹理的宽度和高度(以像素为单位)。 Texture:getDimensions 获取纹理的尺寸,单位是按纹理的 DPI 比例因子缩放的单位,而不是像素。使用 getDimensions 进行与绘制纹理相关的计算(例如计算原点偏移),并且仅在专门处理像素时(例如使用 Canvas:newImageData 时)使用 getPixelDimensions。 签名: getPixelDimensions: function(self: Canvas): integer, integer 返回值: 返回类型描述integer纹理的宽度,以像素为单位。integer纹理的高度,以像素为单位。 getDPIScale 类型: 函数。 描述: 获取纹理的DPI比例因子。 DPI 比例因子表示相对像素密度。 DPI 比例因子为 2 意味着纹理在每个维度上的像素密度是 DPI 比例因子为 1 的纹理的两倍(同一区域中像素数量的 4 倍)。 例如,像素尺寸为 100x100、DPI 比例因子为 2 的纹理将被绘制为 50x50。这对于高 dpi/视网膜显示器非常有用,可以轻松地交换更高或更低像素密度的图像和画布,而无需任何额外的手动缩放逻辑。 签名: getDPIScale: function(self: Canvas): number 返回值: 返回类型描述number纹理的 DPI 比例因子。 getFormat 类型: 函数。 描述: 获取纹理的像素格式。 签名: getFormat: function(self: Canvas): string 返回值: 返回类型描述string创建纹理时使用的像素格式。 getMSAA 类型: 函数。 描述: 获取绘制到画布时使用的多重采样抗锯齿 (MSAA) 样本数。 如果运行 LÖVE 的系统不支持该数字,则该数字可能与用作 love.graphics.newCanvas 参数的数字不同。 签名: getMSAA: function(self: Canvas): integer 返回值: 返回类型描述integer画布在绘制时使用的多重采样抗锯齿样本数。 getTextureType 类型: 函数。 描述: 获取纹理的类型。 签名: getTextureType: function(self: Canvas): string 返回值: 返回类型描述string纹理的类型。 getDepth 类型: 函数。 描述: 获取体积纹理的深度。对于 2D、立方体贴图和数组纹理返回 1。 签名: getDepth: function(self: Canvas): integer 返回值: 返回类型描述integer体积纹理的深度。 getLayerCount 类型: 函数。 描述: 获取数组纹理中的层数/切片数。对于 2D、立方体贴图和体积纹理,返回 1。 签名: getLayerCount: function(self: Canvas): integer 返回值: 返回类型描述integer阵列纹理中的层数。 getMipmapCount 类型: 函数。 描述: 获取纹理中包含的 mipmap 数量。如果纹理不是使用 mipmap 创建的,它将返回 1。 签名: getMipmapCount: function(self: Canvas): integer 返回值: 返回类型描述integer纹理中 mipmap 的数量。 getMipmapMode 类型: 函数。 描述: 获取创建此 Canvas 时使用的 MipmapMode。 签名: getMipmapMode: function(self: Canvas): string 返回值: 返回类型描述string创建此 Canvas 时使用的 mipmap 模式。 getMipmapFilter 类型: 函数。 描述: 获取纹理的 mipmap 过滤模式。在 11.0 之前,此方法仅适用于图像。 签名: getMipmapFilter: function(self: Canvas): string, number 返回值: 返回类型描述string在 mipmap 级别之间使用的过滤模式。如果未启用 mipmap 过滤,则为 nil。number用于确定图像在绘制时是否应使用比正常情况更多或更少详细的 mipmap 级别的值。 setMipmapFilter 类型: 函数。 描述: 设置纹理的 mipmap 过滤器模式。在 11.0 之前,此方法仅适用于图像。 -- Mipmapping 在以缩小比例绘制纹理时非常有用。它可以提高性能并减少锯齿问题。 -- 在创建时启用了 mipmaps 标志,以便 mipmap 过滤器产生任何效果。在 0.10.0 之前的版本中,最好在使用 love.graphics.newImage 创建图像后直接调用此方法,以避免某些图形驱动程序中的错误。 -- 由于硬件限制和驱动程序错误,在 0.10.0 之前的版本中,未从 CompressedData 加载的图像必须具有二维幂(64x64、512x256 等)才能使用 mipmap。 签名: setMipmapFilter: function(self: Canvas) setMipmapFilter 类型: 函数。 描述: 设置纹理的 mipmap 过滤器模式。在 11.0 之前,此方法仅适用于图像。 -- Mipmapping 在以缩小比例绘制纹理时非常有用。它可以提高性能并减少锯齿问题。 -- 在创建时启用了 mipmaps 标志,以便 mipmap 过滤器产生任何效果。在 0.10.0 之前的版本中,最好在使用 love.graphics.newImage 创建图像后直接调用此方法,以避免某些图形驱动程序中的错误。 -- 由于硬件限制和驱动程序错误,在 0.10.0 之前的版本中,未从 CompressedData 加载的图像必须具有二维幂(64x64、512x256 等)才能使用 mipmap。 签名: setMipmapFilter: function(self: Canvas, filter: FilterMode, sharpness?: number) 参数: 参数名类型描述filterFilterMode在 mipmap 级别之间使用的过滤模式。 'nearest' 通常会提供更好的性能。sharpnessnumber正的锐度值使纹理在绘制时使用更详细的 mipmap 级别,但会牺牲性能。负值则相反。 (默认值:0。) getDepthSampleMode 类型: 函数。 描述: 获取在着色器中从深度纹理采样时使用的比较模式。 深度纹理比较模式是高级低级功能,通常与 3D 阴影贴图一起使用。 签名: getDepthSampleMode: function(self: Canvas): string | nil 返回值: 返回类型描述string or nil在着色器中从此纹理采样时使用的比较模式,如果尚未在此纹理上调用 setDepthSampleMode,则为 nil。 (默认值:无。) setDepthSampleMode 类型: 函数。 描述: 设置从着色器中的深度纹理采样时使用的比较模式。深度纹理比较模式是高级低级功能,通常与 3D 阴影贴图一起使用。 在着色器中使用具有比较模式设置的深度纹理时,必须将其声明为sampler2DShadow 并在GLSL 3 着色器中使用。在着色器中访问纹理的结果将返回一个介于 0 和 1 之间的浮点数,与通过比较操作的测试集的样本数量成正比(如果启用双线性过滤,最多将使用 4 个样本)。 深度纹理比较只能与可读的深度格式画布一起使用。 签名: setDepthSampleMode: function(self: Canvas, mode?: string) 参数: 参数名类型描述modestring在着色器中从此纹理采样时使用的比较模式。 generateMipmaps 类型: 函数。 描述: 根据最高分辨率 mipmap 级别的内容为画布生成 mipmap。 创建画布时必须将 mipmap 设置为除 'none' 之外的 MipmapMode,此函数才能正常工作。仅当 Canvas 不是活动渲染目标时才应调用它。 如果mipmap模式设置为'auto',当从这个Canvas切换到另一个Canvas或切换到主屏幕时,会在love.graphics.setCanvas内部自动调用此函数。 签名: generateMipmaps: function(self: Canvas) renderTo 类型: 函数。 描述: 使用函数渲染到画布。 这是 love.graphics.setCanvas 的快捷方式: canvas:renderTo( func ) 与 love.graphics.setCanvas( 画布 ) func() love.graphics.setCanvas() 签名: renderTo: function(self: Canvas, callback: function()) 参数: 参数名类型描述callbackfunction执行绘图操作的函数。 isReadable 类型: 函数。 描述: 获取是否可以绘制纹理并将其发送到着色器。 使用模板和/或深度 PixelFormat 创建的画布默认情况下不可读,除非在传递到 love.graphics.newCanvas. 的设置表中指定 Readable=true 仍然可以渲染不可读的画布。 签名: isReadable: function(self: Canvas): boolean 返回值: 返回类型描述boolean纹理是否可读。 newImageData 类型: 函数。 描述: 从画布的内容生成图像数据。 签名: newImageData: function(self: Canvas, slice?: integer, mipmap?: integer, x?: integer, y?: integer, width?: integer, height?: integer): any 参数: 参数名类型描述sliceinteger分别是立方体贴图、数组或体积类型画布的立方体贴图面索引、数组索引或深度层。对于常规 2D 画布,此参数将被忽略。mipmapinteger要使用的 mipmap 索引,用于具有 mipmap 的画布。 (默认值:1。)xinteger画布内要捕获的区域的左上角(以像素为单位)的 x 轴。yinteger画布内要捕获的区域的左上角(以像素为单位)的 y 轴。widthinteger画布内要捕获的区域的宽度(以像素为单位)。heightinteger画布内要捕获的区域的高度(以像素为单位)。 返回值: 返回类型描述any由画布内容制成的新 ImageData。 setFilter 类型: 函数。 描述: 设置纹理的过滤模式。 签名: setFilter: function(self: Canvas, min_filter: string, mag_filter?: string, anisotropy?: number) 参数: 参数名类型描述min_filterstring缩小纹理时使用的过滤器模式(在屏幕上以比其像素大小更小的尺寸渲染它)。mag_filterstring放大纹理时使用的过滤器模式(在屏幕上以比其像素大小更大的尺寸渲染它)。 (默认值:分钟。)anisotropynumber使用的各向异性过滤的最大数量。 (默认值:1。) getFilter 类型: 函数。 描述: 获取纹理的滤镜模式。 签名: getFilter: function(self: Canvas): string, string, number 返回值: 返回类型描述string缩小纹理时使用的过滤器模式(在屏幕上以比其像素大小更小的尺寸渲染它)。string放大纹理时使用的过滤器模式(在屏幕上以比其像素大小更小的尺寸渲染它)。number使用的各向异性过滤的最大量。 setWrap 类型: 函数。 描述: 设置纹理的环绕属性。 当使用大于纹理范围的四边形绘制纹理时,或者使用使用 [0, 1] 之外的纹理坐标的自定义着色器时,此函数设置纹理的重复方式。纹理可以被夹紧或设置为在水平和垂直方向上重复。 夹紧的纹理仅出现一次(纹理的边缘拉伸以填充四边形的范围),而重复的纹理则根据四边形中的空间重复多次。 签名: setWrap: function(self: Canvas, horizontal: string, vertical?: string, depth?: string): boolean 参数: 参数名类型描述horizontalstring纹理的水平环绕模式。verticalstring纹理的垂直环绕模式。 (默认:水平。)depthstring体积纹理 z 轴的包裹模式。 (默认值:水平。) getWrap 类型: 函数。 描述: 获取纹理的环绕属性。 该函数返回当前设置的纹理水平和垂直环绕模式。 签名: getWrap: function(self: Canvas): string, string, string 返回值: 返回类型描述string纹理的水平环绕模式。string纹理的垂直环绕模式。string体积纹理 z 轴的包裹模式。