1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 // Don't edit this file! It is auto-generated by frameworks/rs/api/generate.sh. 18 19 /* 20 * rs_object_types.rsh: Object Types 21 * 22 * The types below are used to manipulate RenderScript objects like allocations, samplers, 23 * elements, and scripts. Most of these object are created using the Java RenderScript APIs. 24 */ 25 26 #ifndef RENDERSCRIPT_RS_OBJECT_TYPES_RSH 27 #define RENDERSCRIPT_RS_OBJECT_TYPES_RSH 28 29 #define NULL ((void *)0) 30 31 // Opaque handle to a RenderScript object. Do not use this directly. 32 #ifndef __LP64__ 33 #define _RS_OBJECT_DECL \ 34 {\ 35 const int* const p;\ 36 } __attribute__((packed, aligned(4))) 37 #else 38 #define _RS_OBJECT_DECL \ 39 {\ 40 const long* const p;\ 41 const long* const unused1;\ 42 const long* const unused2;\ 43 const long* const unused3;\ 44 } 45 #endif 46 47 /* 48 * rs_element: Handle to an element 49 * 50 * An opaque handle to a RenderScript element. 51 * 52 * See android.renderscript.Element. 53 */ 54 typedef struct rs_element _RS_OBJECT_DECL rs_element; 55 56 /* 57 * rs_type: Handle to a Type 58 * 59 * An opaque handle to a RenderScript type. 60 * 61 * See android.renderscript.Type. 62 */ 63 typedef struct rs_type _RS_OBJECT_DECL rs_type; 64 65 /* 66 * rs_allocation: Handle to an allocation 67 * 68 * An opaque handle to a RenderScript allocation. 69 * 70 * See android.renderscript.Allocation. 71 */ 72 typedef struct rs_allocation _RS_OBJECT_DECL rs_allocation; 73 74 /* 75 * rs_sampler: Handle to a Sampler 76 * 77 * An opaque handle to a RenderScript sampler object. 78 * 79 * See android.renderscript.Sampler. 80 */ 81 typedef struct rs_sampler _RS_OBJECT_DECL rs_sampler; 82 83 /* 84 * rs_script: Handle to a Script 85 * 86 * An opaque handle to a RenderScript script object. 87 * 88 * See android.renderscript.ScriptC. 89 */ 90 typedef struct rs_script _RS_OBJECT_DECL rs_script; 91 92 /* 93 * rs_allocation_cubemap_face: Enum for selecting cube map faces 94 * 95 * An enum used to specify one the six faces of a cubemap. 96 */ 97 #if (defined(RS_VERSION) && (RS_VERSION >= 14)) 98 typedef enum { 99 RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0, 100 RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1, 101 RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2, 102 RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3, 103 RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4, 104 RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5 105 } rs_allocation_cubemap_face; 106 #endif 107 108 /* 109 * rs_allocation_usage_type: Bitfield to specify how an allocation is used 110 * 111 * These values are ORed together to specify which usages or memory spaces are 112 * relevant to an allocation or an operation on an allocation. 113 */ 114 #if (defined(RS_VERSION) && (RS_VERSION >= 14)) 115 typedef enum { 116 RS_ALLOCATION_USAGE_SCRIPT = 0x0001, // Allocation is bound to and accessed by scripts. 117 RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002, // Allocation is used as a texture source. 118 RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004, // Deprecated. 119 RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008, // Deprecated. 120 RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010, // Deprecated. 121 RS_ALLOCATION_USAGE_IO_INPUT = 0x0020, // Allocation is used as a Surface consumer. 122 RS_ALLOCATION_USAGE_IO_OUTPUT = 0x0040, // Allocation is used as a Surface producer. 123 RS_ALLOCATION_USAGE_SHARED = 0x0080 // Allocation's backing store is shared with another object (usually a Bitmap). Copying to or from the original source Bitmap will cause a synchronization rather than a full copy. 124 } rs_allocation_usage_type; 125 #endif 126 127 /* 128 * rs_data_type: Element basic data type 129 * 130 * rs_data_type is used to encode the type information of a basic element. 131 * 132 * RS_TYPE_UNSIGNED_5_6_5, RS_TYPE_UNSIGNED_5_5_5_1, RS_TYPE_UNSIGNED_4_4_4_4 are for packed 133 * graphical data formats and represent vectors with per vector member sizes which are treated 134 * as a single unit for packing and alignment purposes. 135 */ 136 #if (defined(RS_VERSION) && (RS_VERSION >= 16)) 137 typedef enum { 138 RS_TYPE_NONE = 0, // Element is a complex type, i.e. a struct. 139 RS_TYPE_FLOAT_16 = 1, // A 16 bit floating point value. 140 RS_TYPE_FLOAT_32 = 2, // A 32 bit floating point value. 141 RS_TYPE_FLOAT_64 = 3, // A 64 bit floating point value. 142 RS_TYPE_SIGNED_8 = 4, // An 8 bit signed integer. 143 RS_TYPE_SIGNED_16 = 5, // A 16 bit signed integer. 144 RS_TYPE_SIGNED_32 = 6, // A 32 bit signed integer. 145 RS_TYPE_SIGNED_64 = 7, // A 64 bit signed integer. 146 RS_TYPE_UNSIGNED_8 = 8, // An 8 bit unsigned integer. 147 RS_TYPE_UNSIGNED_16 = 9, // A 16 bit unsigned integer. 148 RS_TYPE_UNSIGNED_32 = 10, // A 32 bit unsigned integer. 149 RS_TYPE_UNSIGNED_64 = 11, // A 64 bit unsigned integer. 150 RS_TYPE_BOOLEAN = 12, // 0 or 1 (false or true) stored in an 8 bit container. 151 RS_TYPE_UNSIGNED_5_6_5 = 13, // A 16 bit unsigned integer packing graphical data in 5, 6, and 5 bit sections. 152 RS_TYPE_UNSIGNED_5_5_5_1 = 14, // A 16 bit unsigned integer packing graphical data in 5, 5, 5, and 1 bit sections. 153 RS_TYPE_UNSIGNED_4_4_4_4 = 15, // A 16 bit unsigned integer packing graphical data in 4, 4, 4, and 4 bit sections. 154 RS_TYPE_MATRIX_4X4 = 16, // A 4x4 matrix of 32 bit floats, aligned on a 32 bit boundary. 155 RS_TYPE_MATRIX_3X3 = 17, // A 3x3 matrix of 32 bit floats, aligned on a 32 bit boundary. 156 RS_TYPE_MATRIX_2X2 = 18, // A 2x2 matrix of 32 bit floats, aligned on a 32 bit boundary. 157 RS_TYPE_ELEMENT = 1000, // A handle to an Element. 158 RS_TYPE_TYPE = 1001, // A handle to a Type. 159 RS_TYPE_ALLOCATION = 1002, // A handle to an Allocation. 160 RS_TYPE_SAMPLER = 1003, // A handle to a Sampler. 161 RS_TYPE_SCRIPT = 1004, // A handle to a Script. 162 RS_TYPE_MESH = 1005, // Deprecated. 163 RS_TYPE_PROGRAM_FRAGMENT = 1006, // Deprecated. 164 RS_TYPE_PROGRAM_VERTEX = 1007, // Deprecated. 165 RS_TYPE_PROGRAM_RASTER = 1008, // Deprecated. 166 RS_TYPE_PROGRAM_STORE = 1009, // Deprecated. 167 RS_TYPE_FONT = 1010, // Deprecated. 168 RS_TYPE_INVALID = 10000 169 } rs_data_type; 170 #endif 171 172 /* 173 * rs_data_kind: Element data kind 174 * 175 * This enumeration is primarly useful for graphical data. It provides additional information to 176 * help interpret the rs_data_type. 177 * 178 * RS_KIND_USER indicates no special interpretation is expected. 179 * 180 * The RS_KIND_PIXEL_* values are used in conjunction with the standard data types for representing 181 * texture formats. 182 * 183 * See the Element.createPixel() method. 184 */ 185 #if (defined(RS_VERSION) && (RS_VERSION >= 16)) 186 typedef enum { 187 RS_KIND_USER = 0, // No special interpretation. 188 RS_KIND_PIXEL_L = 7, // Luminance. 189 RS_KIND_PIXEL_A = 8, // Alpha. 190 RS_KIND_PIXEL_LA = 9, // Luminance and Alpha. 191 RS_KIND_PIXEL_RGB = 10, // Red, Green, Blue. 192 RS_KIND_PIXEL_RGBA = 11, // Red, Green, Blue, and Alpha. 193 RS_KIND_PIXEL_DEPTH = 12, // Depth for a depth texture. 194 RS_KIND_PIXEL_YUV = 13, // Luminance and chrominance. 195 RS_KIND_INVALID = 100 196 } rs_data_kind; 197 #endif 198 199 /* 200 * rs_yuv_format: YUV format 201 * 202 * Android YUV formats that can be associated with a RenderScript Type. 203 * 204 * See android.graphics.ImageFormat for a description of each format. 205 */ 206 #if (defined(RS_VERSION) && (RS_VERSION >= 24)) 207 typedef enum { 208 RS_YUV_NONE = 0, 209 RS_YUV_YV12 = 0x32315659, 210 RS_YUV_NV21 = 0x11, 211 RS_YUV_420_888 = 0x23 212 } rs_yuv_format; 213 #endif 214 215 /* 216 * rs_sampler_value: Sampler wrap T value 217 * 218 */ 219 #if (defined(RS_VERSION) && (RS_VERSION >= 16)) 220 typedef enum { 221 RS_SAMPLER_NEAREST = 0, 222 RS_SAMPLER_LINEAR = 1, 223 RS_SAMPLER_LINEAR_MIP_LINEAR = 2, 224 RS_SAMPLER_WRAP = 3, 225 RS_SAMPLER_CLAMP = 4, 226 RS_SAMPLER_LINEAR_MIP_NEAREST = 5, 227 RS_SAMPLER_MIRRORED_REPEAT = 6, 228 RS_SAMPLER_INVALID = 100 229 } rs_sampler_value; 230 #endif 231 232 #endif // RENDERSCRIPT_RS_OBJECT_TYPES_RSH 233