blob: 46b848fc9019fd06d653f047133e3b2c435f22b9 [file] [log] [blame]
Jason Sams66f0a162014-11-11 13:46:38 -08001/*
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,
Yang Ni1ffd86b2015-01-07 09:16:40 -0800166 RS_A3D_CLASS_ID_SCRIPT_GROUP,
167 RS_A3D_CLASS_ID_CLOSURE,
Yang Nieb9aa672015-01-27 14:32:25 -0800168 RS_A3D_CLASS_ID_SCRIPT_GROUP2,
169 RS_A3D_CLASS_ID_SCRIPT_INVOKE_ID
Jason Sams66f0a162014-11-11 13:46:38 -0800170};
171
172enum RsCullMode {
173 RS_CULL_BACK,
174 RS_CULL_FRONT,
175 RS_CULL_NONE,
176 RS_CULL_INVALID = 100,
177};
178
179enum 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,
Tim Murray64c682b2015-01-09 12:08:43 -0800192 RS_SCRIPT_INTRINSIC_ID_BLAS = 13,
Tim Murrayaff74452015-03-30 15:14:36 -0700193 RS_SCRIPT_INTRINSIC_ID_EXTBLAS = 14,
Jason Sams66f0a162014-11-11 13:46:38 -0800194 RS_SCRIPT_INTRINSIC_ID_OEM_START = 0x10000000
195};
196
197typedef struct {
198 RsA3DClassID classID;
199 const char* objectName;
200} RsFileIndexEntry;
201
202
Jason Samscfaec172015-01-23 13:42:43 -0800203enum 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
Jason Sams66f0a162014-11-11 13:46:38 -0800210
Jason Samsc7968a02014-11-11 16:24:36 -0800211// Structure for rs.spec functions
212
213typedef 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
Jason Sams66f0a162014-11-11 13:46:38 -0800229#ifdef __cplusplus
230};
231#endif
232
233#endif // RENDER_SCRIPT_DEFINES_H