Home | History | Annotate | Download | only in rs
      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
     26 extern "C" {
     27 #endif
     28 
     29 //////////////////////////////////////////////////////
     30 //
     31 
     32 
     33 typedef void (* RsBitmapCallback_t)(void *);
     34 
     35 
     36 typedef 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 
     50 enum 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 
     59 enum RsTextureTarget {
     60     RS_TEXTURE_2D,
     61     RS_TEXTURE_CUBE
     62 };
     63 
     64 enum 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 
     74 enum 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 
     87 enum 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 
    100 enum 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 
    107 enum RsProgramParam {
    108     RS_PROGRAM_PARAM_INPUT,
    109     RS_PROGRAM_PARAM_OUTPUT,
    110     RS_PROGRAM_PARAM_CONSTANT,
    111     RS_PROGRAM_PARAM_TEXTURE_TYPE,
    112 };
    113 
    114 enum 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 
    125 enum RsPathPrimitive {
    126     RS_PATH_PRIMITIVE_QUADRATIC_BEZIER,
    127     RS_PATH_PRIMITIVE_CUBIC_BEZIER
    128 };
    129 
    130 enum 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 
    139 enum 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 
    148 enum 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     RS_A3D_CLASS_ID_SCRIPT_INVOKE_ID
    170 };
    171 
    172 enum RsCullMode {
    173     RS_CULL_BACK,
    174     RS_CULL_FRONT,
    175     RS_CULL_NONE,
    176     RS_CULL_INVALID = 100,
    177 };
    178 
    179 enum RsScriptIntrinsicID {
    180     RS_SCRIPT_INTRINSIC_ID_UNDEFINED = 0,
    181     RS_SCRIPT_INTRINSIC_ID_CONVOLVE_3x3 = 1,
    182     RS_SCRIPT_INTRINSIC_ID_COLOR_MATRIX = 2,
    183     RS_SCRIPT_INTRINSIC_ID_LUT = 3,
    184     RS_SCRIPT_INTRINSIC_ID_CONVOLVE_5x5 = 4,
    185     RS_SCRIPT_INTRINSIC_ID_BLUR = 5,
    186     RS_SCRIPT_INTRINSIC_ID_YUV_TO_RGB = 6,
    187     RS_SCRIPT_INTRINSIC_ID_BLEND = 7,
    188     RS_SCRIPT_INTRINSIC_ID_3DLUT = 8,
    189     RS_SCRIPT_INTRINSIC_ID_HISTOGRAM = 9,
    190     // unused 10, 11
    191     RS_SCRIPT_INTRINSIC_ID_RESIZE = 12,
    192     RS_SCRIPT_INTRINSIC_ID_BLAS = 13,
    193     RS_SCRIPT_INTRINSIC_ID_EXTBLAS = 14,
    194     RS_SCRIPT_INTRINSIC_ID_OEM_START = 0x10000000
    195 };
    196 
    197 typedef struct {
    198     RsA3DClassID classID;
    199     const char* objectName;
    200 } RsFileIndexEntry;
    201 
    202 
    203 enum RsThreadPriorities {
    204     RS_THREAD_PRIORITY_LOW = 15,
    205     RS_THREAD_PRIORITY_NORMAL_GRAPHICS = -8,
    206     RS_THREAD_PRIORITY_NORMAL = -1,
    207     RS_THREAD_PRIORITY_LOW_LATENCY = -4
    208 };
    209 
    210 
    211 // Structure for rs.spec functions
    212 
    213 typedef struct {
    214     RsElement e;
    215     uint32_t dimX;
    216     uint32_t dimY;
    217     uint32_t dimZ;
    218     bool mipmaps;
    219     bool faces;
    220     uint32_t yuv;
    221     uint32_t array0;
    222     uint32_t array1;
    223     uint32_t array2;
    224     uint32_t array3;
    225 } RsTypeCreateParams;
    226 
    227 
    228 
    229 #ifdef __cplusplus
    230 };
    231 #endif
    232 
    233 #endif // RENDER_SCRIPT_DEFINES_H
    234