跳到主要内容

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 轴的包裹模式。