rs_allocation.rsh
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2011 The Android Open Source Project
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00023 #ifndef __RS_ALLOCATION_RSH__
00024 #define __RS_ALLOCATION_RSH__
00025 
00031 extern rs_allocation __attribute__((overloadable))
00032     rsGetAllocation(const void *);
00033 
00039 extern uint32_t __attribute__((overloadable))
00040     rsAllocationGetDimX(rs_allocation);
00041 
00047 extern uint32_t __attribute__((overloadable))
00048     rsAllocationGetDimY(rs_allocation);
00049 
00055 extern uint32_t __attribute__((overloadable))
00056     rsAllocationGetDimZ(rs_allocation);
00057 
00063 extern uint32_t __attribute__((overloadable))
00064     rsAllocationGetDimLOD(rs_allocation);
00065 
00071 extern uint32_t __attribute__((overloadable))
00072     rsAllocationGetDimFaces(rs_allocation);
00073 
00074 #if (defined(RS_VERSION) && (RS_VERSION >= 14))
00075 
00089 extern void __attribute__((overloadable))
00090     rsAllocationCopy1DRange(rs_allocation dstAlloc,
00091                             uint32_t dstOff, uint32_t dstMip,
00092                             uint32_t count,
00093                             rs_allocation srcAlloc,
00094                             uint32_t srcOff, uint32_t srcMip);
00095 
00117 extern void __attribute__((overloadable))
00118     rsAllocationCopy2DRange(rs_allocation dstAlloc,
00119                             uint32_t dstXoff, uint32_t dstYoff,
00120                             uint32_t dstMip,
00121                             rs_allocation_cubemap_face dstFace,
00122                             uint32_t width, uint32_t height,
00123                             rs_allocation srcAlloc,
00124                             uint32_t srcXoff, uint32_t srcYoff,
00125                             uint32_t srcMip,
00126                             rs_allocation_cubemap_face srcFace);
00127 
00128 #endif //defined(RS_VERSION) && (RS_VERSION >= 14)
00129 
00133 extern const void * __attribute__((overloadable))
00134     rsGetElementAt(rs_allocation, uint32_t x);
00138 extern const void * __attribute__((overloadable))
00139     rsGetElementAt(rs_allocation, uint32_t x, uint32_t y);
00143 extern const void * __attribute__((overloadable))
00144     rsGetElementAt(rs_allocation, uint32_t x, uint32_t y, uint32_t z);
00145 
00146 // New API's
00147 #if (defined(RS_VERSION) && (RS_VERSION >= 16))
00148 
00153 extern const void __attribute__((overloadable))
00154     rsAllocationIoSend(rs_allocation a);
00155 
00160 extern const void __attribute__((overloadable))
00161     rsAllocationIoReceive(rs_allocation a);
00162 
00163 
00169 extern rs_element __attribute__((overloadable))
00170     rsAllocationGetElement(rs_allocation a);
00171 
00178 extern const float4 __attribute__((overloadable))
00179     rsSample(rs_allocation a, rs_sampler s, float location);
00189 extern const float4 __attribute__((overloadable))
00190     rsSample(rs_allocation a, rs_sampler s, float location, float lod);
00191 
00198 extern const float4 __attribute__((overloadable))
00199     rsSample(rs_allocation a, rs_sampler s, float2 location);
00200 
00210 extern const float4 __attribute__((overloadable))
00211     rsSample(rs_allocation a, rs_sampler s, float2 location, float lod);
00212 
00213 #endif // (defined(RS_VERSION) && (RS_VERSION >= 16))
00214 
00215 #endif
00216