rsDefines.h revision d85e283087ecd00760a0d8d0c9d8482cda845efc
1bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams/*
23522f40418fdf877f5a136475dbf75e57a3b7c77Jason Sams * Copyright (C) 2007-2012 The Android Open Source Project
3bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
4bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * you may not use this file except in compliance with the License.
6bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * You may obtain a copy of the License at
7bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
8bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams *
10bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * Unless required by applicable law or agreed to in writing, software
11bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * See the License for the specific language governing permissions and
14bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams * limitations under the License.
15bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams */
16bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
17bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifndef RENDER_SCRIPT_DEFINES_H
18bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#define RENDER_SCRIPT_DEFINES_H
19bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
20bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <stdint.h>
21bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#include <sys/types.h>
22bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
23bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifdef __cplusplus
24bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsextern "C" {
25bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif
26bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
27bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams//////////////////////////////////////////////////////
28bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams//
29bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
30bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAsyncVoidPtr;
31bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
32bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAdapter1D;
33bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAdapter2D;
34bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAllocation;
35bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsAnimation;
36bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsContext;
37bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsDevice;
38bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsElement;
39bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsFile;
40bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsFont;
41bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsSampler;
42bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsScript;
43bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsMesh;
449e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samstypedef void * RsPath;
45bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsType;
46bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsObjectBase;
47bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
48bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgram;
49bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramVertex;
50bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramFragment;
51bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramStore;
52bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void * RsProgramRaster;
53bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
547257c7ee4b66f00c43d9235f3ac600061ae79968Alex Sakhartchouktypedef void * RsNativeWindow;
557257c7ee4b66f00c43d9235f3ac600061ae79968Alex Sakhartchouk
56bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef void (* RsBitmapCallback_t)(void *);
57bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
5887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct {
5987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams    float m[16];
6087fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} rs_matrix4x4;
6187fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams
6287fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct {
6387fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams    float m[9];
6487fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} rs_matrix3x3;
6587fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams
6687fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Samstypedef struct {
6787fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams    float m[4];
6887fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams} rs_matrix2x2;
6987fe59a2f4d4c74539bfa0bff5f9a7e320e99415Jason Sams
70bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDeviceParam {
71bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEVICE_PARAM_FORCE_SOFTWARE_GL,
72bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEVICE_PARAM_COUNT
73bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
74bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
75bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef struct {
76bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t colorMin;
77bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t colorPref;
78bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t alphaMin;
79bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t alphaPref;
80bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t depthMin;
81bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t depthPref;
82bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t stencilMin;
83bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t stencilPref;
84bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t samplesMin;
85bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t samplesPref;
86bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    float samplesQ;
87bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams} RsSurfaceConfig;
88bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
89bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsMessageToClientType {
90bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_MESSAGE_TO_CLIENT_NONE = 0,
91bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_MESSAGE_TO_CLIENT_EXCEPTION = 1,
92bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_MESSAGE_TO_CLIENT_RESIZE = 2,
93bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_MESSAGE_TO_CLIENT_ERROR = 3,
94bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_MESSAGE_TO_CLIENT_USER = 4
95bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
96bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
97bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAllocationUsageType {
98bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_SCRIPT = 0x0001,
99bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_GRAPHICS_TEXTURE = 0x0002,
100bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_GRAPHICS_VERTEX = 0x0004,
101bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_USAGE_GRAPHICS_CONSTANTS = 0x0008,
1027d9c5ffccb7a5e682860f752403e5a03aed587beAlex Sakhartchouk    RS_ALLOCATION_USAGE_GRAPHICS_RENDER_TARGET = 0x0010,
1033522f40418fdf877f5a136475dbf75e57a3b7c77Jason Sams    RS_ALLOCATION_USAGE_IO_INPUT = 0x0020,
1043522f40418fdf877f5a136475dbf75e57a3b7c77Jason Sams    RS_ALLOCATION_USAGE_IO_OUTPUT = 0x0040,
105bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
10641e373d91a60043afa0f9abd026218b49cbc1201Jason Sams    RS_ALLOCATION_USAGE_ALL = 0x00FF
107bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
108bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
109bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAllocationMipmapControl {
110bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_MIPMAP_NONE = 0,
111bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_MIPMAP_FULL = 1,
112bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ALLOCATION_MIPMAP_ON_SYNC_TO_TEXTURE = 2
113bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
114bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
115bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAllocationCubemapFace {
11674a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X = 0,
11774a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_X = 1,
11874a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Y = 2,
11974a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Y = 3,
12074a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_Z = 4,
12174a827988567a9d65954bb0d825a3ba4a97e2947Alex Sakhartchouk    RS_ALLOCATION_CUBEMAP_FACE_NEGATIVE_Z = 5
122bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
123bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
124bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDataType {
125bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_NONE,
126bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_FLOAT_16,
127bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_FLOAT_32,
128bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_FLOAT_64,
129bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_8,
130bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_16,
131bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_32,
132bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SIGNED_64,
133bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_8,
134bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_16,
135bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_32,
136bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_64,
137bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
138bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_BOOLEAN,
139bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
140bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_5_6_5,
141bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_5_5_5_1,
142bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_UNSIGNED_4_4_4_4,
143bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
144bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MATRIX_4X4,
145bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MATRIX_3X3,
146bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MATRIX_2X2,
147bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
148bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_ELEMENT = 1000,
149bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_TYPE,
150bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_ALLOCATION,
151bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SAMPLER,
152bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_SCRIPT,
153bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_MESH,
154bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_FRAGMENT,
155bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_VERTEX,
156bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_RASTER,
157bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TYPE_PROGRAM_STORE,
158ae8b795a673b75bf0aec72620f4530db1415f907Stephen Hines    RS_TYPE_FONT,
15925a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
16025a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_TYPE_INVALID = 10000,
161bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
162bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
163bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDataKind {
164bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_USER,
165bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
166bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_L = 7,
167bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_A,
168bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_LA,
169bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_RGB,
170bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_KIND_PIXEL_RGBA,
1717d9c5ffccb7a5e682860f752403e5a03aed587beAlex Sakhartchouk    RS_KIND_PIXEL_DEPTH,
17225a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
17325a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_KIND_INVALID = 100,
174bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
175bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
176bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsSamplerParam {
177bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_MIN_FILTER,
178bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_MAG_FILTER,
179bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP_S,
180bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP_T,
181bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP_R,
182bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_ANISO
183bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
184bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
185bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsSamplerValue {
186bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_NEAREST,
187bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_LINEAR,
188bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_LINEAR_MIP_LINEAR,
189bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_WRAP,
190bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_CLAMP,
191bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_SAMPLER_LINEAR_MIP_NEAREST,
19225a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
19325a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_SAMPLER_INVALID = 100,
194bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
195bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
196bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsTextureTarget {
197bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TEXTURE_2D,
198bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TEXTURE_CUBE
199bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
200bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
201bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDimension {
202bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_X,
203bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_Y,
204bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_Z,
205bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_LOD,
206bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_FACE,
207bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
208bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_0 = 100,
209bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_1,
210bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_2,
211bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_ARRAY_3,
212bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DIMENSION_MAX = RS_DIMENSION_ARRAY_3
213bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
214bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
215bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsDepthFunc {
216bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_ALWAYS,
217bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_LESS,
218bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_LEQUAL,
219bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_GREATER,
220bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_GEQUAL,
221bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_EQUAL,
222bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_DEPTH_FUNC_NOTEQUAL
223bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
224bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
225bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsBlendSrcFunc {
226bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_ZERO,                  // 0
227bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_ONE,                   // 1
228bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_DST_COLOR,             // 2
229bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_ONE_MINUS_DST_COLOR,   // 3
230bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_SRC_ALPHA,             // 4
231bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA,   // 5
232bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_DST_ALPHA,             // 6
233bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_SRC_ONE_MINUS_DST_ALPHA,   // 7
23425a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_BLEND_SRC_SRC_ALPHA_SATURATE,    // 8
23525a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_BLEND_SRC_INVALID = 100,
236bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
237bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
238bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsBlendDstFunc {
239bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_ZERO,                  // 0
240bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_ONE,                   // 1
241bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_SRC_COLOR,             // 2
242bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_ONE_MINUS_SRC_COLOR,   // 3
243bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_SRC_ALPHA,             // 4
244bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_ONE_MINUS_SRC_ALPHA,   // 5
245bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_BLEND_DST_DST_ALPHA,             // 6
24625a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_BLEND_DST_ONE_MINUS_DST_ALPHA,   // 7
24725a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
24825a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_BLEND_DST_INVALID = 100,
249bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
250bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
251bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsTexEnvMode {
252bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TEX_ENV_MODE_NONE,
253bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TEX_ENV_MODE_REPLACE,
254bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TEX_ENV_MODE_MODULATE,
255bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_TEX_ENV_MODE_DECAL
256bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
257bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
258bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsProgramParam {
259bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PROGRAM_PARAM_INPUT,
260bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PROGRAM_PARAM_OUTPUT,
261bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PROGRAM_PARAM_CONSTANT,
262bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PROGRAM_PARAM_TEXTURE_TYPE,
263bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
264bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
265bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsPrimitive {
266bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PRIMITIVE_POINT,
267bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PRIMITIVE_LINE,
268bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PRIMITIVE_LINE_STRIP,
269bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PRIMITIVE_TRIANGLE,
270bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_PRIMITIVE_TRIANGLE_STRIP,
27125a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_PRIMITIVE_TRIANGLE_FAN,
27225a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk
27325a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_PRIMITIVE_INVALID = 100,
274bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
275bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
2769e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Samsenum RsPathPrimitive {
2779e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    RS_PATH_PRIMITIVE_QUADRATIC_BEZIER,
2789e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams    RS_PATH_PRIMITIVE_CUBIC_BEZIER
2799e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams};
2809e0afb5a2b3e476c42a373e7cd89cef4a34f8195Jason Sams
281bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsError {
282bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_NONE = 0,
283bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_BAD_SHADER = 1,
284bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_BAD_SCRIPT = 2,
285bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_BAD_VALUE = 3,
286bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_OUT_OF_MEMORY = 4,
287bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_DRIVER = 5,
288bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
289bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_FATAL_UNKNOWN = 0x1000,
290bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_FATAL_DRIVER = 0x1001,
291bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ERROR_FATAL_PROGRAM_LINK = 0x1002
292bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
293bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
294bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAnimationInterpolation {
295bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_INTERPOLATION_STEP,
296bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_INTERPOLATION_LINEAR,
297bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_INTERPOLATION_BEZIER,
298bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_INTERPOLATION_CARDINAL,
299bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_INTERPOLATION_HERMITE,
300bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_INTERPOLATION_BSPLINE
301bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
302bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
303bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsAnimationEdge {
304bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_EDGE_UNDEFINED,
305bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_EDGE_CONSTANT,
306bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_EDGE_GRADIENT,
307bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_EDGE_CYCLE,
308bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_EDGE_OSCILLATE,
309bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_ANIMATION_EDGE_CYLE_RELATIVE
310bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
311bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
312bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsA3DClassID {
313bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_UNKNOWN,
314bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_MESH,
315bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_TYPE,
316bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_ELEMENT,
317bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_ALLOCATION,
318bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_PROGRAM_VERTEX,
319bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_PROGRAM_RASTER,
320bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_PROGRAM_FRAGMENT,
321bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_PROGRAM_STORE,
322bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_SAMPLER,
323bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_ANIMATION,
324bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_ADAPTER_1D,
325bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_ADAPTER_2D,
326bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_A3D_CLASS_ID_SCRIPT_C
327bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
328bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
329bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samsenum RsCullMode {
330bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_CULL_BACK,
331bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RS_CULL_FRONT,
33225a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_CULL_NONE,
33325a59d051a218bd608b005a149509464b3e6d4f0Alex Sakhartchouk    RS_CULL_INVALID = 100,
334bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
335bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
33641d6c769f5fa21da3cbc116af95d88949a4a5c76Stephen Hinesenum RsScriptIntrinsicID {
3378eaba4fee0c7b5325742c87187622fdff51d5effJason Sams    RS_SCRIPT_INTRINSIC_ID_UNDEFINED = 0,
3388eaba4fee0c7b5325742c87187622fdff51d5effJason Sams    RS_SCRIPT_INTRINSIC_ID_CONVOLVE_3x3 = 1,
339d85e283087ecd00760a0d8d0c9d8482cda845efcJason Sams    RS_SCRIPT_INTRINSIC_ID_COLOR_MATRIX = 2,
340d85e283087ecd00760a0d8d0c9d8482cda845efcJason Sams    RS_SCRIPT_INTRINSIC_ID_LUT = 3,
341d85e283087ecd00760a0d8d0c9d8482cda845efcJason Sams    RS_SCRIPT_INTRINSIC_ID_CONVOLVE_5x5 = 4,
342d85e283087ecd00760a0d8d0c9d8482cda845efcJason Sams    RS_SCRIPT_INTRINSIC_ID_BLUR = 5
3438eaba4fee0c7b5325742c87187622fdff51d5effJason Sams};
3448eaba4fee0c7b5325742c87187622fdff51d5effJason Sams
345bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef struct {
346bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    RsA3DClassID classID;
347bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    const char* objectName;
348bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams} RsFileIndexEntry;
349bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
350bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams// Script to Script
351bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Samstypedef struct {
352bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t xStart;
353bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t xEnd;
354bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t yStart;
355bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t yEnd;
356bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t zStart;
357bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t zEnd;
358bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t arrayStart;
359bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams    uint32_t arrayEnd;
360bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
361bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams} RsScriptCall;
362bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
363bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#ifdef __cplusplus
364bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams};
365bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif
366bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
367bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams#endif // RENDER_SCRIPT_DEFINES_H
368bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
369bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
370bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
371bad807405b2b9764372af1ad24bcfd4fb1f33d8eJason Sams
372