Difference between revisions of "Buffer.setarrayaccess"
From GiderosMobile
(Created page with "__NOTOC__ '''Available since:''' Gideros 2025.1<br/> '''Class:''' buffer_luau<br/> === Description === Sets the buffer array access. <syntaxhighlight lang="lua"> buffer.s...") |
m |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | '''Available since:''' Gideros 2025. | + | '''Available since:''' Gideros 2025.2<br/> |
'''Class:''' [[buffer_luau]]<br/> | '''Class:''' [[buffer_luau]]<br/> | ||
Line 8: | Line 8: | ||
buffer.setarrayaccess(b,dataType,dim2,dim3) | buffer.setarrayaccess(b,dataType,dim2,dim3) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | With ''setarrayaccess'' buffers can be used just like arrays. This makes accessing buffer values as an array both easier and faster. | ||
+ | |||
+ | ''dataType'' can be s8,u8,s16,u16,s32,u32,f32 and f64 (for signed int/unsigned int/float types with their bit size). | ||
+ | |||
+ | width and height allow indexing a buffer with a vector. In that case the buffer index becomes z*dim3+y*dim2+x. | ||
=== Parameters === | === Parameters === | ||
'''b''': (buffer) the buffer<br/> | '''b''': (buffer) the buffer<br/> | ||
'''dataType''': (string) one of the following: | '''dataType''': (string) one of the following: | ||
+ | *'''"s8"''': an integer number in range [-128, 127] | ||
*'''"u8"''': an integer number in range [0, 255] | *'''"u8"''': an integer number in range [0, 255] | ||
− | *'''" | + | *'''"s16"''': an integer number in range [-32,768, 32,767] |
*'''"u16"''': an integer number in range [0, 65,535] | *'''"u16"''': an integer number in range [0, 65,535] | ||
− | *'''" | + | *'''"s32"''': an integer number in range [-2,147,483,648, 2,147,483,647] |
*'''"u32"''': an integer number in range [0, 4,294,967,295] | *'''"u32"''': an integer number in range [0, 4,294,967,295] | ||
− | |||
*'''"f32"''': a single-precision floating-point number | *'''"f32"''': a single-precision floating-point number | ||
*'''"f64"''': a double-precision floating-point number | *'''"f64"''': a double-precision floating-point number |
Latest revision as of 09:04, 6 February 2025
Available since: Gideros 2025.2
Class: buffer_luau
Description
Sets the buffer array access.
buffer.setarrayaccess(b,dataType,dim2,dim3)
With setarrayaccess buffers can be used just like arrays. This makes accessing buffer values as an array both easier and faster.
dataType can be s8,u8,s16,u16,s32,u32,f32 and f64 (for signed int/unsigned int/float types with their bit size).
width and height allow indexing a buffer with a vector. In that case the buffer index becomes z*dim3+y*dim2+x.
Parameters
b: (buffer) the buffer
dataType: (string) one of the following:
- "s8": an integer number in range [-128, 127]
- "u8": an integer number in range [0, 255]
- "s16": an integer number in range [-32,768, 32,767]
- "u16": an integer number in range [0, 65,535]
- "s32": an integer number in range [-2,147,483,648, 2,147,483,647]
- "u32": an integer number in range [0, 4,294,967,295]
- "f32": a single-precision floating-point number
- "f64": a double-precision floating-point number
dim2: (number) buffer index start
dim3: (number) buffer index end
Example
local str = "Hello Gideros!"
local b = buffer.fromstring(str)
local dataType = "u8"
local dim2, dim3 = 0, 5
buffer.setarrayaccess(b, dataType, dim2, dim3)