blob: e1a4b6ded258eef57a898eae20c088d73d92be5f [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;
41
42typedef void * RsProgramVertex;
43typedef void * RsProgramFragment;
44typedef void * RsProgramFragmentStore;
45
46RsDevice rsDeviceCreate();
47void rsDeviceDestroy(RsDevice);
48
49RsContext rsContextCreate(RsDevice, void *, uint32_t version);
50void rsContextDestroy(RsContext);
51
52enum RsDataType {
53 RS_TYPE_FLOAT,
54 RS_TYPE_UNSIGNED,
55 RS_TYPE_SIGNED
56};
57
58enum RsDataKind {
59 RS_KIND_USER,
60 RS_KIND_RED,
61 RS_KIND_GREEN,
62 RS_KIND_BLUE,
63 RS_KIND_ALPHA,
64 RS_KIND_LUMINANCE,
65 RS_KIND_INTENSITY,
66 RS_KIND_X,
67 RS_KIND_Y,
68 RS_KIND_Z,
69 RS_KIND_W,
70 RS_KIND_S,
71 RS_KIND_T,
72 RS_KIND_Q,
73 RS_KIND_R,
74 RS_KIND_NX,
75 RS_KIND_NY,
76 RS_KIND_NZ,
77 RS_KIND_INDEX
78};
79
80enum RsElementPredefined {
81 RS_ELEMENT_USER_U8,
82 RS_ELEMENT_USER_I8,
83 RS_ELEMENT_USER_U16,
84 RS_ELEMENT_USER_I16,
85 RS_ELEMENT_USER_U32,
86 RS_ELEMENT_USER_I32,
87 RS_ELEMENT_USER_FLOAT,
88
89 RS_ELEMENT_RGB_565,
90 RS_ELEMENT_RGBA_5551,
91 RS_ELEMENT_RGBA_4444,
92 RS_ELEMENT_RGB_888,
93 RS_ELEMENT_RGBA_8888,
94
95 RS_ELEMENT_INDEX_16,
96 RS_ELEMENT_INDEX_32,
97 RS_ELEMENT_XY_F32,
98 RS_ELEMENT_XYZ_F32,
99 RS_ELEMENT_ST_XY_F32,
100 RS_ELEMENT_ST_XYZ_F32,
101 RS_ELEMENT_NORM_XYZ_F32,
102 RS_ELEMENT_NORM_ST_XYZ_F32,
103};
104
105enum RsSamplerParam {
106 RS_SAMPLER_MIN_FILTER,
107 RS_SAMPLER_MAG_FILTER,
108 RS_SAMPLER_WRAP_S,
109 RS_SAMPLER_WRAP_T,
110 RS_SAMPLER_WRAP_R
111};
112
113enum RsSamplerValue {
114 RS_SAMPLER_NEAREST,
115 RS_SAMPLER_LINEAR,
116 RS_SAMPLER_LINEAR_MIP_LINEAR,
117 RS_SAMPLER_WRAP,
118 RS_SAMPLER_CLAMP
119};
120
121enum RsDimension {
122 RS_DIMENSION_X,
123 RS_DIMENSION_Y,
124 RS_DIMENSION_Z,
125 RS_DIMENSION_LOD,
126 RS_DIMENSION_FACE,
127
128 RS_DIMENSION_ARRAY_0 = 100,
129 RS_DIMENSION_ARRAY_1,
130 RS_DIMENSION_ARRAY_2,
131 RS_DIMENSION_ARRAY_3,
132 RS_DIMENSION_MAX = RS_DIMENSION_ARRAY_3
133};
134
135enum RsDepthFunc {
136 RS_DEPTH_FUNC_ALWAYS,
137 RS_DEPTH_FUNC_LESS,
138 RS_DEPTH_FUNC_LEQUAL,
139 RS_DEPTH_FUNC_GREATER,
140 RS_DEPTH_FUNC_GEQUAL,
141 RS_DEPTH_FUNC_EQUAL,
142 RS_DEPTH_FUNC_NOTEQUAL
143};
144
145enum RsBlendSrcFunc {
146 RS_BLEND_SRC_ZERO,
147 RS_BLEND_SRC_ONE,
148 RS_BLEND_SRC_DST_COLOR,
149 RS_BLEND_SRC_ONE_MINUS_DST_COLOR,
150 RS_BLEND_SRC_SRC_ALPHA,
151 RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA,
152 RS_BLEND_SRC_DST_ALPHA,
153 RS_BLEND_SRC_ONE_MINUS_DST_ALPHA,
154 RS_BLEND_SRC_SRC_ALPHA_SATURATE
155};
156
157enum RsBlendDstFunc {
158 RS_BLEND_DST_ZERO,
159 RS_BLEND_DST_ONE,
160 RS_BLEND_DST_SRC_COLOR,
161 RS_BLEND_DST_ONE_MINUS_SRC_COLOR,
162 RS_BLEND_DST_SRC_ALPHA,
163 RS_BLEND_DST_ONE_MINUS_SRC_ALPHA,
164 RS_BLEND_DST_DST_ALPHA,
165 RS_BLEND_DST_ONE_MINUS_DST_ALPHA
166};
167
168enum RsTexEnvMode {
169 RS_TEX_ENV_MODE_REPLACE,
170 RS_TEX_ENV_MODE_MODULATE,
171 RS_TEX_ENV_MODE_DECAL
172};
173
174
175
176#include "rsgApiFuncDecl.h"
177
178#ifdef __cplusplus
179};
180#endif
181
182#endif // RENDER_SCRIPT_H
183
184
185