mirror of
https://github.com/Insality/druid
synced 2025-06-27 18:37:45 +02:00
760 lines
27 KiB
Lua
760 lines
27 KiB
Lua
--[[
|
|
Generated with github.com/astrochili/defold-annotations
|
|
Defold 1.8.0
|
|
|
|
Resource API documentation
|
|
|
|
Functions and constants to access resources.
|
|
--]]
|
|
|
|
---@diagnostic disable: lowercase-global
|
|
---@diagnostic disable: missing-return
|
|
---@diagnostic disable: duplicate-doc-param
|
|
---@diagnostic disable: duplicate-set-field
|
|
|
|
---@class defold_api.resource
|
|
resource = {}
|
|
|
|
---BASIS_UASTC compression type
|
|
resource.COMPRESSION_TYPE_BASIS_UASTC = nil
|
|
|
|
---COMPRESSION_TYPE_DEFAULT compression type
|
|
resource.COMPRESSION_TYPE_DEFAULT = nil
|
|
|
|
---luminance type texture format
|
|
resource.TEXTURE_FORMAT_LUMINANCE = nil
|
|
|
|
---R16F type texture format
|
|
resource.TEXTURE_FORMAT_R16F = nil
|
|
|
|
---R32F type texture format
|
|
resource.TEXTURE_FORMAT_R32F = nil
|
|
|
|
---RG16F type texture format
|
|
resource.TEXTURE_FORMAT_RG16F = nil
|
|
|
|
---RG32F type texture format
|
|
resource.TEXTURE_FORMAT_RG32F = nil
|
|
|
|
---RGB type texture format
|
|
resource.TEXTURE_FORMAT_RGB = nil
|
|
|
|
---RGB16F type texture format
|
|
resource.TEXTURE_FORMAT_RGB16F = nil
|
|
|
|
---RGB32F type texture format
|
|
resource.TEXTURE_FORMAT_RGB32F = nil
|
|
|
|
---RGBA type texture format
|
|
resource.TEXTURE_FORMAT_RGBA = nil
|
|
|
|
---RGBA16F type texture format
|
|
resource.TEXTURE_FORMAT_RGBA16F = nil
|
|
|
|
---RGBA32F type texture format
|
|
resource.TEXTURE_FORMAT_RGBA32F = nil
|
|
|
|
---RGBA_ASTC_4x4 type texture format
|
|
resource.TEXTURE_FORMAT_RGBA_ASTC_4x4 = nil
|
|
|
|
---RGBA_BC3 type texture format
|
|
resource.TEXTURE_FORMAT_RGBA_BC3 = nil
|
|
|
|
---RGBA_BC7 type texture format
|
|
resource.TEXTURE_FORMAT_RGBA_BC7 = nil
|
|
|
|
---RGBA_ETC2 type texture format
|
|
resource.TEXTURE_FORMAT_RGBA_ETC2 = nil
|
|
|
|
---RGBA_PVRTC_2BPPV1 type texture format
|
|
resource.TEXTURE_FORMAT_RGBA_PVRTC_2BPPV1 = nil
|
|
|
|
---RGBA_PVRTC_4BPPV1 type texture format
|
|
resource.TEXTURE_FORMAT_RGBA_PVRTC_4BPPV1 = nil
|
|
|
|
---RGB_BC1 type texture format
|
|
resource.TEXTURE_FORMAT_RGB_BC1 = nil
|
|
|
|
---RGB_ETC1 type texture format
|
|
resource.TEXTURE_FORMAT_RGB_ETC1 = nil
|
|
|
|
---RGB_PVRTC_2BPPV1 type texture format
|
|
resource.TEXTURE_FORMAT_RGB_PVRTC_2BPPV1 = nil
|
|
|
|
---RGB_PVRTC_4BPPV1 type texture format
|
|
resource.TEXTURE_FORMAT_RGB_PVRTC_4BPPV1 = nil
|
|
|
|
---RG_BC5 type texture format
|
|
resource.TEXTURE_FORMAT_RG_BC5 = nil
|
|
|
|
---R_BC4 type texture format
|
|
resource.TEXTURE_FORMAT_R_BC4 = nil
|
|
|
|
---2D texture type
|
|
resource.TEXTURE_TYPE_2D = nil
|
|
|
|
---2D Array texture type
|
|
resource.TEXTURE_TYPE_2D_ARRAY = nil
|
|
|
|
---Cube map texture type
|
|
resource.TEXTURE_TYPE_CUBE_MAP = nil
|
|
|
|
---Constructor-like function with two purposes:
|
|
---Load the specified resource as part of loading the script
|
|
---Return a hash to the run-time version of the resource
|
|
--- This function can only be called within go.property function calls.
|
|
---@param path string|nil optional resource path string to the resource
|
|
---@return hash path a path hash to the binary version of the resource
|
|
function resource.atlas(path) end
|
|
|
|
---Constructor-like function with two purposes:
|
|
---Load the specified resource as part of loading the script
|
|
---Return a hash to the run-time version of the resource
|
|
--- This function can only be called within go.property function calls.
|
|
---@param path string|nil optional resource path string to the resource
|
|
---@return hash path a path hash to the binary version of the resource
|
|
function resource.buffer(path) end
|
|
|
|
---This function creates a new atlas resource that can be used in the same way as any atlas created during build time.
|
|
---The path used for creating the atlas must be unique, trying to create a resource at a path that is already
|
|
---registered will trigger an error. If the intention is to instead modify an existing atlas, use the resource.set_atlas
|
|
---function. Also note that the path to the new atlas resource must have a '.texturesetc' extension,
|
|
---meaning "/path/my_atlas" is not a valid path but "/path/my_atlas.texturesetc" is.
|
|
---When creating the atlas, at least one geometry and one animation is required, and an error will be
|
|
---raised if these requirements are not met. A reference to the resource will be held by the collection
|
|
---that created the resource and will automatically be released when that collection is destroyed.
|
|
---Note that releasing a resource essentially means decreasing the reference count of that resource,
|
|
---and not necessarily that it will be deleted.
|
|
---@param path string The path to the resource.
|
|
---@param table resource.atlas A table containing info about how to create the atlas. Supported entries:
|
|
---
|
|
---
|
|
---
|
|
---texture
|
|
---string | hash the path to the texture resource, e.g "/main/my_texture.texturec"
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---animations
|
|
---table a list of the animations in the atlas. Supports the following fields:
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---id
|
|
---string the id of the animation, used in e.g sprite.play_animation
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---width
|
|
---integer the width of the animation
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---height
|
|
---integer the height of the animation
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---frame_start
|
|
---integer index to the first geometry of the animation. Indices are lua based and must be in the range of 1 .. in atlas.
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---frame_end
|
|
---integer index to the last geometry of the animation (non-inclusive). Indices are lua based and must be in the range of 1 .. in atlas.
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---playback
|
|
---constant optional playback mode of the animation, the default value is go.PLAYBACK_ONCE_FORWARD
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---fps
|
|
---integer optional fps of the animation, the default value is 30
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---flip_vertical
|
|
---boolean optional flip the animation vertically, the default value is false
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---flip_horizontal
|
|
---boolean optional flip the animation horizontally, the default value is false
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---geometries
|
|
---table A list of the geometries that should map to the texture data. Supports the following fields:
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---id
|
|
---string The name of the geometry. Used when matching animations between multiple atlases
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---vertices
|
|
---table a list of the vertices in texture space of the geometry in the form {px0, py0, px1, py1, ..., pxn, pyn}
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---uvs
|
|
---table a list of the uv coordinates in texture space of the geometry in the form of {u0, v0, u1, v1, ..., un, vn}
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---indices
|
|
---table a list of the indices of the geometry in the form {i0, i1, i2, ..., in}. Each tripe in the list represents a triangle.
|
|
---
|
|
---
|
|
---
|
|
---@return hash path Returns the atlas resource path
|
|
function resource.create_atlas(path, table) end
|
|
|
|
---This function creates a new buffer resource that can be used in the same way as any buffer created during build time.
|
|
---The function requires a valid buffer created from either buffer.create or another pre-existing buffer resource.
|
|
---By default, the new resource will take ownership of the buffer lua reference, meaning the buffer will not automatically be removed
|
|
---when the lua reference to the buffer is garbage collected. This behaviour can be overruled by specifying 'transfer_ownership = false'
|
|
---in the argument table. If the new buffer resource is created from a buffer object that is created by another resource,
|
|
---the buffer object will be copied and the new resource will effectively own a copy of the buffer instead.
|
|
---Note that the path to the new resource must have the '.bufferc' extension, "/path/my_buffer" is not a valid path but "/path/my_buffer.bufferc" is.
|
|
---The path must also be unique, attempting to create a buffer with the same name as an existing resource will raise an error.
|
|
---@param path string The path to the resource.
|
|
---@param table { buffer:buffer_data, transfer_ownership:boolean|nil }|nil A table containing info about how to create the buffer. Supported entries:
|
|
---
|
|
---
|
|
---
|
|
---buffer
|
|
---buffer the buffer to bind to this resource
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---transfer_ownership
|
|
---boolean optional flag to determine wether or not the resource should take over ownership of the buffer object (default true)
|
|
---
|
|
---
|
|
---
|
|
---@return hash path Returns the buffer resource path
|
|
function resource.create_buffer(path, table) end
|
|
|
|
---Creates a new texture resource that can be used in the same way as any texture created during build time.
|
|
---The path used for creating the texture must be unique, trying to create a resource at a path that is already
|
|
---registered will trigger an error. If the intention is to instead modify an existing texture, use the resource.set_texture
|
|
---function. Also note that the path to the new texture resource must have a '.texturec' extension,
|
|
---meaning "/path/my_texture" is not a valid path but "/path/my_texture.texturec" is.
|
|
---If the texture is created without a buffer, the pixel data will be blank.
|
|
---@param path string The path to the resource.
|
|
---@param table { type:number, width:number, height:number, format:number, max_mipmaps:number|nil, compression_type:number|nil} A table containing info about how to create the texture. Supported entries:
|
|
---
|
|
---type
|
|
---number The texture type. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_TYPE_2D
|
|
---resource.TEXTURE_TYPE_CUBE_MAP
|
|
---
|
|
---
|
|
---width
|
|
---number The width of the texture (in pixels). Must be larger than 0.
|
|
---height
|
|
---number The width of the texture (in pixels). Must be larger than 0.
|
|
---format
|
|
---number The texture format, note that some of these formats might not be supported by the running device. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_FORMAT_LUMINANCE
|
|
---resource.TEXTURE_FORMAT_RGB
|
|
---resource.TEXTURE_FORMAT_RGBA
|
|
---
|
|
---These constants might not be available on the device:
|
|
---
|
|
---resource.TEXTURE_FORMAT_RGB_PVRTC_2BPPV1
|
|
---resource.TEXTURE_FORMAT_RGB_PVRTC_4BPPV1
|
|
---resource.TEXTURE_FORMAT_RGBA_PVRTC_2BPPV1
|
|
---resource.TEXTURE_FORMAT_RGBA_PVRTC_4BPPV1
|
|
---resource.TEXTURE_FORMAT_RGB_ETC1
|
|
---resource.TEXTURE_FORMAT_RGBA_ETC2
|
|
---resource.TEXTURE_FORMAT_RGBA_ASTC_4x4
|
|
---resource.TEXTURE_FORMAT_RGB_BC1
|
|
---resource.TEXTURE_FORMAT_RGBA_BC3
|
|
---resource.TEXTURE_FORMAT_R_BC4
|
|
---resource.TEXTURE_FORMAT_RG_BC5
|
|
---resource.TEXTURE_FORMAT_RGBA_BC7
|
|
---resource.TEXTURE_FORMAT_RGB16F
|
|
---resource.TEXTURE_FORMAT_RGB32F
|
|
---resource.TEXTURE_FORMAT_RGBA16F
|
|
---resource.TEXTURE_FORMAT_RGBA32F
|
|
---resource.TEXTURE_FORMAT_R16F
|
|
---resource.TEXTURE_FORMAT_RG16F
|
|
---resource.TEXTURE_FORMAT_R32F
|
|
---resource.TEXTURE_FORMAT_RG32F
|
|
---
|
|
---You can test if the device supports these values by checking if a specific enum is nil or not:
|
|
---if resource.TEXTURE_FORMAT_RGBA16F ~= nil then
|
|
--- -- it is safe to use this format
|
|
---end
|
|
---
|
|
---
|
|
---
|
|
---max_mipmaps
|
|
---number optional max number of mipmaps. Defaults to zero, i.e no mipmap support
|
|
---compression_type
|
|
---number optional specify the compression type for the data in the buffer object that holds the texture data. Will only be used when a compressed buffer has been passed into the function.
|
|
---Creating an empty texture with no buffer data is not supported as a core feature. Defaults to resource.COMPRESSION_TYPE_DEFAULT, i.e no compression. Supported values:
|
|
---
|
|
---
|
|
---COMPRESSION_TYPE_DEFAULT
|
|
---COMPRESSION_TYPE_BASIS_UASTC
|
|
---
|
|
---@param buffer buffer_data optional buffer of precreated pixel data
|
|
---@return hash path The path to the resource.
|
|
function resource.create_texture(path, table, buffer) end
|
|
|
|
---Creates a new texture resource that can be used in the same way as any texture created during build time.
|
|
---The path used for creating the texture must be unique, trying to create a resource at a path that is already
|
|
---registered will trigger an error. If the intention is to instead modify an existing texture, use the resource.set_texture
|
|
---function. Also note that the path to the new texture resource must have a '.texturec' extension,
|
|
---meaning "/path/my_texture" is not a valid path but "/path/my_texture.texturec" is.
|
|
---If the texture is created without a buffer, the pixel data will be blank.
|
|
---The difference between the async version and resource.create_texture is that the texture data will be uploaded
|
|
---in a graphics worker thread. The function will return a resource immediately that contains a 1x1 blank texture which can be used
|
|
---immediately after the function call. When the new texture has been uploaded, the initial blank texture will be deleted and replaced with the
|
|
---new texture. Be careful when using the initial texture handle handle as it will not be valid after the upload has finished.
|
|
---@param path string The path to the resource.
|
|
---@param table { type:number, width:number, height:number, format:number, max_mipmaps:number|nil, compression_type:number|nil}
|
|
---A table containing info about how to create the texture. Supported entries:
|
|
---type
|
|
---number The texture type. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_TYPE_2D
|
|
---resource.TEXTURE_TYPE_CUBE_MAP
|
|
---
|
|
---
|
|
---width
|
|
---number The width of the texture (in pixels). Must be larger than 0.
|
|
---height
|
|
---number The width of the texture (in pixels). Must be larger than 0.
|
|
---format
|
|
---number The texture format, note that some of these formats might not be supported by the running device. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_FORMAT_LUMINANCE
|
|
---resource.TEXTURE_FORMAT_RGB
|
|
---resource.TEXTURE_FORMAT_RGBA
|
|
---
|
|
---These constants might not be available on the device:
|
|
---
|
|
---resource.TEXTURE_FORMAT_RGB_PVRTC_2BPPV1
|
|
---resource.TEXTURE_FORMAT_RGB_PVRTC_4BPPV1
|
|
---resource.TEXTURE_FORMAT_RGBA_PVRTC_2BPPV1
|
|
---resource.TEXTURE_FORMAT_RGBA_PVRTC_4BPPV1
|
|
---resource.TEXTURE_FORMAT_RGB_ETC1
|
|
---resource.TEXTURE_FORMAT_RGBA_ETC2
|
|
---resource.TEXTURE_FORMAT_RGBA_ASTC_4x4
|
|
---resource.TEXTURE_FORMAT_RGB_BC1
|
|
---resource.TEXTURE_FORMAT_RGBA_BC3
|
|
---resource.TEXTURE_FORMAT_R_BC4
|
|
---resource.TEXTURE_FORMAT_RG_BC5
|
|
---resource.TEXTURE_FORMAT_RGBA_BC7
|
|
---resource.TEXTURE_FORMAT_RGB16F
|
|
---resource.TEXTURE_FORMAT_RGB32F
|
|
---resource.TEXTURE_FORMAT_RGBA16F
|
|
---resource.TEXTURE_FORMAT_RGBA32F
|
|
---resource.TEXTURE_FORMAT_R16F
|
|
---resource.TEXTURE_FORMAT_RG16F
|
|
---resource.TEXTURE_FORMAT_R32F
|
|
---resource.TEXTURE_FORMAT_RG32F
|
|
---
|
|
---You can test if the device supports these values by checking if a specific enum is nil or not:
|
|
---if resource.TEXTURE_FORMAT_RGBA16F ~= nil then
|
|
--- -- it is safe to use this format
|
|
---end
|
|
---
|
|
---
|
|
---
|
|
---max_mipmaps
|
|
---number optional max number of mipmaps. Defaults to zero, i.e no mipmap support
|
|
---compression_type
|
|
---number optional specify the compression type for the data in the buffer object that holds the texture data. Will only be used when a compressed buffer has been passed into the function.
|
|
---Creating an empty texture with no buffer data is not supported as a core feature. Defaults to resource.COMPRESSION_TYPE_DEFAULT, i.e no compression. Supported values:
|
|
---
|
|
---
|
|
---COMPRESSION_TYPE_DEFAULT
|
|
---COMPRESSION_TYPE_BASIS_UASTC
|
|
---
|
|
---@param buffer buffer_data optional buffer of precreated pixel data
|
|
---@return hash path The path to the resource.
|
|
---@return resource_handle request_id The request id for the async request.
|
|
function resource.create_texture_async(path, table, buffer) end
|
|
|
|
---Constructor-like function with two purposes:
|
|
---Load the specified resource as part of loading the script
|
|
---Return a hash to the run-time version of the resource
|
|
--- This function can only be called within go.property function calls.
|
|
---@param path string|nil optional resource path string to the resource
|
|
---@return hash path a path hash to the binary version of the resource
|
|
function resource.font(path) end
|
|
|
|
---Returns the atlas data for an atlas
|
|
---@param path hash|string The path to the atlas resource
|
|
---@return resource.atlas data A table with the following entries:
|
|
---
|
|
---texture
|
|
---geometries
|
|
---animations
|
|
---
|
|
---See resource.set_atlas for a detailed description of each field
|
|
function resource.get_atlas(path) end
|
|
|
|
---gets the buffer from a resource
|
|
---@param path hash|string The path to the resource
|
|
---@return buffer_data buffer The resource buffer
|
|
function resource.get_buffer(path) end
|
|
|
|
---Gets render target info from a render target resource path or a render target handle
|
|
---@param path hash|string|resource_handle The path to the resource or a render target handle
|
|
---@return { handle:resource_handle, attachments:{ handle:resource_handle, width:number, height:number, depth:number, mipmaps:number, type:number, buffer_type:number }[] } table A table containing info about the render target:
|
|
---
|
|
---handle
|
|
---handle the opaque handle to the texture resource
|
|
---'attachments'
|
|
---table a table of attachments, where each attachment contains the following entries:
|
|
---handle
|
|
---handle the opaque handle to the texture resource
|
|
---width
|
|
---integer width of the texture
|
|
---height
|
|
---integer height of the texture
|
|
---depth
|
|
---integer depth of the texture (i.e 1 for a 2D texture and 6 for a cube map)
|
|
---mipmaps
|
|
---integer number of mipmaps of the texture
|
|
---type
|
|
---number The texture type. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_TYPE_2D
|
|
---resource.TEXTURE_TYPE_CUBE_MAP
|
|
---resource.TEXTURE_TYPE_2D_ARRAY
|
|
---
|
|
---
|
|
---buffer_type
|
|
---number The attachment buffer type. Supported values:
|
|
---
|
|
---
|
|
---resource.BUFFER_TYPE_COLOR0
|
|
---resource.BUFFER_TYPE_COLOR1
|
|
---resource.BUFFER_TYPE_COLOR2
|
|
---resource.BUFFER_TYPE_COLOR3
|
|
---resource.BUFFER_TYPE_DEPTH
|
|
---resource.BUFFER_TYPE_STENCIL
|
|
---
|
|
function resource.get_render_target_info(path) end
|
|
|
|
---Gets the text metrics from a font
|
|
---@param url hash the font to get the (unscaled) metrics from
|
|
---@param text string text to measure
|
|
---@param options { width:number|nil, leading:number|nil, tracking:number|nil, line_break:boolean|nil}|nil A table containing parameters for the text. Supported entries:
|
|
---
|
|
---width
|
|
---integer The width of the text field. Not used if line_break is false.
|
|
---leading
|
|
---number The leading (default 1.0)
|
|
---tracking
|
|
---number The tracking (default 0.0)
|
|
---line_break
|
|
---boolean If the calculation should consider line breaks (default false)
|
|
---
|
|
---@return { width:number, height:number, max_ascent:number, max_descent:number } metrics a table with the following fields:
|
|
---
|
|
---width
|
|
---height
|
|
---max_ascent
|
|
---max_descent
|
|
---
|
|
function resource.get_text_metrics(url, text, options) end
|
|
|
|
---Gets texture info from a texture resource path or a texture handle
|
|
---@param path hash|string|resource_handle The path to the resource or a texture handle
|
|
---@return { handle:resource_handle, width:number, height:number, depth:number, mipmaps:number, type:number } table A table containing info about the texture:
|
|
---
|
|
---handle
|
|
---handle the opaque handle to the texture resource
|
|
---width
|
|
---integer width of the texture
|
|
---height
|
|
---integer height of the texture
|
|
---depth
|
|
---integer depth of the texture (i.e 1 for a 2D texture and 6 for a cube map)
|
|
---mipmaps
|
|
---integer number of mipmaps of the texture
|
|
---type
|
|
---number The texture type. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_TYPE_2D
|
|
---resource.TEXTURE_TYPE_CUBE_MAP
|
|
---resource.TEXTURE_TYPE_2D_ARRAY
|
|
---
|
|
function resource.get_texture_info(path) end
|
|
|
|
---Loads the resource data for a specific resource.
|
|
---@param path string The path to the resource
|
|
---@return buffer_data buffer Returns the buffer stored on disc
|
|
function resource.load(path) end
|
|
|
|
---Constructor-like function with two purposes:
|
|
---Load the specified resource as part of loading the script
|
|
---Return a hash to the run-time version of the resource
|
|
--- This function can only be called within go.property function calls.
|
|
---@param path string|nil optional resource path string to the resource
|
|
---@return hash path a path hash to the binary version of the resource
|
|
function resource.material(path) end
|
|
|
|
---Release a resource.
|
|
--- This is a potentially dangerous operation, releasing resources currently being used can cause unexpected behaviour.
|
|
---@param path hash|string The path to the resource.
|
|
function resource.release(path) end
|
|
|
|
---Sets the resource data for a specific resource
|
|
---@param path string|hash The path to the resource
|
|
---@param buffer buffer_data The buffer of precreated data, suitable for the intended resource type
|
|
function resource.set(path, buffer) end
|
|
|
|
---Sets the data for a specific atlas resource. Setting new atlas data is specified by passing in
|
|
---a texture path for the backing texture of the atlas, a list of geometries and a list of animations
|
|
---that map to the entries in the geometry list. The geometry entries are represented by three lists:
|
|
---vertices, uvs and indices that together represent triangles that are used in other parts of the
|
|
---engine to produce render objects from.
|
|
---Vertex and uv coordinates for the geometries are expected to be
|
|
---in pixel coordinates where 0,0 is the top left corner of the texture.
|
|
---There is no automatic padding or margin support when setting custom data,
|
|
---which could potentially cause filtering artifacts if used with a material sampler that has linear filtering.
|
|
---If that is an issue, you need to calculate padding and margins manually before passing in the geometry data to
|
|
---this function.
|
|
---@param path hash|string The path to the atlas resource
|
|
---@param table resource.atlas A table containing info about the atlas. Supported entries:
|
|
---
|
|
---
|
|
---
|
|
---texture
|
|
---string | hash the path to the texture resource, e.g "/main/my_texture.texturec"
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---animations
|
|
---table a list of the animations in the atlas. Supports the following fields:
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---id
|
|
---string the id of the animation, used in e.g sprite.play_animation
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---width
|
|
---integer the width of the animation
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---height
|
|
---integer the height of the animation
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---frame_start
|
|
---integer index to the first geometry of the animation. Indices are lua based and must be in the range of 1 .. in atlas.
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---frame_end
|
|
---integer index to the last geometry of the animation (non-inclusive). Indices are lua based and must be in the range of 1 .. in atlas.
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---playback
|
|
---constant optional playback mode of the animation, the default value is go.PLAYBACK_ONCE_FORWARD
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---fps
|
|
---integer optional fps of the animation, the default value is 30
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---flip_vertical
|
|
---boolean optional flip the animation vertically, the default value is false
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---flip_horizontal
|
|
---boolean optional flip the animation horizontally, the default value is false
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---geometries
|
|
---table A list of the geometries that should map to the texture data. Supports the following fields:
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---vertices
|
|
---table a list of the vertices in texture space of the geometry in the form {px0, py0, px1, py1, ..., pxn, pyn}
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---uvs
|
|
---table a list of the uv coordinates in texture space of the geometry in the form of {u0, v0, u1, v1, ..., un, vn}
|
|
---
|
|
---
|
|
---
|
|
---
|
|
---indices
|
|
---table a list of the indices of the geometry in the form {i0, i1, i2, ..., in}. Each tripe in the list represents a triangle.
|
|
---
|
|
---
|
|
---
|
|
function resource.set_atlas(path, table) end
|
|
|
|
---Sets the buffer of a resource. By default, setting the resource buffer will either copy the data from the incoming buffer object
|
|
---to the buffer stored in the destination resource, or make a new buffer object if the sizes between the source buffer and the destination buffer
|
|
---stored in the resource differs. In some cases, e.g performance reasons, it might be beneficial to just set the buffer object on the resource without copying or cloning.
|
|
---To achieve this, set the transfer_ownership flag to true in the argument table. Transferring ownership from a lua buffer to a resource with this function
|
|
---works exactly the same as resource.create_buffer: the destination resource will take ownership of the buffer held by the lua reference, i.e the buffer will not automatically be removed
|
|
---when the lua reference to the buffer is garbage collected.
|
|
---Note: When setting a buffer with transfer_ownership = true, the currently bound buffer in the resource will be destroyed.
|
|
---@param path hash|string The path to the resource
|
|
---@param buffer buffer_data The resource buffer
|
|
---@param table { transfer_ownership: boolean|nil }|nil A table containing info about how to set the buffer. Supported entries:
|
|
---
|
|
---
|
|
---
|
|
---transfer_ownership
|
|
---boolean optional flag to determine wether or not the resource should take over ownership of the buffer object (default false)
|
|
---
|
|
---
|
|
---
|
|
function resource.set_buffer(path, buffer, table) end
|
|
|
|
---Update internal sound resource (wavc/oggc) with new data
|
|
---@param path hash|string The path to the resource
|
|
---@param buffer string A lua string containing the binary sound data
|
|
function resource.set_sound(path, buffer) end
|
|
|
|
---Sets the pixel data for a specific texture.
|
|
---@param path hash|string The path to the resource
|
|
---@param table { type:number, width:number, height:number, format:number, x:number|nil, y:number|nil, mipmap:number|nil, compression_type:number|nil} A table containing info about the texture. Supported entries:
|
|
---
|
|
---type
|
|
---number The texture type. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_TYPE_2D
|
|
---resource.TEXTURE_TYPE_CUBE_MAP
|
|
---
|
|
---
|
|
---width
|
|
---number The width of the texture (in pixels)
|
|
---height
|
|
---number The width of the texture (in pixels)
|
|
---format
|
|
---number The texture format, note that some of these formats are platform specific. Supported values:
|
|
---
|
|
---
|
|
---resource.TEXTURE_FORMAT_LUMINANCE
|
|
---resource.TEXTURE_FORMAT_RGB
|
|
---resource.TEXTURE_FORMAT_RGBA
|
|
---
|
|
---These constants might not be available on the device:
|
|
---- resource.TEXTURE_FORMAT_RGB_PVRTC_2BPPV1
|
|
---- resource.TEXTURE_FORMAT_RGB_PVRTC_4BPPV1
|
|
---- resource.TEXTURE_FORMAT_RGBA_PVRTC_2BPPV1
|
|
---- resource.TEXTURE_FORMAT_RGBA_PVRTC_4BPPV1
|
|
---- resource.TEXTURE_FORMAT_RGB_ETC1
|
|
---- resource.TEXTURE_FORMAT_RGBA_ETC2
|
|
---- resource.TEXTURE_FORMAT_RGBA_ASTC_4x4
|
|
---- resource.TEXTURE_FORMAT_RGB_BC1
|
|
---- resource.TEXTURE_FORMAT_RGBA_BC3
|
|
---- resource.TEXTURE_FORMAT_R_BC4
|
|
---- resource.TEXTURE_FORMAT_RG_BC5
|
|
---- resource.TEXTURE_FORMAT_RGBA_BC7
|
|
---- resource.TEXTURE_FORMAT_RGB16F
|
|
---- resource.TEXTURE_FORMAT_RGB32F
|
|
---- resource.TEXTURE_FORMAT_RGBA16F
|
|
---- resource.TEXTURE_FORMAT_RGBA32F
|
|
---- resource.TEXTURE_FORMAT_R16F
|
|
---- resource.TEXTURE_FORMAT_RG16F
|
|
---- resource.TEXTURE_FORMAT_R32F
|
|
---- resource.TEXTURE_FORMAT_RG32F
|
|
---You can test if the device supports these values by checking if a specific enum is nil or not:
|
|
---if resource.TEXTURE_FORMAT_RGBA16F ~= nil then
|
|
--- -- it is safe to use this format
|
|
---end
|
|
---
|
|
---
|
|
---
|
|
---x
|
|
---number optional x offset of the texture (in pixels)
|
|
---y
|
|
---number optional y offset of the texture (in pixels)
|
|
---mipmap
|
|
---number optional mipmap to upload the data to
|
|
---compression_type
|
|
---number optional specify the compression type for the data in the buffer object that holds the texture data. Defaults to resource.COMPRESSION_TYPE_DEFAULT, i.e no compression. Supported values:
|
|
---
|
|
---
|
|
---COMPRESSION_TYPE_DEFAULT
|
|
---COMPRESSION_TYPE_BASIS_UASTC
|
|
---
|
|
---@param buffer buffer_data The buffer of precreated pixel data
|
|
--- To update a cube map texture you need to pass in six times the amount of data via the buffer, since a cube map has six sides!
|
|
function resource.set_texture(path, table, buffer) end
|
|
|
|
---Constructor-like function with two purposes:
|
|
---Load the specified resource as part of loading the script
|
|
---Return a hash to the run-time version of the resource
|
|
--- This function can only be called within go.property function calls.
|
|
---@param path string|nil optional resource path string to the resource
|
|
---@return hash path a path hash to the binary version of the resource
|
|
function resource.texture(path) end
|
|
|
|
---Constructor-like function with two purposes:
|
|
---Load the specified resource as part of loading the script
|
|
---Return a hash to the run-time version of the resource
|
|
--- This function can only be called within go.property function calls.
|
|
---@param path string|nil optional resource path string to the resource
|
|
---@return hash path a path hash to the binary version of the resource
|
|
function resource.tile_source(path) end
|
|
|
|
return resource |