blob: 5f551df6465cf6c5e1e20e4ce82b41b8893eec34 [file] [log] [blame]
Jason Sams326e0dd2009-05-22 14:03:28 -07001/*
2 * Copyright (C) 2007 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_H
18#define RENDER_SCRIPT_H
19
20#include <stdint.h>
21#include <sys/types.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27//////////////////////////////////////////////////////
28//
29
30typedef void * RsAdapter1D;
31typedef void * RsAdapter2D;
32typedef void * RsAllocation;
33typedef void * RsContext;
34typedef void * RsDevice;
35typedef void * RsElement;
36typedef void * RsSampler;
37typedef void * RsScript;
38typedef void * RsScriptBasicTemp;
39typedef void * RsTriangleMesh;
40typedef void * RsType;
Jason Sams62bc1db2009-06-22 15:49:21 -070041typedef void * RsLight;
Jason Sams326e0dd2009-05-22 14:03:28 -070042
43typedef void * RsProgramVertex;
44typedef void * RsProgramFragment;
45typedef void * RsProgramFragmentStore;
46
47RsDevice rsDeviceCreate();
48void rsDeviceDestroy(RsDevice);
49
50RsContext rsContextCreate(RsDevice, void *, uint32_t version);
51void rsContextDestroy(RsContext);
52
53enum RsDataType {
54 RS_TYPE_FLOAT,
55 RS_TYPE_UNSIGNED,
56 RS_TYPE_SIGNED
57};
58
59enum RsDataKind {
60 RS_KIND_USER,
61 RS_KIND_RED,
62 RS_KIND_GREEN,
63 RS_KIND_BLUE,
64 RS_KIND_ALPHA,
65 RS_KIND_LUMINANCE,
66 RS_KIND_INTENSITY,
67 RS_KIND_X,
68 RS_KIND_Y,
69 RS_KIND_Z,
70 RS_KIND_W,
71 RS_KIND_S,
72 RS_KIND_T,
73 RS_KIND_Q,
74 RS_KIND_R,
75 RS_KIND_NX,
76 RS_KIND_NY,
77 RS_KIND_NZ,
78 RS_KIND_INDEX
79};
80
81enum RsElementPredefined {
82 RS_ELEMENT_USER_U8,
83 RS_ELEMENT_USER_I8,
84 RS_ELEMENT_USER_U16,
85 RS_ELEMENT_USER_I16,
86 RS_ELEMENT_USER_U32,
87 RS_ELEMENT_USER_I32,
88 RS_ELEMENT_USER_FLOAT,
89
Jason Sams52a9f522009-06-01 17:45:53 -070090 RS_ELEMENT_A_8, // 7
91 RS_ELEMENT_RGB_565, // 8
92 RS_ELEMENT_RGBA_5551, // 9
93 RS_ELEMENT_RGBA_4444, // 10
94 RS_ELEMENT_RGB_888, // 11
95 RS_ELEMENT_RGBA_8888, // 12
Jason Sams326e0dd2009-05-22 14:03:28 -070096
Jason Sams52a9f522009-06-01 17:45:53 -070097 RS_ELEMENT_INDEX_16, //13
Jason Sams326e0dd2009-05-22 14:03:28 -070098 RS_ELEMENT_INDEX_32,
99 RS_ELEMENT_XY_F32,
100 RS_ELEMENT_XYZ_F32,
101 RS_ELEMENT_ST_XY_F32,
102 RS_ELEMENT_ST_XYZ_F32,
103 RS_ELEMENT_NORM_XYZ_F32,
104 RS_ELEMENT_NORM_ST_XYZ_F32,
105};
106
107enum RsSamplerParam {
108 RS_SAMPLER_MIN_FILTER,
109 RS_SAMPLER_MAG_FILTER,
110 RS_SAMPLER_WRAP_S,
111 RS_SAMPLER_WRAP_T,
112 RS_SAMPLER_WRAP_R
113};
114
115enum RsSamplerValue {
116 RS_SAMPLER_NEAREST,
117 RS_SAMPLER_LINEAR,
118 RS_SAMPLER_LINEAR_MIP_LINEAR,
119 RS_SAMPLER_WRAP,
120 RS_SAMPLER_CLAMP
121};
122
123enum RsDimension {
124 RS_DIMENSION_X,
125 RS_DIMENSION_Y,
126 RS_DIMENSION_Z,
127 RS_DIMENSION_LOD,
128 RS_DIMENSION_FACE,
129
130 RS_DIMENSION_ARRAY_0 = 100,
131 RS_DIMENSION_ARRAY_1,
132 RS_DIMENSION_ARRAY_2,
133 RS_DIMENSION_ARRAY_3,
134 RS_DIMENSION_MAX = RS_DIMENSION_ARRAY_3
135};
136
137enum RsDepthFunc {
138 RS_DEPTH_FUNC_ALWAYS,
139 RS_DEPTH_FUNC_LESS,
140 RS_DEPTH_FUNC_LEQUAL,
141 RS_DEPTH_FUNC_GREATER,
142 RS_DEPTH_FUNC_GEQUAL,
143 RS_DEPTH_FUNC_EQUAL,
144 RS_DEPTH_FUNC_NOTEQUAL
145};
146
147enum RsBlendSrcFunc {
148 RS_BLEND_SRC_ZERO,
149 RS_BLEND_SRC_ONE,
150 RS_BLEND_SRC_DST_COLOR,
151 RS_BLEND_SRC_ONE_MINUS_DST_COLOR,
152 RS_BLEND_SRC_SRC_ALPHA,
153 RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA,
154 RS_BLEND_SRC_DST_ALPHA,
155 RS_BLEND_SRC_ONE_MINUS_DST_ALPHA,
156 RS_BLEND_SRC_SRC_ALPHA_SATURATE
157};
158
159enum RsBlendDstFunc {
160 RS_BLEND_DST_ZERO,
161 RS_BLEND_DST_ONE,
162 RS_BLEND_DST_SRC_COLOR,
163 RS_BLEND_DST_ONE_MINUS_SRC_COLOR,
164 RS_BLEND_DST_SRC_ALPHA,
165 RS_BLEND_DST_ONE_MINUS_SRC_ALPHA,
166 RS_BLEND_DST_DST_ALPHA,
167 RS_BLEND_DST_ONE_MINUS_DST_ALPHA
168};
169
170enum RsTexEnvMode {
171 RS_TEX_ENV_MODE_REPLACE,
172 RS_TEX_ENV_MODE_MODULATE,
173 RS_TEX_ENV_MODE_DECAL
174};
175
Jason Samsa89371c2009-06-30 14:13:04 -0700176enum RsPrimitive {
177 RS_PRIMITIVE_POINT,
178 RS_PRIMITIVE_LINE,
179 RS_PRIMITIVE_LINE_STRIP,
180 RS_PRIMITIVE_TRIANGLE,
181 RS_PRIMITIVE_TRIANGLE_STRIP,
182 RS_PRIMITIVE_TRIANGLE_FAN
183};
Jason Sams326e0dd2009-05-22 14:03:28 -0700184
185
186#include "rsgApiFuncDecl.h"
187
188#ifdef __cplusplus
189};
190#endif
191
192#endif // RENDER_SCRIPT_H
193
194
195