2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 #include "constants-wrapper.h"
22 #include <dali/public-api/common/constants.h>
23 #include <dali/public-api/math/vector3.h>
24 #include <dali/public-api/animation/animation.h>
25 #include <dali/public-api/images/pixel.h>
26 #include <dali/public-api/images/image.h>
27 #include <dali/public-api/images/resource-image.h>
28 #include <dali/public-api/actors/actor-enumerations.h>
29 #include <dali/public-api/actors/draw-mode.h>
30 #include <dali/public-api/actors/image-actor.h>
31 #include <dali/public-api/actors/blending.h>
32 #include <dali/public-api/actors/renderable-actor.h>
33 #include <dali/public-api/actors/camera-actor.h>
34 #include <dali/public-api/render-tasks/render-task.h>
35 #include <dali/public-api/common/loading-state.h>
66 const Vector3Pair Vector3Table[] =
68 { "TOP_LEFT" , ParentOrigin::TOP_LEFT },
69 { "TOP_CENTER" , ParentOrigin::TOP_CENTER },
70 { "TOP_RIGHT" , ParentOrigin::TOP_RIGHT },
71 { "CENTER_LEFT" , ParentOrigin::CENTER_LEFT },
72 { "CENTER" , ParentOrigin::CENTER },
73 { "CENTER_RIGHT" , ParentOrigin::CENTER_RIGHT },
74 { "BOTTOM_LEFT" , ParentOrigin::BOTTOM_LEFT },
75 { "BOTTOM_CENTER" , ParentOrigin::BOTTOM_CENTER },
76 { "BOTTOM_RIGHT" , ParentOrigin::BOTTOM_RIGHT },
78 { "VECTOR3_ONE" , Vector3::ONE },
79 { "VECTOR3_XAXIS" , Vector3::XAXIS },
80 { "VECTOR3_YAXIS" , Vector3::YAXIS },
81 { "VECTOR3_ZAXIS" , Vector3::ZAXIS },
82 { "VECTOR3_NEGATIVE_XAXIS" , Vector3::NEGATIVE_XAXIS },
83 { "VECTOR3_NEGATIVE_YAXIS" , Vector3::NEGATIVE_YAXIS },
84 { "VECTOR3_NEGATIVE_ZAXIS" , Vector3::NEGATIVE_ZAXIS },
85 { "VECTOR3_ZERO" , Vector3::ZERO }
90 const unsigned int Vector3TableCount = sizeof(Vector3Table)/sizeof(Vector3Table[0]);
92 const Vector4Pair Vector4Table[] =
94 { "COLOR_BLACK" , Color::BLACK },
95 { "COLOR_WHITE" , Color::WHITE },
96 { "COLOR_RED" , Color::RED },
97 { "COLOR_GREEN" , Color::GREEN },
98 { "COLOR_BLUE" , Color::BLUE },
99 { "COLOR_YELLOW" , Color::YELLOW },
100 { "COLOR_MAGENTA" , Color::MAGENTA },
101 { "COLOR_CYAN" , Color::CYAN },
102 { "COLOR_TRANSPARENT" , Color::TRANSPARENT }
106 const unsigned int Vector4TableCount = sizeof(Vector4Table)/sizeof(Vector4Table[0]);
108 const IntegerPair EnumTable[] =
111 { "ANIMATION_BAKE", Animation::Bake },
112 { "ANIMATION_DISCARD", Animation::Discard },
113 { "ANIMATION_BAKE_FINAL", Animation::BakeFinal },
114 { "REFRESH_ONCE", RenderTask::REFRESH_ONCE },
115 { "REFRESH_ALWAYS", RenderTask::REFRESH_ALWAYS },
117 { "PIXEL_FORMAT_A8", Pixel::A8, },
118 { "PIXEL_FORMAT_L8", Pixel::L8, },
119 { "PIXEL_FORMAT_LA88", Pixel::LA88, },
120 { "PIXEL_FORMAT_RGB565", Pixel::RGB565, },
121 { "PIXEL_FORMAT_BGR565", Pixel::BGR565, },
122 { "PIXEL_FORMAT_RGBA4444", Pixel::RGBA4444, },
123 { "PIXEL_FORMAT_BGRA4444", Pixel::BGRA4444, },
124 { "PIXEL_FORMAT_RGBA5551", Pixel::RGBA5551, },
125 { "PIXEL_FORMAT_BGRA5551", Pixel::BGRA5551, },
126 { "PIXEL_FORMAT_RGB888", Pixel::RGB888, },
127 { "PIXEL_FORMAT_RGB8888", Pixel::RGB8888, },
128 { "PIXEL_FORMAT_BGR8888", Pixel::BGR8888, },
129 { "PIXEL_FORMAT_RGBA8888", Pixel::RGBA8888, },
130 { "PIXEL_FORMAT_BGRA8888", Pixel::BGRA8888, },
132 { "PIXEL_FORMAT_COMPRESSED_R11_EAC", Pixel::COMPRESSED_R11_EAC, },
133 { "PIXEL_FORMAT_COMPRESSED_SIGNED_R11_EAC", Pixel::COMPRESSED_SIGNED_R11_EAC, },
134 { "PIXEL_FORMAT_COMPRESSED_RG11_EAC", Pixel::COMPRESSED_RG11_EAC, },
135 { "PIXEL_FORMAT_COMPRESSED_SIGNED_RG11_EAC", Pixel::COMPRESSED_SIGNED_RG11_EAC, },
136 { "PIXEL_FORMAT_COMPRESSED_RGB8_ETC2", Pixel::COMPRESSED_RGB8_ETC2, },
137 { "PIXEL_FORMAT_COMPRESSED_SRGB8_ETC2", Pixel::COMPRESSED_SRGB8_ETC2, },
138 { "PIXEL_FORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, },
139 { "PIXEL_FORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2},
140 { "PIXEL_FORMAT_COMPRESSED_RGBA8_ETC2_EAC", Pixel::COMPRESSED_RGBA8_ETC2_EAC, },
141 { "PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, },
142 { "PIXEL_FORMAT_COMPRESSED_RGB8_ETC1", Pixel::COMPRESSED_RGB8_ETC1, },
143 { "PIXEL_FORMAT_COMPRESSED_RGB_PVRTC_4BPPV1", Pixel::COMPRESSED_RGB_PVRTC_4BPPV1 },
146 { "COLOR_MODE_USE_OWN_COLOR", USE_OWN_COLOR },
147 { "COLOR_MODE_USE_PARENT_COLOR", USE_PARENT_COLOR },
148 { "COLOR_MODE_USE_OWN_MULTIPLY_PARENT_COLOR", USE_OWN_MULTIPLY_PARENT_COLOR },
149 { "COLOR_MODE_USE_OWN_MULTIPLY_PARENT_ALPHA", USE_OWN_MULTIPLY_PARENT_ALPHA },
152 { "POSITION_INHERITANCE_INHERIT_PARENT_POSITION", INHERIT_PARENT_POSITION },
153 { "POSITION_INHERITANCE_USE_PARENT_POSITION", USE_PARENT_POSITION },
154 { "POSITION_INHERITANCE_USE_PARENT_POSITION_PLUS_LOCAL_POSITION", USE_PARENT_POSITION_PLUS_LOCAL_POSITION },
155 { "POSITION_INHERITANCE_DONT_INHERIT_POSITION", DONT_INHERIT_POSITION },
157 { "DRAW_MODE_NORMAL", DrawMode::NORMAL },
158 { "DRAW_MODE_OVERLAY", DrawMode::OVERLAY },
159 { "DRAW_MODE_STENCIL", DrawMode::STENCIL },
161 { "IMAGE_LOAD_POLICY_IMMEDIATE", ResourceImage::IMMEDIATE },
162 { "IMAGE_LOAD_POLICY_ON_DEMAND", ResourceImage::ON_DEMAND },
164 { "IMAGE_RELEASE_POLICY_UNUSED", Image::UNUSED },
165 { "IMAGE_RELEASE_POLICY_NEVER", Image::NEVER },
167 { "RESOURCE_LOADING", Dali::ResourceLoading },
168 { "RESOURCE_LOADING_SUCCEEDED", Dali::ResourceLoadingSucceeded },
169 { "RESOUCE_LOADING_FAILED", Dali::ResourceLoadingFailed },
171 { "FITTING_MODE_SHRINK_TO_FIT", FittingMode::SHRINK_TO_FIT },
172 { "FITTING_MODE_SCALE_TO_FILL", FittingMode::SCALE_TO_FILL },
173 { "FITTING_MODE_FIT_WIDTH", FittingMode::FIT_WIDTH },
174 { "FITTING_MODE_FIT_HEIGHT", FittingMode::FIT_HEIGHT },
176 { "SAMPLING_MODE_BOX", SamplingMode::BOX },
177 { "SAMPLING_MODE_NEAREST", SamplingMode::NEAREST },
178 { "SAMPLING_MODE_LINEAR", SamplingMode::LINEAR },
179 { "SAMPLING_MODE_BOX_THEN_NEAREST", SamplingMode::BOX_THEN_NEAREST },
180 { "SAMPLING_MODE_BOX_THEN_LINEAR", SamplingMode::BOX_THEN_LINEAR },
181 { "SAMPLING_MODE_NO_FILTER", SamplingMode::NO_FILTER },
182 { "SAMPLING_MODE_DONT_CARE", SamplingMode::DONT_CARE },
184 { "BLEND_FACTOR_ZERO", BlendingFactor::ZERO },
185 { "BLEND_FACTOR_ONE", BlendingFactor::ONE },
186 { "BLEND_FACTOR_SRC_COLOR", BlendingFactor::SRC_COLOR },
187 { "BLEND_FACTOR_ONE_MINUS_SRC_COLOR", BlendingFactor::ONE_MINUS_SRC_COLOR },
188 { "BLEND_FACTOR_SRC_ALPHA", BlendingFactor::SRC_ALPHA },
189 { "BLEND_FACTOR_ONE_MINUS_SRC_ALPHA", BlendingFactor::ONE_MINUS_SRC_ALPHA },
190 { "BLEND_FACTOR_DST_ALPHA", BlendingFactor::DST_ALPHA },
191 { "BLEND_FACTOR_ONE_MINUS_DST_ALPHA", BlendingFactor::ONE_MINUS_DST_ALPHA },
192 { "BLEND_FACTOR_DST_COLOR", BlendingFactor::DST_COLOR },
193 { "BLEND_FACTOR_ONE_MINUS_DST_COLOR", BlendingFactor::ONE_MINUS_DST_COLOR },
194 { "BLEND_FACTOR_SRC_ALPHA_SATURATE", BlendingFactor::SRC_ALPHA_SATURATE },
195 { "BLEND_FACTOR_CONSTANT_COLOR", BlendingFactor::CONSTANT_COLOR },
196 { "BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR", BlendingFactor::ONE_MINUS_CONSTANT_COLOR },
197 { "BLEND_FACTOR_CONSTANT_ALPHA" , BlendingFactor::CONSTANT_ALPHA },
198 { "BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA", BlendingFactor::ONE_MINUS_CONSTANT_ALPHA },
200 { "BLENDING_OFF", BlendingMode::OFF },
201 { "BLENDING_AUTO", BlendingMode::AUTO },
202 { "BLENDING_ON", BlendingMode::ON },
204 { "BLEND_EQUATION_ADD", BlendingEquation::ADD },
205 { "BLEND_EQUATION_SUBTRACT", BlendingEquation::SUBTRACT },
206 { "BLEND_EQUATION_REVERSE_SUBTRACT", BlendingEquation::REVERSE_SUBTRACT },
209 { "CULL_FACE_DISABLE", CullNone },
210 { "CULL_FRONT_FACE", CullFront },
211 { "CULL_BACK_FACE", CullBack },
212 { "CULL_FRONT_AND_BACK_FACE", CullFrontAndBack },
214 { "CAMERA_FREE_LOOK" , Camera::FREE_LOOK },
215 { "CAMERA_LOOK_AT_TARGET" , Camera::LOOK_AT_TARGET },
216 { "CAMERA_PERSPECTIVE_PROJECTION" , Camera::PERSPECTIVE_PROJECTION },
217 { "CAMERA_ORTHOGRAPHIC_PROJECTION", Camera::ORTHOGRAPHIC_PROJECTION },
219 {"IMAGE_ACTOR_STYLE_QUAD", ImageActor::STYLE_QUAD},
220 {"IMAGE_ACTOR_STYLE_NINE_PATCH", ImageActor::STYLE_NINE_PATCH},
221 {"IMAGE_ACTOR_STYLE_NINE_PATCH_NO_CENTER",ImageActor::STYLE_NINE_PATCH_NO_CENTER }
225 const unsigned int EnumTableCount = sizeof(EnumTable)/sizeof(EnumTable[0]);
232 } // un-named name space
235 void ConstantsWrapper::AddDaliConstants( v8::Isolate* isolate, v8::Local<v8::Object >& obj )
237 v8::EscapableHandleScope handleScope( isolate );
240 for( unsigned int i = 0; i < EnumTableCount; ++i )
242 obj->Set( v8::String::NewFromUtf8( isolate, EnumTable[i].name ),
243 v8::Integer::New(isolate, EnumTable[i].value ) );
246 for( unsigned int i = 0; i < Vector3TableCount; ++i )
248 // create a JavaScript array object with 3 entries.
249 v8::Local<v8::Array> array = v8::Array::New( isolate ,3 );
250 array->Set( 0 , v8::Number::New(isolate, Vector3Table[i].value.x ));
251 array->Set( 1 , v8::Number::New(isolate, Vector3Table[i].value.y ));
252 array->Set( 2 , v8::Number::New(isolate, Vector3Table[i].value.z ));
254 obj->Set( v8::String::NewFromUtf8( isolate, Vector3Table[i].name),
259 for( unsigned int i = 0; i < Vector4TableCount; ++i )
261 // create a JavaScript array object with 3 entries.
262 v8::Local<v8::Array> array = v8::Array::New( isolate ,4 );
263 array->Set( 0 , v8::Number::New(isolate, Vector4Table[i].value.x ));
264 array->Set( 1 , v8::Number::New(isolate, Vector4Table[i].value.y ));
265 array->Set( 2 , v8::Number::New(isolate, Vector4Table[i].value.z ));
266 array->Set( 3 , v8::Number::New(isolate, Vector4Table[i].value.w ));
268 obj->Set( v8::String::NewFromUtf8( isolate, Vector4Table[i].name),
274 } // namespace V8Plugin