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