rsInternalDefines.h revision cfaec1707f9adda0408b8995de1bbca14ab66271
1/* 2 * Copyright (C) 2014 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#ifndef RENDER_SCRIPT_INTERNAL_DEFINES_H 18#define RENDER_SCRIPT_INTERNAL_DEFINES_H 19 20#include <stdint.h> 21#include <sys/types.h> 22 23#include "rsDefines.h" 24 25#ifdef __cplusplus 26extern "C" { 27#endif 28 29////////////////////////////////////////////////////// 30// 31 32 33typedef void (* RsBitmapCallback_t)(void *); 34 35 36typedef struct { 37 uint32_t colorMin; 38 uint32_t colorPref; 39 uint32_t alphaMin; 40 uint32_t alphaPref; 41 uint32_t depthMin; 42 uint32_t depthPref; 43 uint32_t stencilMin; 44 uint32_t stencilPref; 45 uint32_t samplesMin; 46 uint32_t samplesPref; 47 float samplesQ; 48} RsSurfaceConfig; 49 50enum RsMessageToClientType { 51 RS_MESSAGE_TO_CLIENT_NONE = 0, 52 RS_MESSAGE_TO_CLIENT_EXCEPTION = 1, 53 RS_MESSAGE_TO_CLIENT_RESIZE = 2, 54 RS_MESSAGE_TO_CLIENT_ERROR = 3, 55 RS_MESSAGE_TO_CLIENT_USER = 4, 56 RS_MESSAGE_TO_CLIENT_NEW_BUFFER = 5 57}; 58 59enum RsTextureTarget { 60 RS_TEXTURE_2D, 61 RS_TEXTURE_CUBE 62}; 63 64enum RsDepthFunc { 65 RS_DEPTH_FUNC_ALWAYS, 66 RS_DEPTH_FUNC_LESS, 67 RS_DEPTH_FUNC_LEQUAL, 68 RS_DEPTH_FUNC_GREATER, 69 RS_DEPTH_FUNC_GEQUAL, 70 RS_DEPTH_FUNC_EQUAL, 71 RS_DEPTH_FUNC_NOTEQUAL 72}; 73 74enum RsBlendSrcFunc { 75 RS_BLEND_SRC_ZERO, // 0 76 RS_BLEND_SRC_ONE, // 1 77 RS_BLEND_SRC_DST_COLOR, // 2 78 RS_BLEND_SRC_ONE_MINUS_DST_COLOR, // 3 79 RS_BLEND_SRC_SRC_ALPHA, // 4 80 RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA, // 5 81 RS_BLEND_SRC_DST_ALPHA, // 6 82 RS_BLEND_SRC_ONE_MINUS_DST_ALPHA, // 7 83 RS_BLEND_SRC_SRC_ALPHA_SATURATE, // 8 84 RS_BLEND_SRC_INVALID = 100, 85}; 86 87enum RsBlendDstFunc { 88 RS_BLEND_DST_ZERO, // 0 89 RS_BLEND_DST_ONE, // 1 90 RS_BLEND_DST_SRC_COLOR, // 2 91 RS_BLEND_DST_ONE_MINUS_SRC_COLOR, // 3 92 RS_BLEND_DST_SRC_ALPHA, // 4 93 RS_BLEND_DST_ONE_MINUS_SRC_ALPHA, // 5 94 RS_BLEND_DST_DST_ALPHA, // 6 95 RS_BLEND_DST_ONE_MINUS_DST_ALPHA, // 7 96 97 RS_BLEND_DST_INVALID = 100, 98}; 99 100enum RsTexEnvMode { 101 RS_TEX_ENV_MODE_NONE, 102 RS_TEX_ENV_MODE_REPLACE, 103 RS_TEX_ENV_MODE_MODULATE, 104 RS_TEX_ENV_MODE_DECAL 105}; 106 107enum RsProgramParam { 108 RS_PROGRAM_PARAM_INPUT, 109 RS_PROGRAM_PARAM_OUTPUT, 110 RS_PROGRAM_PARAM_CONSTANT, 111 RS_PROGRAM_PARAM_TEXTURE_TYPE, 112}; 113 114enum RsPrimitive { 115 RS_PRIMITIVE_POINT, 116 RS_PRIMITIVE_LINE, 117 RS_PRIMITIVE_LINE_STRIP, 118 RS_PRIMITIVE_TRIANGLE, 119 RS_PRIMITIVE_TRIANGLE_STRIP, 120 RS_PRIMITIVE_TRIANGLE_FAN, 121 122 RS_PRIMITIVE_INVALID = 100, 123}; 124 125enum RsPathPrimitive { 126 RS_PATH_PRIMITIVE_QUADRATIC_BEZIER, 127 RS_PATH_PRIMITIVE_CUBIC_BEZIER 128}; 129 130enum RsAnimationInterpolation { 131 RS_ANIMATION_INTERPOLATION_STEP, 132 RS_ANIMATION_INTERPOLATION_LINEAR, 133 RS_ANIMATION_INTERPOLATION_BEZIER, 134 RS_ANIMATION_INTERPOLATION_CARDINAL, 135 RS_ANIMATION_INTERPOLATION_HERMITE, 136 RS_ANIMATION_INTERPOLATION_BSPLINE 137}; 138 139enum RsAnimationEdge { 140 RS_ANIMATION_EDGE_UNDEFINED, 141 RS_ANIMATION_EDGE_CONSTANT, 142 RS_ANIMATION_EDGE_GRADIENT, 143 RS_ANIMATION_EDGE_CYCLE, 144 RS_ANIMATION_EDGE_OSCILLATE, 145 RS_ANIMATION_EDGE_CYLE_RELATIVE 146}; 147 148enum RsA3DClassID { 149 RS_A3D_CLASS_ID_UNKNOWN, 150 RS_A3D_CLASS_ID_MESH, 151 RS_A3D_CLASS_ID_TYPE, 152 RS_A3D_CLASS_ID_ELEMENT, 153 RS_A3D_CLASS_ID_ALLOCATION, 154 RS_A3D_CLASS_ID_PROGRAM_VERTEX, 155 RS_A3D_CLASS_ID_PROGRAM_RASTER, 156 RS_A3D_CLASS_ID_PROGRAM_FRAGMENT, 157 RS_A3D_CLASS_ID_PROGRAM_STORE, 158 RS_A3D_CLASS_ID_SAMPLER, 159 RS_A3D_CLASS_ID_ANIMATION, 160 RS_A3D_CLASS_ID_ADAPTER_1D, 161 RS_A3D_CLASS_ID_ADAPTER_2D, 162 RS_A3D_CLASS_ID_SCRIPT_C, 163 RS_A3D_CLASS_ID_SCRIPT_KERNEL_ID, 164 RS_A3D_CLASS_ID_SCRIPT_FIELD_ID, 165 RS_A3D_CLASS_ID_SCRIPT_METHOD_ID, 166 RS_A3D_CLASS_ID_SCRIPT_GROUP, 167 RS_A3D_CLASS_ID_CLOSURE, 168 RS_A3D_CLASS_ID_SCRIPT_GROUP2 169}; 170 171enum RsCullMode { 172 RS_CULL_BACK, 173 RS_CULL_FRONT, 174 RS_CULL_NONE, 175 RS_CULL_INVALID = 100, 176}; 177 178enum RsScriptIntrinsicID { 179 RS_SCRIPT_INTRINSIC_ID_UNDEFINED = 0, 180 RS_SCRIPT_INTRINSIC_ID_CONVOLVE_3x3 = 1, 181 RS_SCRIPT_INTRINSIC_ID_COLOR_MATRIX = 2, 182 RS_SCRIPT_INTRINSIC_ID_LUT = 3, 183 RS_SCRIPT_INTRINSIC_ID_CONVOLVE_5x5 = 4, 184 RS_SCRIPT_INTRINSIC_ID_BLUR = 5, 185 RS_SCRIPT_INTRINSIC_ID_YUV_TO_RGB = 6, 186 RS_SCRIPT_INTRINSIC_ID_BLEND = 7, 187 RS_SCRIPT_INTRINSIC_ID_3DLUT = 8, 188 RS_SCRIPT_INTRINSIC_ID_HISTOGRAM = 9, 189 // unused 10, 11 190 RS_SCRIPT_INTRINSIC_ID_RESIZE = 12, 191 192 RS_SCRIPT_INTRINSIC_ID_OEM_START = 0x10000000 193}; 194 195typedef struct { 196 RsA3DClassID classID; 197 const char* objectName; 198} RsFileIndexEntry; 199 200 201enum RsThreadPriorities { 202 RS_THREAD_PRIORITY_LOW = 15, 203 RS_THREAD_PRIORITY_NORMAL_GRAPHICS = -8, 204 RS_THREAD_PRIORITY_NORMAL = -1, 205 RS_THREAD_PRIORITY_LOW_LATENCY = -4 206}; 207 208 209// Structure for rs.spec functions 210 211typedef struct { 212 RsElement e; 213 uint32_t dimX; 214 uint32_t dimY; 215 uint32_t dimZ; 216 bool mipmaps; 217 bool faces; 218 uint32_t yuv; 219 uint32_t array0; 220 uint32_t array1; 221 uint32_t array2; 222 uint32_t array3; 223} RsTypeCreateParams; 224 225 226 227#ifdef __cplusplus 228}; 229#endif 230 231#endif // RENDER_SCRIPT_DEFINES_H 232