1c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# 2c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# Copyright (C) 2015 The Android Open Source Project 3c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# 4c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# Licensed under the Apache License, Version 2.0 (the "License"); 5c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# you may not use this file except in compliance with the License. 6c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# You may obtain a copy of the License at 7c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# 8c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# http://www.apache.org/licenses/LICENSE-2.0 9c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# 10c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# Unless required by applicable law or agreed to in writing, software 11c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# distributed under the License is distributed on an "AS IS" BASIS, 12c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# See the License for the specific language governing permissions and 14c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# limitations under the License. 15c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet# 16c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 17c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletheader: 1820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Allocation Data Access Functions 19c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 2020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet The functions below can be used to get and set the cells that comprise 2120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet an allocation. 2220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet <ul> 2320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet <li>Individual cells are accessed using the rsGetElementAt* and 2420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet @rsSetElementAt functions.</li> 2520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet <li>Multiple cells can be copied using the rsAllocationCopy* and 2620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet rsAllocationV* functions.</li> 2720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet <li>For getting values through a sampler, use @rsSample.</li> 2820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet </ul> 2920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet The @rsGetElementAt and rsSetElement* functions are somewhat misnamed. 3020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet They don't get or set elements, which are akin to data types; they get 3120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet or set cells. Think of them as rsGetCellAt and and rsSetCellAt. 32c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 33c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 34c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationCopy1DRange 35c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 14 36c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 3720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation dstAlloc, "Allocation to copy cells into." 3820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t dstOff, "Offset in the destination of the first cell to be copied into." 3920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t dstMip, "Mip level in the destination allocation. 0 if mip mapping is not used." 4020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t count, "Number of cells to be copied." 4120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation srcAlloc, "Source allocation." 4220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t srcOff, "Offset in the source of the first cell to be copied." 4320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t srcMip, "Mip level in the source allocation. 0 if mip mapping is not used." 4420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Copy consecutive cells between allocations 45c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 4620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Copies the specified number of cells from one allocation to another. 47c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 48c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet The two allocations must be different. Using this function to copy whithin 49c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet the same allocation yields undefined results. 5020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 5120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet The function does not validate whether the offset plus count exceeds the size 5220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet of either allocation. Be careful! 5320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 5420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet This function should only be called between 1D allocations. Calling it 5520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet on other allocations is undefined. 56f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni 57f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni This function should not be called from inside a kernel, or from any function 58f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni that may be called directly or indirectly from a kernel. Doing so would cause a 59f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni runtime error. 60c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 61c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 62c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 63c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationCopy2DRange 64c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 14 65c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 6620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation dstAlloc, "Allocation to copy cells into." 6720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t dstXoff, "X offset in the destination of the region to be set." 6820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t dstYoff, "Y offset in the destination of the region to be set." 6920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t dstMip, "Mip level in the destination allocation. 0 if mip mapping is not used." 7020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation_cubemap_face dstFace, "Cubemap face of the destination allocation. Ignored for allocations that aren't cubemaps." 71c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t width, "Width of the incoming region to update." 72c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t height, "Height of the incoming region to update." 7320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation srcAlloc, "Source allocation." 7420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t srcXoff, "X offset in the source." 7520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t srcYoff, "Y offset in the source." 7620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t srcMip, "Mip level in the source allocation. 0 if mip mapping is not used." 7720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation_cubemap_face srcFace, "Cubemap face of the source allocation. Ignored for allocations that aren't cubemaps." 7820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Copy a rectangular region of cells between allocations 79c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 8020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Copies a rectangular region of cells from one allocation to another. 8120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet (width * heigth) cells are copied. 82c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 83c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet The two allocations must be different. Using this function to copy whithin 84c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet the same allocation yields undefined results. 8520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 8620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet The function does not validate whether the the source or destination region 8720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet exceeds the size of its respective allocation. Be careful! 8820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 8920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet This function should only be called between 2D allocations. Calling it 9020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet on other allocations is undefined. 91f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni 92f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni This function should not be called from inside a kernel, or from any function 93f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni that may be called directly or indirectly from a kernel. Doing so would cause a 94f05e4aff0c76943ffaf7a2f2ae653373e6f6384fYang Ni runtime error. 95c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 96c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 97c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 98c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationVLoadX_#2#1 99c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 22 100c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 2, 3, 4 101c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 102c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 10320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation a, "Allocation to get the data from." 10420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t x, "X offset in the allocation of the first cell to be copied from." 10520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Get a vector from an allocation of scalars 106c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 10720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet This function returns a vector composed of successive cells of the allocation. 10820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet It assumes that the allocation contains scalars. 10920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 11020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet The "X" in the name indicates that successive values are extracted by 11120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet increasing the X index. There are currently no functions to get successive 11220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet values incrementing other dimensions. Use multiple calls to rsGetElementAt() 11320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet instead. 11420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1156386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet For example, when calling rsAllocationVLoadX_int4(a, 20, 30), an int4 composed 1166386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet of a[20, 30], a[21, 30], a[22, 30], and a[23, 30] is returned. 11720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1186386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet When retrieving from a three dimensional allocations, use the x, y, z variant. 1196386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet Similarly, use the x, y variant for two dimensional allocations and x for the 1206386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet mono dimensional allocations. 12120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1226386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet For efficiency, this function does not validate the inputs. Trying to wrap 1236386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet the X index, exceeding the size of the allocation, or using indices incompatible 1246386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet with the dimensionality of the allocation yields undefined results. 12520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 12620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See also @rsAllocationVStoreX(). 127c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 128c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 129c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 130c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationVLoadX_#2#1 131c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 22 132c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 2, 3, 4 133c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 134c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 135c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 136c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 13720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t y, "Y offset in the allocation of the first cell to be copied from." 138c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 139c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 140c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 141c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationVLoadX_#2#1 142c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 22 143c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 2, 3, 4 144c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 145c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 146c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 147c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 148c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 14920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t z, "Z offset in the allocation of the first cell to be copied from." 150c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 151c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 152c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 153c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationVStoreX_#2#1 154c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 22 155c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 2, 3, 4 156c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 157c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 15820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation a, "Allocation to store the data into." 15920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: #2#1 val, "Value to be stored." 16020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t x, "X offset in the allocation of the first cell to be copied into." 16120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Store a vector into an allocation of scalars 162c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 1636386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet This function stores the entries of a vector into successive cells of an allocation. 1646386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet It assumes that the allocation contains scalars. 16520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1666386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet The "X" in the name indicates that successive values are stored by increasing 1676386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet the X index. There are currently no functions to store successive values 1686386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet incrementing other dimensions. Use multiple calls to rsSetElementAt() instead. 16920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1706386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet For example, when calling rsAllocationVStoreX_int3(a, v, 20, 30), v.x is stored 1716386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet at a[20, 30], v.y at a[21, 30], and v.z at a[22, 30]. 17220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1736386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet When storing into a three dimensional allocations, use the x, y, z variant. 1746386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet Similarly, use the x, y variant for two dimensional allocations and x for the 1756386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet mono dimensional allocations. 17620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 1776386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet For efficiency, this function does not validate the inputs. Trying to wrap the 178ffc1710c382168e74386ef87d0101de65aca91b0Jean-Luc Brouillet X index, exceeding the size of the allocation, or using indices incompatible 1796386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet with the dimensionality of the allocation yiels undefined results. 18020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 18120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See also @rsAllocationVLoadX(). 182c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 183c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 184c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 185c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationVStoreX_#2#1 186c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 22 187c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 2, 3, 4 188c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 189c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 190c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 191c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: #2#1 val 192c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 19320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t y, "Y offset in the allocation of the first cell to be copied into." 194c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 195c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 196c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 197c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsAllocationVStoreX_#2#1 198c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 22 199c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 2, 3, 4 200c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 201c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 202c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 203c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: #2#1 val 204c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 205c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 20620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: uint32_t z, "Z offset in the allocation of the first cell to be copied into." 207c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 208c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 209c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 210c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt 211c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: const void* 212c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 213c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 21420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Return a cell from an allocation 215c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 21620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet This function extracts a single cell from an allocation. 21720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 2186386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet When retrieving from a three dimensional allocations, use the x, y, z variant. 2196386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet Similarly, use the x, y variant for two dimensional allocations and x for the 2206386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet mono dimensional allocations. 22120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 2226386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet This function has two styles. One returns the address of the value using a void*, 2236386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet the other returns the actual value, e.g. rsGetElementAt() vs. rsGetElementAt_int4(). 2246386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet For primitive types, always use the latter as it is more efficient. 225c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 226c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 227c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 228c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt 229c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: const void* 230c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 231c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 232c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 233c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 234c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 235c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 236c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt 237c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: const void* 238c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 239c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 240c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 241c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t z 242c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 243c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 244c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 245c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt_#2#1 246c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 9 17 247c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 248c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 249c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 250c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 251c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 252c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletinline: 253c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet return ((#2#1 *)rsGetElementAt(a, x))[0]; 254c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 255c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 256c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 257c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt_#2#1 258c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 9 17 259c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 260c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 261c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 262c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 263c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 264c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 265c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletinline: 266c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet return ((#2#1 *)rsGetElementAt(a, x, y))[0]; 267c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 268c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 269c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 270c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt_#2#1 271c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 9 17 272c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 273c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 274c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 275c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 276c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 277c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 278c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t z 279c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletinline: 280c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet return ((#2#1 *)rsGetElementAt(a, x, y, z))[0]; 281c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 282c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 283c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 284c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt_#2#1 285c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 286c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 287c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 288c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 289c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 290c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 291c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 292c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 293c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 294c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt_#2#1 295c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 296c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 297c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 298c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 299c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 300c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 301c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 302c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 303c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 304c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 305c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAt_#2#1 306c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 307c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 308c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 309c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: #2#1 310c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 311c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 312c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 313c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t z 314c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 315c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 316c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 3176119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletfunction: rsGetElementAt_#2#1 3186119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletversion: 23 3196119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletw: 1, 2, 3, 4 3206119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillett: f16 3216119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletret: #2#1 3226119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: rs_allocation a 3236119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t x 3246119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillettest: none 3256119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletend: 3266119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillet 3276119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletfunction: rsGetElementAt_#2#1 3286119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletversion: 23 3296119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletw: 1, 2, 3, 4 3306119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillett: f16 3316119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletret: #2#1 3326119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: rs_allocation a 3336119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t x 3346119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t y 3356119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillettest: none 3366119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletend: 3376119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillet 3386119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletfunction: rsGetElementAt_#2#1 3396119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletversion: 23 3406119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletw: 1, 2, 3, 4 3416119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillett: f16 3426119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletret: #2#1 3436119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: rs_allocation a 3446119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t x 3456119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t y 3466119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t z 3476119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillettest: none 3486119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletend: 3496119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillet 350c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAtYuv_uchar_U 351c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 352c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: uchar 353c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 354c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 355c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 35620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Get the U component of an allocation of YUVs 357c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 35820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Extracts the U component of a single YUV value from a 2D allocation of YUVs. 359c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 36020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Inside an allocation, Y, U, and V components may be stored if different planes 36120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet and at different resolutions. The x, y coordinates provided here are in the 36220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet dimensions of the Y plane. 36320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 36420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See @rsGetElementAtYuv_uchar_Y(). 365c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 366c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 367c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 368c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAtYuv_uchar_V 369c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 370c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: uchar 371c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 372c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 373c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 37420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Get the V component of an allocation of YUVs 375c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 37620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Extracts the V component of a single YUV value from a 2D allocation of YUVs. 37720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 37820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Inside an allocation, Y, U, and V components may be stored if different planes 37920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet and at different resolutions. The x, y coordinates provided here are in the 38020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet dimensions of the Y plane. 381c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 38220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See @rsGetElementAtYuv_uchar_Y(). 383c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 384c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 385c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 386c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsGetElementAtYuv_uchar_Y 387c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 388c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: uchar 389c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 390c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 391c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 39220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Get the Y component of an allocation of YUVs 393c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 39420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Extracts the Y component of a single YUV value from a 2D allocation of YUVs. 39520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 39620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Inside an allocation, Y, U, and V components may be stored if different planes 39720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet and at different resolutions. The x, y coordinates provided here are in the 39820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet dimensions of the Y plane. 39920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 40020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See @rsGetElementAtYuv_uchar_U() and @rsGetElementAtYuv_uchar_V(). 401c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 402c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 403c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 404c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSample 405c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 16 406c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: float4 40720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_allocation a, "Allocation to sample from." 40820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: rs_sampler s, "Sampler state." 40920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: float location, "Location to sample from." 41020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Sample a value from a texture allocation 411c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 41220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet Fetches a value from a texture allocation in a way described by the sampler. 413c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 41420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet If your allocation is 1D, use the variant with float for location. For 2D, 41520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet use the float2 variant. 41620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 41720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See <a href='http://developer.android.com/reference/android/renderscript/Sampler.html'>android.renderscript.Sampler</a> for more details. 418c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 419c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 420c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 421c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSample 422c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 16 423c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: float4 424c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 425c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_sampler s 426c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: float location 42720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletarg: float lod, "Mip level to sample from, for fractional values mip levels will be interpolated if RS_SAMPLER_LINEAR_MIP_LINEAR is used." 428c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 429c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 430c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 431c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSample 432c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 16 433c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: float4 434c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 435c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_sampler s 436c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: float2 location 437c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 438c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 439c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 440c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSample 441c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 16 442c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: float4 443c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 444c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_sampler s 445c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: float2 location 446c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: float lod 447c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 448c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 449c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 450c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSetElementAt 451c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 452c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 453c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 454c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: void* ptr 455c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 45620b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouilletsummary: Set a cell of an allocation 457c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletdescription: 45820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet This function stores a value into a single cell of an allocation. 45920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 4606386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet When storing into a three dimensional allocations, use the x, y, z variant. 4616386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet Similarly, use the x, y variant for two dimensional allocations and x for 4626386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet the mono dimensional allocations. 46320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 4646386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet This function has two styles. One passes the value to be stored using a void*, 4656386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet the other has the actual value as an argument, e.g. rsSetElementAt() vs. 4666386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet rsSetElementAt_int4(). For primitive types, always use the latter as it is 46720b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet more efficient. 46820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet 46920b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet See also @rsGetElementAt(). 470c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 471c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 472c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 473c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSetElementAt 474c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 475c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 476c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 477c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: void* ptr 478c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 479c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 480c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 481c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 482c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 483c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSetElementAt_#2#1 484c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 485c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 486c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 487c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 488c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 489c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: #2#1 val 490c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 491c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 492c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 493c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 494c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSetElementAt_#2#1 495c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 496c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 497c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 498c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 499c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 500c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: #2#1 val 501c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 502c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 503c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 504c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 505c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 506c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletfunction: rsSetElementAt_#2#1 507c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletversion: 18 508c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletw: 1, 2, 3, 4 509c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillett: u8, u16, u32, u64, i8, i16, i32, i64, f32, f64 510c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletret: void 511c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: rs_allocation a 512c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: #2#1 val 513c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t x 514c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t y 515c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletarg: uint32_t z 516c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillettest: none 517c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletend: 5186119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillet 5196119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletfunction: rsSetElementAt_#2#1 5206119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletversion: 23 5216119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletw: 1, 2, 3, 4 5226119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillett: f16 5236119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletret: void 5246119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: rs_allocation a 5256119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: #2#1 val 5266119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t x 5276119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillettest: none 5286119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletend: 5296119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillet 5306119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletfunction: rsSetElementAt_#2#1 5316119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletversion: 23 5326119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletw: 1, 2, 3, 4 5336119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillett: f16 5346119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletret: void 5356119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: rs_allocation a 5366119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: #2#1 val 5376119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t x 5386119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t y 5396119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillettest: none 5406119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletend: 5416119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillet 5426119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletfunction: rsSetElementAt_#2#1 5436119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletversion: 23 5446119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletw: 1, 2, 3, 4 5456119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillett: f16 5466119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletret: void 5476119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: rs_allocation a 5486119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: #2#1 val 5496119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t x 5506119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t y 5516119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletarg: uint32_t z 5526119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouillettest: none 5536119da9273f88e838b2e8648bde0d40fabe51f5fJean-Luc Brouilletend: 554