Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(844)

Side by Side Diff: samples/android_sample/jni/android_extension.cc

Issue 11416343: Refactored Android samples / embedder. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix type error on playBackground Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "jni/android_extension.h"
6
5 #include <android/log.h> 7 #include <android/log.h>
6 #include <EGL/egl.h> 8 #include <EGL/egl.h>
7 #include <GLES2/gl2.h> 9 #include <GLES2/gl2.h>
8 #include <GLES2/gl2ext.h> 10 #include <GLES2/gl2ext.h>
9 #include <jni.h> 11 #include <jni.h>
10 #include <stdio.h> 12 #include <stdio.h>
11 #include <stdlib.h> 13 #include <stdlib.h>
12 #include <string.h> 14 #include <string.h>
13 15
14 #include "bin/log.h"
15 #include "include/dart_api.h" 16 #include "include/dart_api.h"
16 #include "jni/android_extension.h" 17 #include "jni/log.h"
17
18 Dart_NativeFunction ResolveName(Dart_Handle name, int argc);
19
20 DART_EXPORT Dart_Handle android_extension_Init(Dart_Handle parent_library) {
21 if (Dart_IsError(parent_library)) { return parent_library; }
22
23 Dart_Handle result_code = Dart_SetNativeResolver(parent_library, ResolveName);
24 if (Dart_IsError(result_code)) return result_code;
25
26 return Dart_Null();
27 }
28 18
29 Dart_Handle HandleError(Dart_Handle handle) { 19 Dart_Handle HandleError(Dart_Handle handle) {
30 if (Dart_IsError(handle)) Dart_PropagateError(handle); 20 if (Dart_IsError(handle)) Dart_PropagateError(handle);
31 return handle; 21 return handle;
32 } 22 }
33 23
34 void CheckGLError(const char *function) { 24 void CheckGLError(const char *function) {
35 int error = glGetError(); 25 int error = glGetError();
36 if (error != GL_NO_ERROR) { 26 if (error != GL_NO_ERROR) {
37 Log::PrintErr("ERROR!: %s returns %d", function, error); 27 LOGE("ERROR!: %s returns %d", function, error);
38 } 28 }
39 } 29 }
40 30
41 const char* GetStringArg(Dart_NativeArguments arguments, int idx) { 31 const char* GetStringArg(Dart_NativeArguments arguments, int idx) {
42 Dart_Handle whatHandle = HandleError(Dart_GetNativeArgument(arguments, idx)); 32 Dart_Handle whatHandle = HandleError(Dart_GetNativeArgument(arguments, idx));
43 uint8_t* str; 33 uint8_t* str;
44 intptr_t length; 34 intptr_t length;
45 HandleError(Dart_StringLength(whatHandle, &length)); 35 HandleError(Dart_StringLength(whatHandle, &length));
46 HandleError(Dart_StringToUTF8(whatHandle, &str, length)); 36 HandleError(Dart_StringToUTF8(whatHandle, &str, &length));
47 str[length] = 0; 37 str[length] = 0;
48 return const_cast<const char*>(reinterpret_cast<char*>(str)); 38 return const_cast<const char*>(reinterpret_cast<char*>(str));
49 } 39 }
50 40
51 void Log(Dart_NativeArguments arguments) { 41 void Log(Dart_NativeArguments arguments) {
52 Dart_EnterScope(); 42 Dart_EnterScope();
53 Log::Print(GetStringArg(arguments, 0)); 43 LOGI(GetStringArg(arguments, 0));
54 Dart_ExitScope(); 44 Dart_ExitScope();
55 } 45 }
56 46
57 void SystemRand(Dart_NativeArguments arguments) { 47 void SystemRand(Dart_NativeArguments arguments) {
58 Dart_EnterScope(); 48 Dart_EnterScope();
59 Dart_Handle result = HandleError(Dart_NewInteger(rand())); 49 Dart_Handle result = HandleError(Dart_NewInteger(rand()));
60 Dart_SetReturnValue(arguments, result); 50 Dart_SetReturnValue(arguments, result);
61 Dart_ExitScope(); 51 Dart_ExitScope();
62 } 52 }
63 53
64 void SystemSrand(Dart_NativeArguments arguments) { 54 void SystemSrand(Dart_NativeArguments arguments) {
65 Dart_EnterScope(); 55 Dart_EnterScope();
66 bool success = false; 56 bool success = false;
67 Dart_Handle seed_object = HandleError(Dart_GetNativeArgument(arguments, 0)); 57 Dart_Handle seed_object = HandleError(Dart_GetNativeArgument(arguments, 0));
68 if (Dart_IsInteger(seed_object)) { 58 if (Dart_IsInteger(seed_object)) {
69 bool fits; 59 bool fits;
70 HandleError(Dart_IntegerFitsIntoInt64(seed_object, &fits)); 60 HandleError(Dart_IntegerFitsIntoInt64(seed_object, &fits));
71 if (fits) { 61 if (fits) {
72 int64_t seed; 62 int64_t seed;
73 HandleError(Dart_IntegerToInt64(seed_object, &seed)); 63 HandleError(Dart_IntegerToInt64(seed_object, &seed));
74 srand(static_cast<unsigned>(seed)); 64 srand(static_cast<unsigned>(seed));
75 success = true; 65 success = true;
76 } 66 }
77 } 67 }
78 Dart_SetReturnValue(arguments, HandleError(Dart_NewBoolean(success))); 68 Dart_SetReturnValue(arguments, HandleError(Dart_NewBoolean(success)));
79 Dart_ExitScope(); 69 Dart_ExitScope();
80 } 70 }
81 71
82 void EGLSwapBuffers(Dart_NativeArguments arguments) { 72 void EGLSwapBuffers(Dart_NativeArguments arguments) {
83 Log::Print("GLSwapBuffers"); 73 LOGI("GLSwapBuffers");
84 Dart_EnterScope(); 74 Dart_EnterScope();
85 75
86 EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); 76 EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
87 EGLSurface surface = eglGetCurrentSurface(EGL_DRAW); 77 EGLSurface surface = eglGetCurrentSurface(EGL_DRAW);
88 eglSwapBuffers(display, surface); 78 eglSwapBuffers(display, surface);
89 79
90 CheckGLError("eglSwapBuffers"); 80 CheckGLError("eglSwapBuffers");
91 Dart_ExitScope(); 81 Dart_ExitScope();
92 } 82 }
93 83
94 void GLAttachShader(Dart_NativeArguments arguments) { 84 void GLAttachShader(Dart_NativeArguments arguments) {
95 Log::Print("GLAttachShader"); 85 LOGI("GLAttachShader");
96 Dart_EnterScope(); 86 Dart_EnterScope();
97 87
98 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 88 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
99 int64_t program; 89 int64_t program;
100 HandleError(Dart_IntegerToInt64(programHandle, &program)); 90 HandleError(Dart_IntegerToInt64(programHandle, &program));
101 91
102 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 92 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
103 int64_t shader; 93 int64_t shader;
104 HandleError(Dart_IntegerToInt64(shaderHandle, &shader)); 94 HandleError(Dart_IntegerToInt64(shaderHandle, &shader));
105 95
106 glAttachShader(program, shader); 96 glAttachShader(program, shader);
107 CheckGLError("glAttachShader"); 97 CheckGLError("glAttachShader");
108 Dart_ExitScope(); 98 Dart_ExitScope();
109 } 99 }
110 100
111 void GLBindBuffer(Dart_NativeArguments arguments) { 101 void GLBindBuffer(Dart_NativeArguments arguments) {
112 Log::Print("GLBindBuffer"); 102 LOGI("GLBindBuffer");
113 Dart_EnterScope(); 103 Dart_EnterScope();
114 104
115 Dart_Handle targetHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 105 Dart_Handle targetHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
116 int64_t target; 106 int64_t target;
117 HandleError(Dart_IntegerToInt64(targetHandle, &target)); 107 HandleError(Dart_IntegerToInt64(targetHandle, &target));
118 108
119 Dart_Handle bufferHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 109 Dart_Handle bufferHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
120 int64_t buffer; 110 int64_t buffer;
121 HandleError(Dart_IntegerToInt64(bufferHandle, &buffer)); 111 HandleError(Dart_IntegerToInt64(bufferHandle, &buffer));
122 112
123 glBindBuffer(target, buffer); 113 glBindBuffer(target, buffer);
124 CheckGLError("glBindBuffer"); 114 CheckGLError("glBindBuffer");
125 Dart_ExitScope(); 115 Dart_ExitScope();
126 } 116 }
127 117
128 void GLBufferData(Dart_NativeArguments arguments) { 118 void GLBufferData(Dart_NativeArguments arguments) {
129 Log::Print("GLBufferData"); 119 LOGI("GLBufferData");
130 Dart_EnterScope(); 120 Dart_EnterScope();
131 121
132 Dart_Handle targetHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 122 Dart_Handle targetHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
133 int64_t target; 123 int64_t target;
134 HandleError(Dart_IntegerToInt64(targetHandle, &target)); 124 HandleError(Dart_IntegerToInt64(targetHandle, &target));
135 125
136 Dart_Handle dataHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 126 Dart_Handle dataHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
137 intptr_t size; 127 intptr_t size;
138 HandleError(Dart_ListLength(dataHandle, &size)); 128 HandleError(Dart_ListLength(dataHandle, &size));
139 129
140 Log::Print("Size: %d", size); 130 LOGI("Size: %d", size);
141 131
142 // TODO(vsm): No guarantee that this is a float! 132 // TODO(vsm): No guarantee that this is a float!
143 float* data = reinterpret_cast<float*>(malloc(size * sizeof(float))); 133 float* data = reinterpret_cast<float*>(malloc(size * sizeof(float)));
144 for (int i = 0; i < size; i++) { 134 for (int i = 0; i < size; i++) {
145 Dart_Handle elemHandle = HandleError(Dart_ListGetAt(dataHandle, i)); 135 Dart_Handle elemHandle = HandleError(Dart_ListGetAt(dataHandle, i));
146 double value; 136 double value;
147 Dart_DoubleValue(elemHandle, &value); 137 Dart_DoubleValue(elemHandle, &value);
148 data[i] = static_cast<float>(value); 138 data[i] = static_cast<float>(value);
149 Log::Print("Value[%d]: %f", i, data[i]); 139 LOGI("Value[%d]: %f", i, data[i]);
150 } 140 }
151 141
152 Dart_Handle usageHandle = HandleError(Dart_GetNativeArgument(arguments, 2)); 142 Dart_Handle usageHandle = HandleError(Dart_GetNativeArgument(arguments, 2));
153 int64_t usage; 143 int64_t usage;
154 HandleError(Dart_IntegerToInt64(usageHandle, &usage)); 144 HandleError(Dart_IntegerToInt64(usageHandle, &usage));
155 145
156 glBufferData(target, size * sizeof(float), data, usage); 146 glBufferData(target, size * sizeof(float), data, usage);
157 CheckGLError("glBufferData"); 147 CheckGLError("glBufferData");
158 free(data); 148 free(data);
159 Dart_ExitScope(); 149 Dart_ExitScope();
160 } 150 }
161 151
162 void GLCompileShader(Dart_NativeArguments arguments) { 152 void GLCompileShader(Dart_NativeArguments arguments) {
163 Dart_EnterScope(); 153 Dart_EnterScope();
164 154
165 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 155 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
166 int64_t shader; 156 int64_t shader;
167 HandleError(Dart_IntegerToInt64(shaderHandle, &shader)); 157 HandleError(Dart_IntegerToInt64(shaderHandle, &shader));
168 158
169 Log::Print("GLCompileShader"); 159 LOGI("GLCompileShader");
170 glCompileShader(shader); 160 glCompileShader(shader);
171 CheckGLError("glCompileShader"); 161 CheckGLError("glCompileShader");
172 Dart_ExitScope(); 162 Dart_ExitScope();
173 } 163 }
174 164
175 void GLCreateBuffer(Dart_NativeArguments arguments) { 165 void GLCreateBuffer(Dart_NativeArguments arguments) {
176 Log::Print("GLCreateBuffer"); 166 LOGI("GLCreateBuffer");
177 Dart_EnterScope(); 167 Dart_EnterScope();
178 GLuint buffer; 168 GLuint buffer;
179 169
180 glGenBuffers(1, &buffer); 170 glGenBuffers(1, &buffer);
181 CheckGLError("glGenBuffers"); 171 CheckGLError("glGenBuffers");
182 Dart_Handle result = HandleError(Dart_NewInteger(buffer)); 172 Dart_Handle result = HandleError(Dart_NewInteger(buffer));
183 Dart_SetReturnValue(arguments, result); 173 Dart_SetReturnValue(arguments, result);
184 Dart_ExitScope(); 174 Dart_ExitScope();
185 } 175 }
186 176
187 void GLCreateProgram(Dart_NativeArguments arguments) { 177 void GLCreateProgram(Dart_NativeArguments arguments) {
188 Log::Print("GLCreateProgram"); 178 LOGI("GLCreateProgram");
189 Dart_EnterScope(); 179 Dart_EnterScope();
190 180
191 int64_t program = glCreateProgram(); 181 int64_t program = glCreateProgram();
192 CheckGLError("glCreateProgram"); 182 CheckGLError("glCreateProgram");
193 Dart_Handle result = HandleError(Dart_NewInteger(program)); 183 Dart_Handle result = HandleError(Dart_NewInteger(program));
194 Dart_SetReturnValue(arguments, result); 184 Dart_SetReturnValue(arguments, result);
195 Dart_ExitScope(); 185 Dart_ExitScope();
196 } 186 }
197 187
198 void GLCreateShader(Dart_NativeArguments arguments) { 188 void GLCreateShader(Dart_NativeArguments arguments) {
199 Dart_EnterScope(); 189 Dart_EnterScope();
200 190
201 Dart_Handle typeHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 191 Dart_Handle typeHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
202 int64_t type; 192 int64_t type;
203 HandleError(Dart_IntegerToInt64(typeHandle, &type)); 193 HandleError(Dart_IntegerToInt64(typeHandle, &type));
204 194
205 int64_t shader = glCreateShader((GLenum)type); 195 int64_t shader = glCreateShader((GLenum)type);
206 Log::Print("GLCreateShader"); 196 LOGI("GLCreateShader");
207 CheckGLError("glCreateShader"); 197 CheckGLError("glCreateShader");
208 Dart_Handle result = HandleError(Dart_NewInteger(shader)); 198 Dart_Handle result = HandleError(Dart_NewInteger(shader));
209 Dart_SetReturnValue(arguments, result); 199 Dart_SetReturnValue(arguments, result);
210 Dart_ExitScope(); 200 Dart_ExitScope();
211 } 201 }
212 202
213 void GLDrawArrays(Dart_NativeArguments arguments) { 203 void GLDrawArrays(Dart_NativeArguments arguments) {
214 Log::Print("GLDrawArrays"); 204 LOGI("GLDrawArrays");
215 Dart_EnterScope(); 205 Dart_EnterScope();
216 206
217 Dart_Handle modeHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 207 Dart_Handle modeHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
218 int64_t mode; 208 int64_t mode;
219 HandleError(Dart_IntegerToInt64(modeHandle, &mode)); 209 HandleError(Dart_IntegerToInt64(modeHandle, &mode));
220 210
221 Dart_Handle firstHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 211 Dart_Handle firstHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
222 int64_t first; 212 int64_t first;
223 HandleError(Dart_IntegerToInt64(firstHandle, &first)); 213 HandleError(Dart_IntegerToInt64(firstHandle, &first));
224 214
225 Dart_Handle countHandle = HandleError(Dart_GetNativeArgument(arguments, 2)); 215 Dart_Handle countHandle = HandleError(Dart_GetNativeArgument(arguments, 2));
226 int64_t count; 216 int64_t count;
227 HandleError(Dart_IntegerToInt64(countHandle, &count)); 217 HandleError(Dart_IntegerToInt64(countHandle, &count));
228 218
229 glDrawArrays(mode, first, count); 219 glDrawArrays(mode, first, count);
230 CheckGLError("glDrawArrays"); 220 CheckGLError("glDrawArrays");
231 Dart_ExitScope(); 221 Dart_ExitScope();
232 } 222 }
233 223
234 void GLEnableVertexAttribArray(Dart_NativeArguments arguments) { 224 void GLEnableVertexAttribArray(Dart_NativeArguments arguments) {
235 Log::Print("GLEnableVertexAttribArray"); 225 LOGI("GLEnableVertexAttribArray");
236 Dart_EnterScope(); 226 Dart_EnterScope();
237 227
238 Dart_Handle locationHandle = 228 Dart_Handle locationHandle =
239 HandleError(Dart_GetNativeArgument(arguments, 0)); 229 HandleError(Dart_GetNativeArgument(arguments, 0));
240 int64_t location; 230 int64_t location;
241 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 231 HandleError(Dart_IntegerToInt64(locationHandle, &location));
242 232
243 glEnableVertexAttribArray(location); 233 glEnableVertexAttribArray(location);
244 CheckGLError("glEnableVertexAttribArray"); 234 CheckGLError("glEnableVertexAttribArray");
245 Dart_ExitScope(); 235 Dart_ExitScope();
246 } 236 }
247 237
248 void GLGetAttribLocation(Dart_NativeArguments arguments) { 238 void GLGetAttribLocation(Dart_NativeArguments arguments) {
249 Log::Print("GLGetAttribLocation"); 239 LOGI("GLGetAttribLocation");
250 Dart_EnterScope(); 240 Dart_EnterScope();
251 241
252 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 242 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
253 int64_t program; 243 int64_t program;
254 HandleError(Dart_IntegerToInt64(programHandle, &program)); 244 HandleError(Dart_IntegerToInt64(programHandle, &program));
255 245
256 Dart_Handle nameHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 246 Dart_Handle nameHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
257 intptr_t length; 247 intptr_t length;
258 HandleError(Dart_StringLength(nameHandle, &length)); 248 HandleError(Dart_StringLength(nameHandle, &length));
259 uint8_t* str; 249 uint8_t* str;
260 HandleError(Dart_StringToUTF8(nameHandle, &str, &length)); 250 HandleError(Dart_StringToUTF8(nameHandle, &str, &length));
261 str[length] = 0; 251 str[length] = 0;
262 252
263 int64_t location = glGetAttribLocation(program, 253 int64_t location = glGetAttribLocation(program,
264 const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str))); 254 const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str)));
265 CheckGLError("glGetAttribLocation"); 255 CheckGLError("glGetAttribLocation");
266 Dart_Handle result = HandleError(Dart_NewInteger(location)); 256 Dart_Handle result = HandleError(Dart_NewInteger(location));
267 Dart_SetReturnValue(arguments, result); 257 Dart_SetReturnValue(arguments, result);
268 Dart_ExitScope(); 258 Dart_ExitScope();
269 } 259 }
270 260
271 void GLGetError(Dart_NativeArguments arguments) { 261 void GLGetError(Dart_NativeArguments arguments) {
272 Log::Print("GLGetError"); 262 LOGI("GLGetError");
273 Dart_EnterScope(); 263 Dart_EnterScope();
274 264
275 int64_t error = glGetError(); 265 int64_t error = glGetError();
276 Dart_Handle result = HandleError(Dart_NewInteger(error)); 266 Dart_Handle result = HandleError(Dart_NewInteger(error));
277 Dart_SetReturnValue(arguments, result); 267 Dart_SetReturnValue(arguments, result);
278 Dart_ExitScope(); 268 Dart_ExitScope();
279 } 269 }
280 270
281 void GLGetProgramParameter(Dart_NativeArguments arguments) { 271 void GLGetProgramParameter(Dart_NativeArguments arguments) {
282 Log::Print("GLGetProgramParameter"); 272 LOGI("GLGetProgramParameter");
283 Dart_EnterScope(); 273 Dart_EnterScope();
284 274
285 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 275 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
286 int64_t program; 276 int64_t program;
287 HandleError(Dart_IntegerToInt64(programHandle, &program)); 277 HandleError(Dart_IntegerToInt64(programHandle, &program));
288 278
289 Dart_Handle paramHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 279 Dart_Handle paramHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
290 int64_t param; 280 int64_t param;
291 HandleError(Dart_IntegerToInt64(paramHandle, &param)); 281 HandleError(Dart_IntegerToInt64(paramHandle, &param));
292 282
293 GLint value = -1; 283 GLint value = -1;
294 glGetProgramiv(program, param, &value); 284 glGetProgramiv(program, param, &value);
295 CheckGLError("glGetProgramiv"); 285 CheckGLError("glGetProgramiv");
296 286
297 Dart_Handle result = HandleError(Dart_NewInteger(value)); 287 Dart_Handle result = HandleError(Dart_NewInteger(value));
298 Dart_SetReturnValue(arguments, result); 288 Dart_SetReturnValue(arguments, result);
299 Dart_ExitScope(); 289 Dart_ExitScope();
300 } 290 }
301 291
302 void GLGetShaderParameter(Dart_NativeArguments arguments) { 292 void GLGetShaderParameter(Dart_NativeArguments arguments) {
303 Log::Print("GLGetShaderParameter"); 293 LOGI("GLGetShaderParameter");
304 Dart_EnterScope(); 294 Dart_EnterScope();
305 295
306 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 296 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
307 int64_t shader; 297 int64_t shader;
308 HandleError(Dart_IntegerToInt64(shaderHandle, &shader)); 298 HandleError(Dart_IntegerToInt64(shaderHandle, &shader));
309 299
310 Dart_Handle paramHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 300 Dart_Handle paramHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
311 int64_t param; 301 int64_t param;
312 HandleError(Dart_IntegerToInt64(paramHandle, &param)); 302 HandleError(Dart_IntegerToInt64(paramHandle, &param));
313 303
314 GLint value = -1; 304 GLint value = -1;
315 glGetShaderiv((GLuint)shader, (GLenum)param, &value); 305 glGetShaderiv((GLuint)shader, (GLenum)param, &value);
316 CheckGLError("glGetShaderiv"); 306 CheckGLError("glGetShaderiv");
317 307
318 Dart_Handle result = HandleError(Dart_NewInteger(value)); 308 Dart_Handle result = HandleError(Dart_NewInteger(value));
319 Dart_SetReturnValue(arguments, result); 309 Dart_SetReturnValue(arguments, result);
320 Dart_ExitScope(); 310 Dart_ExitScope();
321 } 311 }
322 312
323 void GLGetShaderInfoLog(Dart_NativeArguments arguments) { 313 void GLGetShaderInfoLog(Dart_NativeArguments arguments) {
324 Log::Print("GLGetShaderInfoLog"); 314 LOGI("GLGetShaderInfoLog");
325 Dart_EnterScope(); 315 Dart_EnterScope();
326 316
327 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 317 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
328 int64_t shader; 318 int64_t shader;
329 HandleError(Dart_IntegerToInt64(shaderHandle, &shader)); 319 HandleError(Dart_IntegerToInt64(shaderHandle, &shader));
330 320
331 GLint infoLogLength = 0; 321 GLint infoLogLength = 0;
332 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength); 322 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength);
333 323
334 GLchar* strInfoLog = new GLchar[infoLogLength + 1]; 324 GLchar* strInfoLog = new GLchar[infoLogLength + 1];
335 glGetShaderInfoLog(shader, infoLogLength, NULL, strInfoLog); 325 glGetShaderInfoLog(shader, infoLogLength, NULL, strInfoLog);
336 strInfoLog[infoLogLength] = 0; 326 strInfoLog[infoLogLength] = 0;
337 327
338 Dart_Handle result = HandleError(Dart_NewStringFromCString(strInfoLog)); 328 Dart_Handle result = HandleError(Dart_NewStringFromCString(strInfoLog));
339 Dart_SetReturnValue(arguments, result); 329 Dart_SetReturnValue(arguments, result);
340 Dart_ExitScope(); 330 Dart_ExitScope();
341 delete[] strInfoLog; 331 delete[] strInfoLog;
342 } 332 }
343 333
344 void GLGetProgramInfoLog(Dart_NativeArguments arguments) { 334 void GLGetProgramInfoLog(Dart_NativeArguments arguments) {
345 Log::Print("GLGetProgramInfoLog"); 335 LOGI("GLGetProgramInfoLog");
346 Dart_EnterScope(); 336 Dart_EnterScope();
347 337
348 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 338 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
349 int64_t program; 339 int64_t program;
350 HandleError(Dart_IntegerToInt64(programHandle, &program)); 340 HandleError(Dart_IntegerToInt64(programHandle, &program));
351 341
352 GLint infoLogLength; 342 GLint infoLogLength;
353 glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLogLength); 343 glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLogLength);
354 344
355 GLchar* strInfoLog = new GLchar[infoLogLength + 1]; 345 GLchar* strInfoLog = new GLchar[infoLogLength + 1];
356 glGetProgramInfoLog(program, infoLogLength, NULL, strInfoLog); 346 glGetProgramInfoLog(program, infoLogLength, NULL, strInfoLog);
357 strInfoLog[infoLogLength] = 0; 347 strInfoLog[infoLogLength] = 0;
358 348
359 Dart_Handle result = HandleError(Dart_NewStringFromCString(strInfoLog)); 349 Dart_Handle result = HandleError(Dart_NewStringFromCString(strInfoLog));
360 Dart_SetReturnValue(arguments, result); 350 Dart_SetReturnValue(arguments, result);
361 Dart_ExitScope(); 351 Dart_ExitScope();
362 delete[] strInfoLog; 352 delete[] strInfoLog;
363 } 353 }
364 354
365 void GLGetUniformLocation(Dart_NativeArguments arguments) { 355 void GLGetUniformLocation(Dart_NativeArguments arguments) {
366 Log::Print("GLGetUniformLocation"); 356 LOGI("GLGetUniformLocation");
367 Dart_EnterScope(); 357 Dart_EnterScope();
368 358
369 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 359 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
370 int64_t program; 360 int64_t program;
371 HandleError(Dart_IntegerToInt64(programHandle, &program)); 361 HandleError(Dart_IntegerToInt64(programHandle, &program));
372 362
373 Dart_Handle nameHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 363 Dart_Handle nameHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
374 intptr_t length; 364 intptr_t length;
375 HandleError(Dart_StringLength(nameHandle, &length)); 365 HandleError(Dart_StringLength(nameHandle, &length));
376 uint8_t* str; 366 uint8_t* str;
377 HandleError(Dart_StringToUTF8(nameHandle, &str, &length)); 367 HandleError(Dart_StringToUTF8(nameHandle, &str, &length));
378 str[length] = 0; 368 str[length] = 0;
379 369
380 int64_t location = glGetUniformLocation(program, 370 int64_t location = glGetUniformLocation(program,
381 const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str))); 371 const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str)));
382 CheckGLError("glGetUniformLocation"); 372 CheckGLError("glGetUniformLocation");
383 Dart_Handle result = HandleError(Dart_NewInteger(location)); 373 Dart_Handle result = HandleError(Dart_NewInteger(location));
384 Dart_SetReturnValue(arguments, result); 374 Dart_SetReturnValue(arguments, result);
385 Dart_ExitScope(); 375 Dart_ExitScope();
386 } 376 }
387 377
388 void GLLinkProgram(Dart_NativeArguments arguments) { 378 void GLLinkProgram(Dart_NativeArguments arguments) {
389 Log::Print("GLLinkProgram"); 379 LOGI("GLLinkProgram");
390 Dart_EnterScope(); 380 Dart_EnterScope();
391 381
392 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 382 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
393 int64_t program; 383 int64_t program;
394 HandleError(Dart_IntegerToInt64(programHandle, &program)); 384 HandleError(Dart_IntegerToInt64(programHandle, &program));
395 385
396 glLinkProgram(program); 386 glLinkProgram(program);
397 CheckGLError("glLinkProgram"); 387 CheckGLError("glLinkProgram");
398 Dart_ExitScope(); 388 Dart_ExitScope();
399 } 389 }
400 390
401 void GLShaderSource(Dart_NativeArguments arguments) { 391 void GLShaderSource(Dart_NativeArguments arguments) {
402 Log::Print("GLShaderSource"); 392 LOGI("GLShaderSource");
403 Dart_EnterScope(); 393 Dart_EnterScope();
404 394
405 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 395 Dart_Handle shaderHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
406 int64_t shader; 396 int64_t shader;
407 HandleError(Dart_IntegerToInt64(shaderHandle, &shader)); 397 HandleError(Dart_IntegerToInt64(shaderHandle, &shader));
408 398
409 Dart_Handle sourceHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 399 Dart_Handle sourceHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
410 intptr_t length[1]; 400 intptr_t length[1];
411 HandleError(Dart_StringLength(sourceHandle, length)); 401 HandleError(Dart_StringLength(sourceHandle, length));
412 Log::Print("Source length is %d", length[0]); 402 LOGI("Source length is %d", length[0]);
413 uint8_t* str[1]; 403 uint8_t* str[1];
414 HandleError(Dart_StringToUTF8(sourceHandle, &str[0], length)); 404 HandleError(Dart_StringToUTF8(sourceHandle, &str[0], length));
415 Log::Print("Converted length is %d", length[0]); 405 LOGI("Converted length is %d", length[0]);
416 str[0][*length] = 0; 406 str[0][*length] = 0;
417 407
418 const GLchar* source = 408 const GLchar* source =
419 const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str[0])); 409 const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str[0]));
420 Log::Print("Source: %s", source); 410 LOGI("Source: %s", source);
421 glShaderSource(shader, 1, 411 glShaderSource(shader, 1,
422 const_cast<const GLchar**>(reinterpret_cast<GLchar**>(str)), NULL); 412 const_cast<const GLchar**>(reinterpret_cast<GLchar**>(str)), NULL);
423 CheckGLError("glShaderSource"); 413 CheckGLError("glShaderSource");
424 Dart_ExitScope(); 414 Dart_ExitScope();
425 } 415 }
426 416
427 void GLUseProgram(Dart_NativeArguments arguments) { 417 void GLUseProgram(Dart_NativeArguments arguments) {
428 Log::Print("GLUseProgram"); 418 LOGI("GLUseProgram");
429 Dart_EnterScope(); 419 Dart_EnterScope();
430 420
431 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 421 Dart_Handle programHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
432 int64_t program; 422 int64_t program;
433 HandleError(Dart_IntegerToInt64(programHandle, &program)); 423 HandleError(Dart_IntegerToInt64(programHandle, &program));
434 424
435 glUseProgram(program); 425 glUseProgram(program);
436 CheckGLError("glUseProgram"); 426 CheckGLError("glUseProgram");
437 Dart_ExitScope(); 427 Dart_ExitScope();
438 } 428 }
439 429
440 void GLUniform1i(Dart_NativeArguments arguments) { 430 void GLUniform1i(Dart_NativeArguments arguments) {
441 Log::Print("GLUniform1i"); 431 LOGI("GLUniform1i");
442 Dart_EnterScope(); 432 Dart_EnterScope();
443 433
444 Dart_Handle locationHandle = 434 Dart_Handle locationHandle =
445 HandleError(Dart_GetNativeArgument(arguments, 0)); 435 HandleError(Dart_GetNativeArgument(arguments, 0));
446 int64_t location; 436 int64_t location;
447 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 437 HandleError(Dart_IntegerToInt64(locationHandle, &location));
448 438
449 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 439 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
450 int64_t v0; 440 int64_t v0;
451 HandleError(Dart_IntegerToInt64(v0Handle, &v0)); 441 HandleError(Dart_IntegerToInt64(v0Handle, &v0));
452 442
453 glUniform1i(location, v0); 443 glUniform1i(location, v0);
454 CheckGLError("glUniform1i"); 444 CheckGLError("glUniform1i");
455 Dart_ExitScope(); 445 Dart_ExitScope();
456 } 446 }
457 447
458 void GLUniform2i(Dart_NativeArguments arguments) { 448 void GLUniform2i(Dart_NativeArguments arguments) {
459 Log::Print("GLUniform2i"); 449 LOGI("GLUniform2i");
460 Dart_EnterScope(); 450 Dart_EnterScope();
461 451
462 Dart_Handle locationHandle = 452 Dart_Handle locationHandle =
463 HandleError(Dart_GetNativeArgument(arguments, 0)); 453 HandleError(Dart_GetNativeArgument(arguments, 0));
464 int64_t location; 454 int64_t location;
465 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 455 HandleError(Dart_IntegerToInt64(locationHandle, &location));
466 456
467 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 457 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
468 int64_t v0; 458 int64_t v0;
469 HandleError(Dart_IntegerToInt64(v0Handle, &v0)); 459 HandleError(Dart_IntegerToInt64(v0Handle, &v0));
470 460
471 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2)); 461 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2));
472 int64_t v1; 462 int64_t v1;
473 HandleError(Dart_IntegerToInt64(v1Handle, &v1)); 463 HandleError(Dart_IntegerToInt64(v1Handle, &v1));
474 464
475 glUniform2i(location, v0, v1); 465 glUniform2i(location, v0, v1);
476 CheckGLError("glUniform2i"); 466 CheckGLError("glUniform2i");
477 Dart_ExitScope(); 467 Dart_ExitScope();
478 } 468 }
479 469
480 void GLUniform3i(Dart_NativeArguments arguments) { 470 void GLUniform3i(Dart_NativeArguments arguments) {
481 Log::Print("GLUniform3i"); 471 LOGI("GLUniform3i");
482 Dart_EnterScope(); 472 Dart_EnterScope();
483 473
484 Dart_Handle locationHandle = 474 Dart_Handle locationHandle =
485 HandleError(Dart_GetNativeArgument(arguments, 0)); 475 HandleError(Dart_GetNativeArgument(arguments, 0));
486 int64_t location; 476 int64_t location;
487 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 477 HandleError(Dart_IntegerToInt64(locationHandle, &location));
488 478
489 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 479 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
490 int64_t v0; 480 int64_t v0;
491 HandleError(Dart_IntegerToInt64(v0Handle, &v0)); 481 HandleError(Dart_IntegerToInt64(v0Handle, &v0));
492 482
493 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2)); 483 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2));
494 int64_t v1; 484 int64_t v1;
495 HandleError(Dart_IntegerToInt64(v1Handle, &v1)); 485 HandleError(Dart_IntegerToInt64(v1Handle, &v1));
496 486
497 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3)); 487 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3));
498 int64_t v2; 488 int64_t v2;
499 HandleError(Dart_IntegerToInt64(v2Handle, &v2)); 489 HandleError(Dart_IntegerToInt64(v2Handle, &v2));
500 490
501 glUniform3i(location, v0, v1, v2); 491 glUniform3i(location, v0, v1, v2);
502 CheckGLError("glUniform3i"); 492 CheckGLError("glUniform3i");
503 Dart_ExitScope(); 493 Dart_ExitScope();
504 } 494 }
505 495
506 void GLUniform4i(Dart_NativeArguments arguments) { 496 void GLUniform4i(Dart_NativeArguments arguments) {
507 Log::Print("GLUniform4i"); 497 LOGI("GLUniform4i");
508 Dart_EnterScope(); 498 Dart_EnterScope();
509 499
510 Dart_Handle locationHandle = 500 Dart_Handle locationHandle =
511 HandleError(Dart_GetNativeArgument(arguments, 0)); 501 HandleError(Dart_GetNativeArgument(arguments, 0));
512 int64_t location; 502 int64_t location;
513 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 503 HandleError(Dart_IntegerToInt64(locationHandle, &location));
514 504
515 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 505 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
516 int64_t v0; 506 int64_t v0;
517 HandleError(Dart_IntegerToInt64(v0Handle, &v0)); 507 HandleError(Dart_IntegerToInt64(v0Handle, &v0));
518 508
519 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2)); 509 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2));
520 int64_t v1; 510 int64_t v1;
521 HandleError(Dart_IntegerToInt64(v1Handle, &v1)); 511 HandleError(Dart_IntegerToInt64(v1Handle, &v1));
522 512
523 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3)); 513 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3));
524 int64_t v2; 514 int64_t v2;
525 HandleError(Dart_IntegerToInt64(v2Handle, &v2)); 515 HandleError(Dart_IntegerToInt64(v2Handle, &v2));
526 516
527 Dart_Handle v3Handle = HandleError(Dart_GetNativeArgument(arguments, 4)); 517 Dart_Handle v3Handle = HandleError(Dart_GetNativeArgument(arguments, 4));
528 int64_t v3; 518 int64_t v3;
529 HandleError(Dart_IntegerToInt64(v3Handle, &v3)); 519 HandleError(Dart_IntegerToInt64(v3Handle, &v3));
530 520
531 glUniform4i(location, v0, v1, v2, v3); 521 glUniform4i(location, v0, v1, v2, v3);
532 CheckGLError("glUniform4i"); 522 CheckGLError("glUniform4i");
533 Dart_ExitScope(); 523 Dart_ExitScope();
534 } 524 }
535 525
536 void GLUniform1f(Dart_NativeArguments arguments) { 526 void GLUniform1f(Dart_NativeArguments arguments) {
537 Log::Print("GLUniform1f"); 527 LOGI("GLUniform1f");
538 Dart_EnterScope(); 528 Dart_EnterScope();
539 529
540 Dart_Handle locationHandle = 530 Dart_Handle locationHandle =
541 HandleError(Dart_GetNativeArgument(arguments, 0)); 531 HandleError(Dart_GetNativeArgument(arguments, 0));
542 int64_t location; 532 int64_t location;
543 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 533 HandleError(Dart_IntegerToInt64(locationHandle, &location));
544 534
545 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 535 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
546 double v0; 536 double v0;
547 HandleError(Dart_DoubleValue(v0Handle, &v0)); 537 HandleError(Dart_DoubleValue(v0Handle, &v0));
548 538
549 glUniform1f(location, v0); 539 glUniform1f(location, v0);
550 CheckGLError("glUniform1f"); 540 CheckGLError("glUniform1f");
551 Dart_ExitScope(); 541 Dart_ExitScope();
552 } 542 }
553 543
554 void GLUniform2f(Dart_NativeArguments arguments) { 544 void GLUniform2f(Dart_NativeArguments arguments) {
555 Log::Print("GLUniform2f"); 545 LOGI("GLUniform2f");
556 Dart_EnterScope(); 546 Dart_EnterScope();
557 547
558 Dart_Handle locationHandle = 548 Dart_Handle locationHandle =
559 HandleError(Dart_GetNativeArgument(arguments, 0)); 549 HandleError(Dart_GetNativeArgument(arguments, 0));
560 int64_t location; 550 int64_t location;
561 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 551 HandleError(Dart_IntegerToInt64(locationHandle, &location));
562 552
563 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 553 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
564 double v0; 554 double v0;
565 HandleError(Dart_DoubleValue(v0Handle, &v0)); 555 HandleError(Dart_DoubleValue(v0Handle, &v0));
566 556
567 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2)); 557 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2));
568 double v1; 558 double v1;
569 HandleError(Dart_DoubleValue(v1Handle, &v1)); 559 HandleError(Dart_DoubleValue(v1Handle, &v1));
570 560
571 glUniform2f(location, v0, v1); 561 glUniform2f(location, v0, v1);
572 CheckGLError("glUniform2f"); 562 CheckGLError("glUniform2f");
573 Dart_ExitScope(); 563 Dart_ExitScope();
574 } 564 }
575 565
576 void GLUniform3f(Dart_NativeArguments arguments) { 566 void GLUniform3f(Dart_NativeArguments arguments) {
577 Log::Print("GLUniform3f"); 567 LOGI("GLUniform3f");
578 Dart_EnterScope(); 568 Dart_EnterScope();
579 569
580 Dart_Handle locationHandle = 570 Dart_Handle locationHandle =
581 HandleError(Dart_GetNativeArgument(arguments, 0)); 571 HandleError(Dart_GetNativeArgument(arguments, 0));
582 int64_t location; 572 int64_t location;
583 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 573 HandleError(Dart_IntegerToInt64(locationHandle, &location));
584 574
585 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 575 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
586 double v0; 576 double v0;
587 HandleError(Dart_DoubleValue(v0Handle, &v0)); 577 HandleError(Dart_DoubleValue(v0Handle, &v0));
588 578
589 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2)); 579 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2));
590 double v1; 580 double v1;
591 HandleError(Dart_DoubleValue(v1Handle, &v1)); 581 HandleError(Dart_DoubleValue(v1Handle, &v1));
592 582
593 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3)); 583 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3));
594 double v2; 584 double v2;
595 HandleError(Dart_DoubleValue(v2Handle, &v2)); 585 HandleError(Dart_DoubleValue(v2Handle, &v2));
596 586
597 glUniform3f(location, v0, v1, v2); 587 glUniform3f(location, v0, v1, v2);
598 CheckGLError("glUniform3f"); 588 CheckGLError("glUniform3f");
599 Dart_ExitScope(); 589 Dart_ExitScope();
600 } 590 }
601 591
602 void GLUniform4f(Dart_NativeArguments arguments) { 592 void GLUniform4f(Dart_NativeArguments arguments) {
603 Log::Print("GLUniform4f"); 593 LOGI("GLUniform4f");
604 Dart_EnterScope(); 594 Dart_EnterScope();
605 595
606 Dart_Handle locationHandle = 596 Dart_Handle locationHandle =
607 HandleError(Dart_GetNativeArgument(arguments, 0)); 597 HandleError(Dart_GetNativeArgument(arguments, 0));
608 int64_t location; 598 int64_t location;
609 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 599 HandleError(Dart_IntegerToInt64(locationHandle, &location));
610 600
611 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1)); 601 Dart_Handle v0Handle = HandleError(Dart_GetNativeArgument(arguments, 1));
612 double v0; 602 double v0;
613 HandleError(Dart_DoubleValue(v0Handle, &v0)); 603 HandleError(Dart_DoubleValue(v0Handle, &v0));
614 604
615 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2)); 605 Dart_Handle v1Handle = HandleError(Dart_GetNativeArgument(arguments, 2));
616 double v1; 606 double v1;
617 HandleError(Dart_DoubleValue(v1Handle, &v1)); 607 HandleError(Dart_DoubleValue(v1Handle, &v1));
618 608
619 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3)); 609 Dart_Handle v2Handle = HandleError(Dart_GetNativeArgument(arguments, 3));
620 double v2; 610 double v2;
621 HandleError(Dart_DoubleValue(v2Handle, &v2)); 611 HandleError(Dart_DoubleValue(v2Handle, &v2));
622 612
623 Dart_Handle v3Handle = HandleError(Dart_GetNativeArgument(arguments, 4)); 613 Dart_Handle v3Handle = HandleError(Dart_GetNativeArgument(arguments, 4));
624 double v3; 614 double v3;
625 HandleError(Dart_DoubleValue(v3Handle, &v3)); 615 HandleError(Dart_DoubleValue(v3Handle, &v3));
626 616
627 glUniform4f(location, v0, v1, v2, v3); 617 glUniform4f(location, v0, v1, v2, v3);
628 CheckGLError("glUniform4f"); 618 CheckGLError("glUniform4f");
629 Dart_ExitScope(); 619 Dart_ExitScope();
630 } 620 }
631 621
632 void GLUniform1iv(Dart_NativeArguments arguments) { 622 void GLUniform1iv(Dart_NativeArguments arguments) {
633 Log::Print("GLUniform1iv"); 623 LOGI("GLUniform1iv");
634 Dart_EnterScope(); 624 Dart_EnterScope();
635 625
636 Dart_Handle locationHandle = 626 Dart_Handle locationHandle =
637 HandleError(Dart_GetNativeArgument(arguments, 0)); 627 HandleError(Dart_GetNativeArgument(arguments, 0));
638 int64_t location; 628 int64_t location;
639 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 629 HandleError(Dart_IntegerToInt64(locationHandle, &location));
640 630
641 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 631 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
642 632
643 if (Dart_IsList(argHandle)) { 633 if (Dart_IsList(argHandle)) {
644 int len; 634 int len;
645 HandleError(Dart_ListLength(argHandle, &len)); 635 HandleError(Dart_ListLength(argHandle, &len));
646 GLint* list = new GLint[len]; 636 GLint* list = new GLint[len];
647 for (int i = 0; i < len; i++) { 637 for (int i = 0; i < len; i++) {
648 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 638 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
649 int64_t v; 639 int64_t v;
650 HandleError(Dart_IntegerToInt64(vHandle, &v)); 640 HandleError(Dart_IntegerToInt64(vHandle, &v));
651 list[i] = v; 641 list[i] = v;
652 } 642 }
653 glUniform1iv(location, len, list); 643 glUniform1iv(location, len, list);
654 delete [] list; 644 delete [] list;
655 CheckGLError("glUniform1iv"); 645 CheckGLError("glUniform1iv");
656 } 646 }
657 Dart_ExitScope(); 647 Dart_ExitScope();
658 } 648 }
659 649
660 void GLUniform2iv(Dart_NativeArguments arguments) { 650 void GLUniform2iv(Dart_NativeArguments arguments) {
661 Log::Print("GLUniform2iv"); 651 LOGI("GLUniform2iv");
662 Dart_EnterScope(); 652 Dart_EnterScope();
663 653
664 Dart_Handle locationHandle = 654 Dart_Handle locationHandle =
665 HandleError(Dart_GetNativeArgument(arguments, 0)); 655 HandleError(Dart_GetNativeArgument(arguments, 0));
666 int64_t location; 656 int64_t location;
667 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 657 HandleError(Dart_IntegerToInt64(locationHandle, &location));
668 658
669 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 659 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
670 660
671 if (Dart_IsList(argHandle)) { 661 if (Dart_IsList(argHandle)) {
672 int len; 662 int len;
673 HandleError(Dart_ListLength(argHandle, &len)); 663 HandleError(Dart_ListLength(argHandle, &len));
674 GLint* list = new GLint[len]; 664 GLint* list = new GLint[len];
675 for (int i = 0; i < len; i++) { 665 for (int i = 0; i < len; i++) {
676 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 666 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
677 int64_t v; 667 int64_t v;
678 HandleError(Dart_IntegerToInt64(vHandle, &v)); 668 HandleError(Dart_IntegerToInt64(vHandle, &v));
679 list[i] = v; 669 list[i] = v;
680 } 670 }
681 glUniform2iv(location, len / 2, list); 671 glUniform2iv(location, len / 2, list);
682 delete [] list; 672 delete [] list;
683 CheckGLError("glUniform2iv"); 673 CheckGLError("glUniform2iv");
684 } 674 }
685 Dart_ExitScope(); 675 Dart_ExitScope();
686 } 676 }
687 677
688 void GLUniform3iv(Dart_NativeArguments arguments) { 678 void GLUniform3iv(Dart_NativeArguments arguments) {
689 Log::Print("GLUniform3iv"); 679 LOGI("GLUniform3iv");
690 Dart_EnterScope(); 680 Dart_EnterScope();
691 681
692 Dart_Handle locationHandle = 682 Dart_Handle locationHandle =
693 HandleError(Dart_GetNativeArgument(arguments, 0)); 683 HandleError(Dart_GetNativeArgument(arguments, 0));
694 int64_t location; 684 int64_t location;
695 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 685 HandleError(Dart_IntegerToInt64(locationHandle, &location));
696 686
697 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 687 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
698 688
699 if (Dart_IsList(argHandle)) { 689 if (Dart_IsList(argHandle)) {
700 int len; 690 int len;
701 HandleError(Dart_ListLength(argHandle, &len)); 691 HandleError(Dart_ListLength(argHandle, &len));
702 GLint* list = new GLint[len]; 692 GLint* list = new GLint[len];
703 for (int i = 0; i < len; i++) { 693 for (int i = 0; i < len; i++) {
704 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 694 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
705 int64_t v; 695 int64_t v;
706 HandleError(Dart_IntegerToInt64(vHandle, &v)); 696 HandleError(Dart_IntegerToInt64(vHandle, &v));
707 list[i] = v; 697 list[i] = v;
708 } 698 }
709 glUniform3iv(location, len / 3, list); 699 glUniform3iv(location, len / 3, list);
710 delete [] list; 700 delete [] list;
711 CheckGLError("glUniform3iv"); 701 CheckGLError("glUniform3iv");
712 } 702 }
713 Dart_ExitScope(); 703 Dart_ExitScope();
714 } 704 }
715 705
716 void GLUniform4iv(Dart_NativeArguments arguments) { 706 void GLUniform4iv(Dart_NativeArguments arguments) {
717 Log::Print("GLUniform4iv"); 707 LOGI("GLUniform4iv");
718 Dart_EnterScope(); 708 Dart_EnterScope();
719 709
720 Dart_Handle locationHandle = 710 Dart_Handle locationHandle =
721 HandleError(Dart_GetNativeArgument(arguments, 0)); 711 HandleError(Dart_GetNativeArgument(arguments, 0));
722 int64_t location; 712 int64_t location;
723 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 713 HandleError(Dart_IntegerToInt64(locationHandle, &location));
724 714
725 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 715 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
726 716
727 if (Dart_IsList(argHandle)) { 717 if (Dart_IsList(argHandle)) {
728 int len; 718 int len;
729 HandleError(Dart_ListLength(argHandle, &len)); 719 HandleError(Dart_ListLength(argHandle, &len));
730 GLint* list = new GLint[len]; 720 GLint* list = new GLint[len];
731 for (int i = 0; i < len; i++) { 721 for (int i = 0; i < len; i++) {
732 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 722 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
733 int64_t v; 723 int64_t v;
734 HandleError(Dart_IntegerToInt64(vHandle, &v)); 724 HandleError(Dart_IntegerToInt64(vHandle, &v));
735 list[i] = v; 725 list[i] = v;
736 } 726 }
737 glUniform1iv(location, len / 4, list); 727 glUniform1iv(location, len / 4, list);
738 delete [] list; 728 delete [] list;
739 CheckGLError("glUniform4iv"); 729 CheckGLError("glUniform4iv");
740 } 730 }
741 Dart_ExitScope(); 731 Dart_ExitScope();
742 } 732 }
743 733
744 void GLUniform1fv(Dart_NativeArguments arguments) { 734 void GLUniform1fv(Dart_NativeArguments arguments) {
745 Log::Print("GLUniform1fv"); 735 LOGI("GLUniform1fv");
746 Dart_EnterScope(); 736 Dart_EnterScope();
747 737
748 Dart_Handle locationHandle = 738 Dart_Handle locationHandle =
749 HandleError(Dart_GetNativeArgument(arguments, 0)); 739 HandleError(Dart_GetNativeArgument(arguments, 0));
750 int64_t location; 740 int64_t location;
751 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 741 HandleError(Dart_IntegerToInt64(locationHandle, &location));
752 742
753 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 743 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
754 744
755 if (Dart_IsList(argHandle)) { 745 if (Dart_IsList(argHandle)) {
756 int len; 746 int len;
757 HandleError(Dart_ListLength(argHandle, &len)); 747 HandleError(Dart_ListLength(argHandle, &len));
758 GLfloat* list = new GLfloat[len]; 748 GLfloat* list = new GLfloat[len];
759 for (int i = 0; i < len; i++) { 749 for (int i = 0; i < len; i++) {
760 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 750 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
761 double v; 751 double v;
762 HandleError(Dart_DoubleValue(vHandle, &v)); 752 HandleError(Dart_DoubleValue(vHandle, &v));
763 list[i] = v; 753 list[i] = v;
764 } 754 }
765 glUniform1fv(location, len, list); 755 glUniform1fv(location, len, list);
766 delete [] list; 756 delete [] list;
767 CheckGLError("glUniform1fv"); 757 CheckGLError("glUniform1fv");
768 } 758 }
769 Dart_ExitScope(); 759 Dart_ExitScope();
770 } 760 }
771 761
772 void GLUniform2fv(Dart_NativeArguments arguments) { 762 void GLUniform2fv(Dart_NativeArguments arguments) {
773 Log::Print("GLUniform2fv"); 763 LOGI("GLUniform2fv");
774 Dart_EnterScope(); 764 Dart_EnterScope();
775 765
776 Dart_Handle locationHandle = 766 Dart_Handle locationHandle =
777 HandleError(Dart_GetNativeArgument(arguments, 0)); 767 HandleError(Dart_GetNativeArgument(arguments, 0));
778 int64_t location; 768 int64_t location;
779 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 769 HandleError(Dart_IntegerToInt64(locationHandle, &location));
780 770
781 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 771 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
782 772
783 if (Dart_IsList(argHandle)) { 773 if (Dart_IsList(argHandle)) {
784 int len; 774 int len;
785 HandleError(Dart_ListLength(argHandle, &len)); 775 HandleError(Dart_ListLength(argHandle, &len));
786 GLfloat* list = new GLfloat[len]; 776 GLfloat* list = new GLfloat[len];
787 for (int i = 0; i < len; i++) { 777 for (int i = 0; i < len; i++) {
788 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 778 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
789 double v; 779 double v;
790 HandleError(Dart_DoubleValue(vHandle, &v)); 780 HandleError(Dart_DoubleValue(vHandle, &v));
791 list[i] = v; 781 list[i] = v;
792 } 782 }
793 glUniform2fv(location, len / 2, list); 783 glUniform2fv(location, len / 2, list);
794 delete [] list; 784 delete [] list;
795 CheckGLError("glUniform2fv"); 785 CheckGLError("glUniform2fv");
796 } 786 }
797 Dart_ExitScope(); 787 Dart_ExitScope();
798 } 788 }
799 789
800 void GLUniform3fv(Dart_NativeArguments arguments) { 790 void GLUniform3fv(Dart_NativeArguments arguments) {
801 Log::Print("GLUniform3fv"); 791 LOGI("GLUniform3fv");
802 Dart_EnterScope(); 792 Dart_EnterScope();
803 793
804 Dart_Handle locationHandle = 794 Dart_Handle locationHandle =
805 HandleError(Dart_GetNativeArgument(arguments, 0)); 795 HandleError(Dart_GetNativeArgument(arguments, 0));
806 int64_t location; 796 int64_t location;
807 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 797 HandleError(Dart_IntegerToInt64(locationHandle, &location));
808 798
809 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 799 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
810 800
811 if (Dart_IsList(argHandle)) { 801 if (Dart_IsList(argHandle)) {
812 int len; 802 int len;
813 HandleError(Dart_ListLength(argHandle, &len)); 803 HandleError(Dart_ListLength(argHandle, &len));
814 GLfloat* list = new GLfloat[len]; 804 GLfloat* list = new GLfloat[len];
815 for (int i = 0; i < len; i++) { 805 for (int i = 0; i < len; i++) {
816 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 806 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
817 double v; 807 double v;
818 HandleError(Dart_DoubleValue(vHandle, &v)); 808 HandleError(Dart_DoubleValue(vHandle, &v));
819 list[i] = v; 809 list[i] = v;
820 } 810 }
821 glUniform3fv(location, len / 3, list); 811 glUniform3fv(location, len / 3, list);
822 delete [] list; 812 delete [] list;
823 CheckGLError("glUniform3fv"); 813 CheckGLError("glUniform3fv");
824 } 814 }
825 Dart_ExitScope(); 815 Dart_ExitScope();
826 } 816 }
827 817
828 void GLUniform4fv(Dart_NativeArguments arguments) { 818 void GLUniform4fv(Dart_NativeArguments arguments) {
829 Log::Print("In GLUniform4fv"); 819 LOGI("In GLUniform4fv");
830 Dart_EnterScope(); 820 Dart_EnterScope();
831 821
832 Dart_Handle locationHandle = 822 Dart_Handle locationHandle =
833 HandleError(Dart_GetNativeArgument(arguments, 0)); 823 HandleError(Dart_GetNativeArgument(arguments, 0));
834 int64_t location; 824 int64_t location;
835 HandleError(Dart_IntegerToInt64(locationHandle, &location)); 825 HandleError(Dart_IntegerToInt64(locationHandle, &location));
836 826
837 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 827 Dart_Handle argHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
838 828
839 if (Dart_IsList(argHandle)) { 829 if (Dart_IsList(argHandle)) {
840 int len; 830 int len;
841 HandleError(Dart_ListLength(argHandle, &len)); 831 HandleError(Dart_ListLength(argHandle, &len));
842 GLfloat* list = new GLfloat[len]; 832 GLfloat* list = new GLfloat[len];
843 for (int i = 0; i < len; i++) { 833 for (int i = 0; i < len; i++) {
844 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i); 834 Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
845 double v; 835 double v;
846 HandleError(Dart_DoubleValue(vHandle, &v)); 836 HandleError(Dart_DoubleValue(vHandle, &v));
847 list[i] = v; 837 list[i] = v;
848 } 838 }
849 glUniform4fv(location, len / 4, list); 839 glUniform4fv(location, len / 4, list);
850 delete [] list; 840 delete [] list;
851 CheckGLError("glUniform4fv"); 841 CheckGLError("glUniform4fv");
852 } 842 }
853 Dart_ExitScope(); 843 Dart_ExitScope();
854 } 844 }
855 845
856 void GLViewport(Dart_NativeArguments arguments) { 846 void GLViewport(Dart_NativeArguments arguments) {
857 Log::Print("GLViewport"); 847 LOGI("GLViewport");
858 Dart_EnterScope(); 848 Dart_EnterScope();
859 849
860 Dart_Handle xHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 850 Dart_Handle xHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
861 int64_t x; 851 int64_t x;
862 HandleError(Dart_IntegerToInt64(xHandle, &x)); 852 HandleError(Dart_IntegerToInt64(xHandle, &x));
863 853
864 Dart_Handle yHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 854 Dart_Handle yHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
865 int64_t y; 855 int64_t y;
866 HandleError(Dart_IntegerToInt64(yHandle, &y)); 856 HandleError(Dart_IntegerToInt64(yHandle, &y));
867 857
868 Dart_Handle widthHandle = HandleError(Dart_GetNativeArgument(arguments, 2)); 858 Dart_Handle widthHandle = HandleError(Dart_GetNativeArgument(arguments, 2));
869 int64_t width; 859 int64_t width;
870 HandleError(Dart_IntegerToInt64(widthHandle, &width)); 860 HandleError(Dart_IntegerToInt64(widthHandle, &width));
871 861
872 Dart_Handle heightHandle = HandleError(Dart_GetNativeArgument(arguments, 3)); 862 Dart_Handle heightHandle = HandleError(Dart_GetNativeArgument(arguments, 3));
873 int64_t height; 863 int64_t height;
874 HandleError(Dart_IntegerToInt64(heightHandle, &height)); 864 HandleError(Dart_IntegerToInt64(heightHandle, &height));
875 865
876 Log::Print("Dimensions: [%ld, %ld, %ld, %ld]", x, y, width, height); 866 LOGI("Dimensions: [%ld, %ld, %ld, %ld]", x, y, width, height);
877 867
878 glViewport(x, y, width, height); 868 glViewport(x, y, width, height);
879 CheckGLError("glViewPort"); 869 CheckGLError("glViewPort");
880 Dart_ExitScope(); 870 Dart_ExitScope();
881 } 871 }
882 872
883 void GLVertexAttribPointer(Dart_NativeArguments arguments) { 873 void GLVertexAttribPointer(Dart_NativeArguments arguments) {
884 Log::Print("GLVertexAttribPointer"); 874 LOGI("GLVertexAttribPointer");
885 Dart_EnterScope(); 875 Dart_EnterScope();
886 876
887 Dart_Handle indexHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 877 Dart_Handle indexHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
888 int64_t index; 878 int64_t index;
889 HandleError(Dart_IntegerToInt64(indexHandle, &index)); 879 HandleError(Dart_IntegerToInt64(indexHandle, &index));
890 880
891 Dart_Handle sizeHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 881 Dart_Handle sizeHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
892 int64_t size; 882 int64_t size;
893 HandleError(Dart_IntegerToInt64(sizeHandle, &size)); 883 HandleError(Dart_IntegerToInt64(sizeHandle, &size));
894 884
(...skipping 15 matching lines...) Expand all
910 HandleError(Dart_IntegerToInt64(pointerHandle, &pointerValue)); 900 HandleError(Dart_IntegerToInt64(pointerHandle, &pointerValue));
911 const void* pointer; 901 const void* pointer;
912 pointer = const_cast<const void*>(reinterpret_cast<void*>(pointerValue)); 902 pointer = const_cast<const void*>(reinterpret_cast<void*>(pointerValue));
913 903
914 glVertexAttribPointer(index, size, type, normalized, stride, pointer); 904 glVertexAttribPointer(index, size, type, normalized, stride, pointer);
915 CheckGLError("glVertexAttribPointer"); 905 CheckGLError("glVertexAttribPointer");
916 Dart_ExitScope(); 906 Dart_ExitScope();
917 } 907 }
918 908
919 void GLClearColor(Dart_NativeArguments arguments) { 909 void GLClearColor(Dart_NativeArguments arguments) {
920 Log::Print("GLClearColor"); 910 LOGI("GLClearColor");
921 Dart_EnterScope(); 911 Dart_EnterScope();
922 912
923 Dart_Handle redHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 913 Dart_Handle redHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
924 double red; 914 double red;
925 HandleError(Dart_DoubleValue(redHandle, &red)); 915 HandleError(Dart_DoubleValue(redHandle, &red));
926 916
927 Dart_Handle greenHandle = HandleError(Dart_GetNativeArgument(arguments, 1)); 917 Dart_Handle greenHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
928 double green; 918 double green;
929 HandleError(Dart_DoubleValue(greenHandle, &green)); 919 HandleError(Dart_DoubleValue(greenHandle, &green));
930 920
931 Dart_Handle blueHandle = HandleError(Dart_GetNativeArgument(arguments, 2)); 921 Dart_Handle blueHandle = HandleError(Dart_GetNativeArgument(arguments, 2));
932 double blue; 922 double blue;
933 HandleError(Dart_DoubleValue(blueHandle, &blue)); 923 HandleError(Dart_DoubleValue(blueHandle, &blue));
934 924
935 Dart_Handle alphaHandle = HandleError(Dart_GetNativeArgument(arguments, 3)); 925 Dart_Handle alphaHandle = HandleError(Dart_GetNativeArgument(arguments, 3));
936 double alpha; 926 double alpha;
937 HandleError(Dart_DoubleValue(alphaHandle, &alpha)); 927 HandleError(Dart_DoubleValue(alphaHandle, &alpha));
938 928
939 glClearColor(red, green, blue, alpha); 929 glClearColor(red, green, blue, alpha);
940 CheckGLError("glClearColor"); 930 CheckGLError("glClearColor");
941 Dart_ExitScope(); 931 Dart_ExitScope();
942 } 932 }
943 933
944 void GLClearDepth(Dart_NativeArguments arguments) { 934 void GLClearDepth(Dart_NativeArguments arguments) {
945 Log::Print("GLClearDepth"); 935 LOGI("GLClearDepth");
946 Dart_EnterScope(); 936 Dart_EnterScope();
947 937
948 Dart_Handle depthHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 938 Dart_Handle depthHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
949 double depth; 939 double depth;
950 HandleError(Dart_DoubleValue(depthHandle, &depth)); 940 HandleError(Dart_DoubleValue(depthHandle, &depth));
951 941
952 glClearDepthf(depth); 942 glClearDepthf(depth);
953 CheckGLError("glClearDepthf"); 943 CheckGLError("glClearDepthf");
954 Dart_ExitScope(); 944 Dart_ExitScope();
955 } 945 }
956 946
957 void GLClear(Dart_NativeArguments arguments) { 947 void GLClear(Dart_NativeArguments arguments) {
958 Log::Print("GLClear"); 948 LOGI("GLClear");
959 Dart_EnterScope(); 949 Dart_EnterScope();
960 Dart_Handle maskHandle = HandleError(Dart_GetNativeArgument(arguments, 0)); 950 Dart_Handle maskHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
961 int64_t mask; 951 int64_t mask;
962 HandleError(Dart_IntegerToInt64(maskHandle, &mask)); 952 HandleError(Dart_IntegerToInt64(maskHandle, &mask));
963 glClear(mask); 953 glClear(mask);
964 CheckGLError("glClear"); 954 CheckGLError("glClear");
965 Dart_ExitScope(); 955 Dart_ExitScope();
966 } 956 }
967 957
968 void GLArrayBuffer(Dart_NativeArguments arguments) { 958 void GLArrayBuffer(Dart_NativeArguments arguments) {
969 Log::Print("GLArrayBuffer"); 959 LOGI("GLArrayBuffer");
970 Dart_EnterScope(); 960 Dart_EnterScope();
971 Dart_Handle result = HandleError(Dart_NewInteger(GL_ARRAY_BUFFER)); 961 Dart_Handle result = HandleError(Dart_NewInteger(GL_ARRAY_BUFFER));
972 Dart_SetReturnValue(arguments, result); 962 Dart_SetReturnValue(arguments, result);
973 Dart_ExitScope(); 963 Dart_ExitScope();
974 } 964 }
975 965
976 void GLColorBufferBit(Dart_NativeArguments arguments) { 966 void GLColorBufferBit(Dart_NativeArguments arguments) {
977 Log::Print("GLColorBuffer"); 967 LOGI("GLColorBuffer");
978 Dart_EnterScope(); 968 Dart_EnterScope();
979 Dart_Handle result = HandleError(Dart_NewInteger(GL_COLOR_BUFFER_BIT)); 969 Dart_Handle result = HandleError(Dart_NewInteger(GL_COLOR_BUFFER_BIT));
980 Dart_SetReturnValue(arguments, result); 970 Dart_SetReturnValue(arguments, result);
981 Dart_ExitScope(); 971 Dart_ExitScope();
982 } 972 }
983 973
984 void GLCompileStatus(Dart_NativeArguments arguments) { 974 void GLCompileStatus(Dart_NativeArguments arguments) {
985 Log::Print("GLCompileStatus"); 975 LOGI("GLCompileStatus");
986 Dart_EnterScope(); 976 Dart_EnterScope();
987 Dart_Handle result = HandleError(Dart_NewInteger(GL_COMPILE_STATUS)); 977 Dart_Handle result = HandleError(Dart_NewInteger(GL_COMPILE_STATUS));
988 Dart_SetReturnValue(arguments, result); 978 Dart_SetReturnValue(arguments, result);
989 Dart_ExitScope(); 979 Dart_ExitScope();
990 } 980 }
991 981
992 void GLDepthBufferBit(Dart_NativeArguments arguments) { 982 void GLDepthBufferBit(Dart_NativeArguments arguments) {
993 Log::Print("GLDepthBufferBit"); 983 LOGI("GLDepthBufferBit");
994 Dart_EnterScope(); 984 Dart_EnterScope();
995 Dart_Handle result = HandleError(Dart_NewInteger(GL_DEPTH_BUFFER_BIT)); 985 Dart_Handle result = HandleError(Dart_NewInteger(GL_DEPTH_BUFFER_BIT));
996 Dart_SetReturnValue(arguments, result); 986 Dart_SetReturnValue(arguments, result);
997 Dart_ExitScope(); 987 Dart_ExitScope();
998 } 988 }
999 989
1000 void GLFloat(Dart_NativeArguments arguments) { 990 void GLFloat(Dart_NativeArguments arguments) {
1001 Dart_EnterScope(); 991 Dart_EnterScope();
1002 Dart_Handle result = HandleError(Dart_NewInteger(GL_FLOAT)); 992 Dart_Handle result = HandleError(Dart_NewInteger(GL_FLOAT));
1003 Dart_SetReturnValue(arguments, result); 993 Dart_SetReturnValue(arguments, result);
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1103 Dart_Port service_port = 1093 Dart_Port service_port =
1104 Dart_NewNativePort("RandomArrayService", WrappedRandomArray, true); 1094 Dart_NewNativePort("RandomArrayService", WrappedRandomArray, true);
1105 if (service_port != ((Dart_Port)0)) { 1095 if (service_port != ((Dart_Port)0)) {
1106 Dart_Handle send_port = HandleError(Dart_NewSendPort(service_port)); 1096 Dart_Handle send_port = HandleError(Dart_NewSendPort(service_port));
1107 Dart_SetReturnValue(arguments, send_port); 1097 Dart_SetReturnValue(arguments, send_port);
1108 } 1098 }
1109 Dart_ExitScope(); 1099 Dart_ExitScope();
1110 } 1100 }
1111 1101
1112 void PlayBackground(Dart_NativeArguments arguments) { 1102 void PlayBackground(Dart_NativeArguments arguments) {
1113 Log::Print("PlayBackground"); 1103 LOGI("PlayBackground");
1114 Dart_EnterScope(); 1104 Dart_EnterScope();
1115 const char* what = GetStringArg(arguments, 0); 1105 const char* what = GetStringArg(arguments, 0);
1116 int rtn = PlayBackground(what); 1106 PlayBackground(what);
1117 Dart_Handle result = HandleError(Dart_NewInteger(rtn));
1118 Dart_SetReturnValue(arguments, result);
1119 Dart_ExitScope(); 1107 Dart_ExitScope();
1120 } 1108 }
1121 1109
1122 void StopBackground(Dart_NativeArguments arguments) { 1110 void StopBackground(Dart_NativeArguments arguments) {
1123 Log::Print("StopBackground"); 1111 LOGI("StopBackground");
1124 Dart_EnterScope(); 1112 Dart_EnterScope();
1125 StopBackground(); 1113 StopBackground();
1126 Dart_ExitScope(); 1114 Dart_ExitScope();
1127 } 1115 }
1128 1116
1129 struct FunctionLookup { 1117 struct FunctionLookup {
1130 const char* name; 1118 const char* name;
1131 Dart_NativeFunction function; 1119 Dart_NativeFunction function;
1132 }; 1120 };
1133 1121
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1204 HandleError(Dart_StringToCString(name, &cname)); 1192 HandleError(Dart_StringToCString(name, &cname));
1205 for (int i = 0; function_list[i].name != NULL; ++i) { 1193 for (int i = 0; function_list[i].name != NULL; ++i) {
1206 if (strcmp(function_list[i].name, cname) == 0) { 1194 if (strcmp(function_list[i].name, cname) == 0) {
1207 result = function_list[i].function; 1195 result = function_list[i].function;
1208 break; 1196 break;
1209 } 1197 }
1210 } 1198 }
1211 Dart_ExitScope(); 1199 Dart_ExitScope();
1212 return result; 1200 return result;
1213 } 1201 }
1214
OLDNEW
« no previous file with comments | « samples/android_sample/jni/android_extension.h ('k') | samples/android_sample/jni/android_extension.h~ » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698