2024-08-27 17:18:55 +03:00

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