• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
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
24 extern "C" {
25 #endif
26 
27 //////////////////////////////////////////////////////
28 //
29 
30 typedef void * RsAdapter1D;
31 typedef void * RsAdapter2D;
32 typedef void * RsAllocation;
33 typedef void * RsContext;
34 typedef void * RsDevice;
35 typedef void * RsElement;
36 typedef void * RsFile;
37 typedef void * RsSampler;
38 typedef void * RsScript;
39 typedef void * RsScriptBasicTemp;
40 typedef void * RsSimpleMesh;
41 typedef void * RsType;
42 typedef void * RsLight;
43 
44 typedef void * RsProgramVertex;
45 typedef void * RsProgramFragment;
46 typedef void * RsProgramFragmentStore;
47 typedef void * RsProgramRaster;
48 
49 enum RsDeviceParam {
50     RS_DEVICE_PARAM_FORCE_SOFTWARE_GL,
51     RS_DEVICE_PARAM_COUNT
52 };
53 
54 RsDevice rsDeviceCreate();
55 void rsDeviceDestroy(RsDevice);
56 void rsDeviceSetConfig(RsDevice, RsDeviceParam, int32_t value);
57 
58 RsContext rsContextCreate(RsDevice, uint32_t version, bool useDepth);
59 void rsContextDestroy(RsContext);
60 void rsObjDestroyOOB(RsContext, void *);
61 
62 uint32_t rsContextGetMessage(RsContext, void *data, size_t *receiveLen, size_t bufferLen, bool wait);
63 void rsContextInitToClient(RsContext);
64 void rsContextDeinitToClient(RsContext);
65 
66 #define RS_MAX_TEXTURE 2
67 
68 enum RsDataType {
69     RS_TYPE_FLOAT,
70     RS_TYPE_UNSIGNED,
71     RS_TYPE_SIGNED
72 };
73 
74 enum RsDataKind {
75     RS_KIND_USER,
76     RS_KIND_RED,
77     RS_KIND_GREEN,
78     RS_KIND_BLUE,
79     RS_KIND_ALPHA,
80     RS_KIND_LUMINANCE,
81     RS_KIND_INTENSITY,
82     RS_KIND_X,
83     RS_KIND_Y,
84     RS_KIND_Z,
85     RS_KIND_W,
86     RS_KIND_S,
87     RS_KIND_T,
88     RS_KIND_Q,
89     RS_KIND_R,
90     RS_KIND_NX,
91     RS_KIND_NY,
92     RS_KIND_NZ,
93     RS_KIND_INDEX,
94     RS_KIND_POINT_SIZE
95 };
96 
97 enum RsSamplerParam {
98     RS_SAMPLER_MIN_FILTER,
99     RS_SAMPLER_MAG_FILTER,
100     RS_SAMPLER_WRAP_S,
101     RS_SAMPLER_WRAP_T,
102     RS_SAMPLER_WRAP_R
103 };
104 
105 enum RsSamplerValue {
106     RS_SAMPLER_NEAREST,
107     RS_SAMPLER_LINEAR,
108     RS_SAMPLER_LINEAR_MIP_LINEAR,
109     RS_SAMPLER_WRAP,
110     RS_SAMPLER_CLAMP
111 };
112 
113 enum RsDimension {
114     RS_DIMENSION_X,
115     RS_DIMENSION_Y,
116     RS_DIMENSION_Z,
117     RS_DIMENSION_LOD,
118     RS_DIMENSION_FACE,
119 
120     RS_DIMENSION_ARRAY_0 = 100,
121     RS_DIMENSION_ARRAY_1,
122     RS_DIMENSION_ARRAY_2,
123     RS_DIMENSION_ARRAY_3,
124     RS_DIMENSION_MAX = RS_DIMENSION_ARRAY_3
125 };
126 
127 enum RsDepthFunc {
128     RS_DEPTH_FUNC_ALWAYS,
129     RS_DEPTH_FUNC_LESS,
130     RS_DEPTH_FUNC_LEQUAL,
131     RS_DEPTH_FUNC_GREATER,
132     RS_DEPTH_FUNC_GEQUAL,
133     RS_DEPTH_FUNC_EQUAL,
134     RS_DEPTH_FUNC_NOTEQUAL
135 };
136 
137 enum RsBlendSrcFunc {
138     RS_BLEND_SRC_ZERO,                  // 0
139     RS_BLEND_SRC_ONE,                   // 1
140     RS_BLEND_SRC_DST_COLOR,             // 2
141     RS_BLEND_SRC_ONE_MINUS_DST_COLOR,   // 3
142     RS_BLEND_SRC_SRC_ALPHA,             // 4
143     RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA,   // 5
144     RS_BLEND_SRC_DST_ALPHA,             // 6
145     RS_BLEND_SRC_ONE_MINUS_DST_ALPHA,   // 7
146     RS_BLEND_SRC_SRC_ALPHA_SATURATE     // 8
147 };
148 
149 enum RsBlendDstFunc {
150     RS_BLEND_DST_ZERO,                  // 0
151     RS_BLEND_DST_ONE,                   // 1
152     RS_BLEND_DST_SRC_COLOR,             // 2
153     RS_BLEND_DST_ONE_MINUS_SRC_COLOR,   // 3
154     RS_BLEND_DST_SRC_ALPHA,             // 4
155     RS_BLEND_DST_ONE_MINUS_SRC_ALPHA,   // 5
156     RS_BLEND_DST_DST_ALPHA,             // 6
157     RS_BLEND_DST_ONE_MINUS_DST_ALPHA    // 7
158 };
159 
160 enum RsTexEnvMode {
161     RS_TEX_ENV_MODE_REPLACE,
162     RS_TEX_ENV_MODE_MODULATE,
163     RS_TEX_ENV_MODE_DECAL
164 };
165 
166 enum RsPrimitive {
167     RS_PRIMITIVE_POINT,
168     RS_PRIMITIVE_LINE,
169     RS_PRIMITIVE_LINE_STRIP,
170     RS_PRIMITIVE_TRIANGLE,
171     RS_PRIMITIVE_TRIANGLE_STRIP,
172     RS_PRIMITIVE_TRIANGLE_FAN
173 };
174 
175 
176 #include "rsgApiFuncDecl.h"
177 
178 #ifdef __cplusplus
179 };
180 #endif
181 
182 #endif // RENDER_SCRIPT_H
183 
184 
185 
186