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