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

Unified Diff: runtime/embedders/openglui/common/extension.cc

Issue 25081002: Remove openglui embedder code (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/embedders/openglui/common/extension.h ('k') | runtime/embedders/openglui/common/gl.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/embedders/openglui/common/extension.cc
diff --git a/runtime/embedders/openglui/common/extension.cc b/runtime/embedders/openglui/common/extension.cc
deleted file mode 100644
index 6304c3b23c74ae870e3a8c7ef673e0555fdb3da0..0000000000000000000000000000000000000000
--- a/runtime/embedders/openglui/common/extension.cc
+++ /dev/null
@@ -1,1737 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-#include "embedders/openglui/common/extension.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "embedders/openglui/common/canvas_context.h"
-#include "embedders/openglui/common/image_cache.h"
-#include "embedders/openglui/common/graphics_handler.h"
-#include "embedders/openglui/common/log.h"
-#include "embedders/openglui/common/opengl.h"
-#include "include/dart_api.h"
-#include "include/dart_native_api.h"
-
-Dart_Handle HandleError(Dart_Handle handle) {
- if (Dart_IsError(handle)) Dart_PropagateError(handle);
- return handle;
-}
-
-void CheckGLError(const char *function) {
- int error = glGetError();
- if (error != GL_NO_ERROR) {
- if (error == GL_INVALID_ENUM) {
- LOGE("%s: An unacceptable value is given for an enumerated argument.",
- function);
- } else if (error == GL_INVALID_VALUE) {
- LOGE("%s: A numeric argument is out of range.", function);
- } else if (error == GL_INVALID_OPERATION) {
- LOGE("%s: The specified operation is not allowed in the current state.",
- function);
- } else if (error == GL_INVALID_FRAMEBUFFER_OPERATION) {
- LOGE("%s: The framebuffer object is not complete.", function);
- } else if (error == GL_OUT_OF_MEMORY) {
- LOGE("%s: There is not enough memory left to execute the command.",
- function);
- } else {
- LOGE("ERROR!: %s returns %d", function, error);
- }
- }
-}
-
-const char* GetArgAsString(Dart_NativeArguments arguments, int idx) {
- Dart_Handle handle = HandleError(Dart_GetNativeArgument(arguments, idx));
- uint8_t* str;
- intptr_t length;
- HandleError(Dart_StringLength(handle, &length));
- HandleError(Dart_StringToUTF8(handle, &str, &length));
- str[length] = 0;
- return const_cast<const char*>(reinterpret_cast<char*>(str));
-}
-
-double GetArgAsDouble(Dart_NativeArguments arguments, int index) {
- Dart_Handle handle = HandleError(Dart_GetNativeArgument(arguments, index));
- if (Dart_IsDouble(handle)) {
- double v;
- HandleError(Dart_DoubleValue(handle, &v));
- return v;
- }
- if (Dart_IsInteger(handle)) {
- int64_t v;
- HandleError(Dart_IntegerToInt64(handle, &v));
- return static_cast<double>(v);
- }
- LOGE("Argument at index %d has non-numeric type", index);
- Dart_ThrowException(Dart_NewStringFromCString("Numeric argument expected."));
- return 0;
-}
-
-int64_t GetArgAsInt(Dart_NativeArguments arguments, int index) {
- Dart_Handle handle = HandleError(Dart_GetNativeArgument(arguments, index));
- if (Dart_IsDouble(handle)) {
- double v;
- HandleError(Dart_DoubleValue(handle, &v));
- return static_cast<int64_t>(v);
- }
- if (Dart_IsInteger(handle)) {
- int64_t v;
- HandleError(Dart_IntegerToInt64(handle, &v));
- return v;
- }
- LOGE("Argument at index %d has non-numeric type", index);
- Dart_ThrowException(Dart_NewStringFromCString("Numeric argument expected."));
- return 0;
-}
-
-bool GetArgAsBool(Dart_NativeArguments arguments, int index) {
- Dart_Handle handle = HandleError(Dart_GetNativeArgument(arguments, index));
- if (Dart_IsBoolean(handle)) {
- bool v;
- HandleError(Dart_BooleanValue(handle, &v));
- return v;
- }
- LOGI("Argument at index %d has non-Boolean type", index);
- Dart_ThrowException(Dart_NewStringFromCString("Boolean argument expected."));
- return false;
-}
-
-int GetListLength(Dart_NativeArguments arguments, int index,
- Dart_Handle& argHandle) {
- argHandle = HandleError(Dart_GetNativeArgument(arguments, index));
- if (Dart_IsList(argHandle)) {
- intptr_t len;
- HandleError(Dart_ListLength(argHandle, &len));
- return len;
- }
- LOGI("Argument at index %d has non-List type", index);
- Dart_ThrowException(Dart_NewStringFromCString("List argument expected."));
- return -1;
-}
-
-GLint* GetArgsAsGLintList(Dart_NativeArguments arguments, int index,
- int* len_out) {
- Dart_Handle argHandle;
- int len = GetListLength(arguments, index, argHandle);
- if (len < 0) return NULL;
- GLint* list = new GLint[len];
- for (int i = 0; i < len; i++) {
- Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
- int64_t v;
- HandleError(Dart_IntegerToInt64(vHandle, &v));
- list[i] = v;
- }
- *len_out = len;
- return list;
-}
-
-GLfloat* GetArgsAsFloatList(Dart_NativeArguments arguments, int index,
- int* len_out) {
- Dart_Handle argHandle;
- int len = GetListLength(arguments, index, argHandle);
- if (len < 0) return NULL;
- GLfloat* list = new GLfloat[len];
- for (int i = 0; i < len; i++) {
- Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
- double v;
- HandleError(Dart_DoubleValue(vHandle, &v));
- list[i] = v;
- }
- *len_out = len;
- return list;
-}
-
-char** GetArgsAsStringList(Dart_NativeArguments arguments, int index,
- int* len_out) {
- Dart_Handle argHandle;
- int len = GetListLength(arguments, index, argHandle);
- if (len < 0) return NULL;
- char** list = new char*[len];
- for (int i = 0; i < len; i++) {
- Dart_Handle vHandle = Dart_ListGetAt(argHandle, i);
- uint8_t* str;
- intptr_t length;
- HandleError(Dart_StringLength(vHandle, &length));
- HandleError(Dart_StringToUTF8(vHandle, &str, &length));
- str[length] = 0;
- list[i] = reinterpret_cast<char*>(str);
- }
- *len_out = len;
- return list;
-}
-
-void SetBoolReturnValue(Dart_NativeArguments arguments, bool b) {
- Dart_Handle result = HandleError(Dart_NewBoolean(b));
- Dart_SetReturnValue(arguments, result);
-}
-
-void SetIntReturnValue(Dart_NativeArguments arguments, int v) {
- Dart_Handle result = HandleError(Dart_NewInteger(v));
- Dart_SetReturnValue(arguments, result);
-}
-
-void SetDoubleReturnValue(Dart_NativeArguments arguments, double v) {
- Dart_Handle result = HandleError(Dart_NewDouble(v));
- Dart_SetReturnValue(arguments, result);
-}
-
-void SetStringReturnValue(Dart_NativeArguments arguments, const char* s) {
- Dart_Handle result = HandleError(Dart_NewStringFromCString(s));
- Dart_SetReturnValue(arguments, result);
-}
-
-void Log(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- LOGI("%s", GetArgAsString(arguments, 0));
- Dart_ExitScope();
-}
-
-void LogError(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- LOGE("%s", GetArgAsString(arguments, 0));
- Dart_ExitScope();
-}
-
-void SystemRand(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- SetIntReturnValue(arguments, rand());
- Dart_ExitScope();
-}
-
-void SystemSrand(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- bool success = false;
- Dart_Handle seed_object = HandleError(Dart_GetNativeArgument(arguments, 0));
- if (Dart_IsInteger(seed_object)) {
- bool fits;
- HandleError(Dart_IntegerFitsIntoInt64(seed_object, &fits));
- if (fits) {
- int64_t seed;
- HandleError(Dart_IntegerToInt64(seed_object, &seed));
- srand(static_cast<unsigned>(seed));
- success = true;
- }
- }
- SetBoolReturnValue(arguments, success);
- Dart_ExitScope();
-}
-
-void GetDeviceScreenWidth(Dart_NativeArguments arguments) {
- LOGI("GetDeviceScreenWidth");
- Dart_EnterScope();
- SetIntReturnValue(arguments, graphics->width());
- Dart_ExitScope();
-}
-
-void GetDeviceScreenHeight(Dart_NativeArguments arguments) {
- LOGI("GetDeviceScreenHeight");
- Dart_EnterScope();
- SetIntReturnValue(arguments, graphics->height());
- Dart_ExitScope();
-}
-
-void SwapBuffers(Dart_NativeArguments arguments) {
- LOGI("SwapBuffers");
- Dart_EnterScope();
- GLSwapBuffers();
- CheckGLError("GLSwapBuffers");
- Dart_ExitScope();
-}
-
-void GLAttachShader(Dart_NativeArguments arguments) {
- LOGI("GLAttachShader");
- Dart_EnterScope();
-
- int64_t program = GetArgAsInt(arguments, 0);
- int64_t shader = GetArgAsInt(arguments, 1);
-
- glAttachShader(program, shader);
- CheckGLError("glAttachShader");
- Dart_ExitScope();
-}
-
-void GLBindBuffer(Dart_NativeArguments arguments) {
- LOGI("GLBindBuffer");
- Dart_EnterScope();
-
- int64_t target = GetArgAsInt(arguments, 0);
- int64_t buffer = GetArgAsInt(arguments, 1);
-
- glBindBuffer(target, buffer);
- CheckGLError("glBindBuffer");
- Dart_ExitScope();
-}
-
-void GLBufferData(Dart_NativeArguments arguments) {
- LOGI("GLBufferData");
- Dart_EnterScope();
-
- int64_t target = GetArgAsInt(arguments, 0);
-
- Dart_Handle dataHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
- intptr_t size;
- HandleError(Dart_ListLength(dataHandle, &size));
-
- LOGI("Size: %d", static_cast<int>(size));
-
- // TODO(vsm): No guarantee that this is a float!
- float* data = new float[size];
- for (int i = 0; i < size; i++) {
- Dart_Handle elemHandle = HandleError(Dart_ListGetAt(dataHandle, i));
- double value;
- Dart_DoubleValue(elemHandle, &value);
- data[i] = static_cast<float>(value);
- LOGI("Value[%d]: %f", i, data[i]);
- }
-
- Dart_Handle usageHandle = HandleError(Dart_GetNativeArgument(arguments, 2));
- int64_t usage;
- HandleError(Dart_IntegerToInt64(usageHandle, &usage));
-
- glBufferData(target, size * sizeof(data[0]), data, usage);
- CheckGLError("glBufferData");
- delete[] data;
- Dart_ExitScope();
-}
-
-void GLCompileShader(Dart_NativeArguments arguments) {
- LOGI("GLCompileShader");
- Dart_EnterScope();
- int64_t shader = GetArgAsInt(arguments, 0);
- glCompileShader(shader);
- CheckGLError("glCompileShader");
- Dart_ExitScope();
-}
-
-void GLCreateBuffer(Dart_NativeArguments arguments) {
- LOGI("GLCreateBuffer");
- Dart_EnterScope();
- GLuint buffer;
- glGenBuffers(1, &buffer);
- CheckGLError("glGenBuffers");
- SetIntReturnValue(arguments, buffer);
- Dart_ExitScope();
-}
-
-void GLCreateProgram(Dart_NativeArguments arguments) {
- LOGI("GLCreateProgram");
- Dart_EnterScope();
- int64_t program = glCreateProgram();
- CheckGLError("glCreateProgram");
- SetIntReturnValue(arguments, program);
- Dart_ExitScope();
-}
-
-void GLCreateShader(Dart_NativeArguments arguments) {
- LOGI("GLCreateShader");
- Dart_EnterScope();
- int64_t type = GetArgAsInt(arguments, 0);
- int64_t shader = glCreateShader((GLenum)type);
- CheckGLError("glCreateShader");
- SetIntReturnValue(arguments, shader);
- Dart_ExitScope();
-}
-
-void GLDrawArrays(Dart_NativeArguments arguments) {
- LOGI("GLDrawArrays");
- Dart_EnterScope();
-
- int64_t mode = GetArgAsInt(arguments, 0);
- int64_t first = GetArgAsInt(arguments, 1);
- int64_t count = GetArgAsInt(arguments, 2);
-
- glDrawArrays(mode, first, count);
- CheckGLError("glDrawArrays");
- Dart_ExitScope();
- LOGI("Done GLDrawArrays");
-}
-
-void GLEnableVertexAttribArray(Dart_NativeArguments arguments) {
- LOGI("GLEnableVertexAttribArray");
- Dart_EnterScope();
-
- int64_t location = GetArgAsInt(arguments, 0);
-
- glEnableVertexAttribArray(location);
- CheckGLError("glEnableVertexAttribArray");
- Dart_ExitScope();
-}
-
-void GLGetAttribLocation(Dart_NativeArguments arguments) {
- LOGI("GLGetAttribLocation");
- Dart_EnterScope();
-
- int64_t program = GetArgAsInt(arguments, 0);
-
- Dart_Handle nameHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
- intptr_t length;
- HandleError(Dart_StringLength(nameHandle, &length));
- uint8_t* str;
- HandleError(Dart_StringToUTF8(nameHandle, &str, &length));
- str[length] = 0;
-
- int64_t location = glGetAttribLocation(program,
- const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str)));
- CheckGLError("glGetAttribLocation");
- SetIntReturnValue(arguments, location);
- Dart_ExitScope();
-}
-
-void GLGetError(Dart_NativeArguments arguments) {
- LOGI("GLGetError");
- Dart_EnterScope();
- SetIntReturnValue(arguments, glGetError());
- Dart_ExitScope();
-}
-
-void GLGetProgramParameter(Dart_NativeArguments arguments) {
- LOGI("GLGetProgramParameter");
- Dart_EnterScope();
-
- int64_t program = GetArgAsInt(arguments, 0);
- int64_t param = GetArgAsInt(arguments, 1);
-
- GLint value = -1;
- glGetProgramiv(program, param, &value);
- CheckGLError("glGetProgramiv");
-
- SetIntReturnValue(arguments, value);
- Dart_ExitScope();
-}
-
-void GLGetShaderParameter(Dart_NativeArguments arguments) {
- LOGI("GLGetShaderParameter");
- Dart_EnterScope();
-
- int64_t shader = GetArgAsInt(arguments, 0);
- int64_t param = GetArgAsInt(arguments, 1);
-
- GLint value = -1;
- glGetShaderiv((GLuint)shader, (GLenum)param, &value);
- CheckGLError("glGetShaderiv");
-
- SetIntReturnValue(arguments, value);
- Dart_ExitScope();
-}
-
-void GLGetShaderInfoLog(Dart_NativeArguments arguments) {
- LOGI("GLGetShaderInfoLog");
- Dart_EnterScope();
-
- int64_t shader = GetArgAsInt(arguments, 0);
-
- GLint infoLogLength = 0;
- glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength);
- GLchar* strInfoLog = new GLchar[infoLogLength + 1];
- glGetShaderInfoLog(shader, infoLogLength, NULL, strInfoLog);
- strInfoLog[infoLogLength] = 0;
-
- SetStringReturnValue(arguments, strInfoLog);
- Dart_ExitScope();
- delete[] strInfoLog;
-}
-
-void GLGetProgramInfoLog(Dart_NativeArguments arguments) {
- LOGI("GLGetProgramInfoLog");
- Dart_EnterScope();
-
- int64_t program = GetArgAsInt(arguments, 0);
-
- GLint infoLogLength;
- glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLogLength);
-
- GLchar* strInfoLog = new GLchar[infoLogLength + 1];
- glGetProgramInfoLog(program, infoLogLength, NULL, strInfoLog);
- strInfoLog[infoLogLength] = 0;
-
- SetStringReturnValue(arguments, strInfoLog);
- Dart_ExitScope();
- delete[] strInfoLog;
-}
-
-void GLGetUniformLocation(Dart_NativeArguments arguments) {
- LOGI("GLGetUniformLocation");
- Dart_EnterScope();
-
- int64_t program = GetArgAsInt(arguments, 0);
-
-
- Dart_Handle nameHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
- intptr_t length;
- HandleError(Dart_StringLength(nameHandle, &length));
- uint8_t* str;
- HandleError(Dart_StringToUTF8(nameHandle, &str, &length));
- str[length] = 0;
-
- int64_t location = glGetUniformLocation(program,
- const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str)));
- CheckGLError("glGetUniformLocation");
- SetIntReturnValue(arguments, location);
- Dart_ExitScope();
-}
-
-void GLLinkProgram(Dart_NativeArguments arguments) {
- LOGI("GLLinkProgram");
- Dart_EnterScope();
- int64_t program = GetArgAsInt(arguments, 0);
- glLinkProgram(program);
- CheckGLError("glLinkProgram");
- Dart_ExitScope();
-}
-
-void GLShaderSource(Dart_NativeArguments arguments) {
- LOGI("GLShaderSource");
- Dart_EnterScope();
-
- int64_t shader = GetArgAsInt(arguments, 0);
-
- Dart_Handle sourceHandle = HandleError(Dart_GetNativeArgument(arguments, 1));
- intptr_t length[1];
- HandleError(Dart_StringLength(sourceHandle, length));
- LOGI("Source length is %d", static_cast<int>(length[0]));
- uint8_t* str[1];
- HandleError(Dart_StringToUTF8(sourceHandle, &str[0], length));
- LOGI("Converted length is %d", static_cast<int>(length[0]));
- str[0][*length] = 0;
-
- LOGI("Source: %s",
- const_cast<const GLchar*>(reinterpret_cast<GLchar*>(str[0])));
- glShaderSource(shader, 1,
- const_cast<const GLchar**>(reinterpret_cast<GLchar**>(str)), NULL);
- CheckGLError("glShaderSource");
- Dart_ExitScope();
-}
-
-void GLUseProgram(Dart_NativeArguments arguments) {
- LOGI("GLUseProgram");
- Dart_EnterScope();
- int64_t program = GetArgAsInt(arguments, 0);
- glUseProgram(program);
- CheckGLError("glUseProgram");
- Dart_ExitScope();
-}
-
-void GLUniform1i(Dart_NativeArguments arguments) {
- LOGI("GLUniform1i");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int64_t v0 = GetArgAsInt(arguments, 1);
- glUniform1i(location, v0);
- CheckGLError("glUniform1i");
- Dart_ExitScope();
-}
-
-void GLUniform2i(Dart_NativeArguments arguments) {
- LOGI("GLUniform2i");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int64_t v0 = GetArgAsInt(arguments, 1);
- int64_t v1 = GetArgAsInt(arguments, 2);
- glUniform2i(location, v0, v1);
- CheckGLError("glUniform2i");
- Dart_ExitScope();
-}
-
-void GLUniform3i(Dart_NativeArguments arguments) {
- LOGI("GLUniform3i");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int64_t v0 = GetArgAsInt(arguments, 1);
- int64_t v1 = GetArgAsInt(arguments, 2);
- int64_t v2 = GetArgAsInt(arguments, 3);
- glUniform3i(location, v0, v1, v2);
- CheckGLError("glUniform3i");
- Dart_ExitScope();
-}
-
-void GLUniform4i(Dart_NativeArguments arguments) {
- LOGI("GLUniform4i");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int64_t v0 = GetArgAsInt(arguments, 1);
- int64_t v1 = GetArgAsInt(arguments, 2);
- int64_t v2 = GetArgAsInt(arguments, 3);
- int64_t v3 = GetArgAsInt(arguments, 4);
- glUniform4i(location, v0, v1, v2, v3);
- CheckGLError("glUniform4i");
- Dart_ExitScope();
-}
-
-void GLUniform1f(Dart_NativeArguments arguments) {
- LOGI("GLUniform1f");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- double v0 = GetArgAsDouble(arguments, 1);
- glUniform1f(location, v0);
- CheckGLError("glUniform1f");
- Dart_ExitScope();
-}
-
-void GLUniform2f(Dart_NativeArguments arguments) {
- LOGI("GLUniform2f");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- double v0 = GetArgAsDouble(arguments, 1);
- double v1 = GetArgAsDouble(arguments, 2);
- glUniform2f(location, v0, v1);
- CheckGLError("glUniform2f");
- Dart_ExitScope();
-}
-
-void GLUniform3f(Dart_NativeArguments arguments) {
- LOGI("GLUniform3f");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- double v0 = GetArgAsDouble(arguments, 1);
- double v1 = GetArgAsDouble(arguments, 2);
- double v2 = GetArgAsDouble(arguments, 3);
- glUniform3f(location, v0, v1, v2);
- CheckGLError("glUniform3f");
- Dart_ExitScope();
-}
-
-void GLUniform4f(Dart_NativeArguments arguments) {
- LOGI("GLUniform4f");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- double v0 = GetArgAsDouble(arguments, 1);
- double v1 = GetArgAsDouble(arguments, 2);
- double v2 = GetArgAsDouble(arguments, 3);
- double v3 = GetArgAsDouble(arguments, 4);
- glUniform4f(location, v0, v1, v2, v3);
- CheckGLError("glUniform4f");
- Dart_ExitScope();
-}
-
-void GLUniform1iv(Dart_NativeArguments arguments) {
- LOGI("GLUniform1iv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLint* list = GetArgsAsGLintList(arguments, 1, &len);
- if (list != NULL) {
- glUniform1iv(location, len, list);
- delete [] list;
- CheckGLError("glUniform1iv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform2iv(Dart_NativeArguments arguments) {
- LOGI("GLUniform2iv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLint* list = GetArgsAsGLintList(arguments, 1, &len);
- if (list != NULL) {
- glUniform2iv(location, len / 2, list);
- delete [] list;
- CheckGLError("glUniform2iv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform3iv(Dart_NativeArguments arguments) {
- LOGI("GLUniform3iv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLint* list = GetArgsAsGLintList(arguments, 1, &len);
- if (list != NULL) {
- glUniform3iv(location, len / 3, list);
- delete [] list;
- CheckGLError("glUniform3iv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform4iv(Dart_NativeArguments arguments) {
- LOGI("GLUniform4iv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLint* list = GetArgsAsGLintList(arguments, 1, &len);
- if (list != NULL) {
- glUniform1iv(location, len / 4, list);
- delete [] list;
- CheckGLError("glUniform4iv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform1fv(Dart_NativeArguments arguments) {
- LOGI("GLUniform1fv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLfloat* list = GetArgsAsFloatList(arguments, 1, &len);
- if (list != NULL) {
- glUniform1fv(location, len, list);
- delete [] list;
- CheckGLError("glUniform1fv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform2fv(Dart_NativeArguments arguments) {
- LOGI("GLUniform2fv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLfloat* list = GetArgsAsFloatList(arguments, 1, &len);
- if (list != NULL) {
- glUniform2fv(location, len / 2, list);
- delete [] list;
- CheckGLError("glUniform2fv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform3fv(Dart_NativeArguments arguments) {
- LOGI("GLUniform3fv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLfloat* list = GetArgsAsFloatList(arguments, 1, &len);
- if (list != NULL) {
- glUniform3fv(location, len / 3, list);
- delete [] list;
- CheckGLError("glUniform3fv");
- }
- Dart_ExitScope();
-}
-
-void GLUniform4fv(Dart_NativeArguments arguments) {
- LOGI("In GLUniform4fv");
- Dart_EnterScope();
- int64_t location = GetArgAsInt(arguments, 0);
- int len;
- GLfloat* list = GetArgsAsFloatList(arguments, 1, &len);
- if (list != NULL) {
- glUniform4fv(location, len / 4, list);
- delete [] list;
- CheckGLError("glUniform4fv");
- }
- Dart_ExitScope();
-}
-
-void GLViewport(Dart_NativeArguments arguments) {
- LOGI("GLViewport");
- Dart_EnterScope();
- int64_t x = GetArgAsInt(arguments, 0);
- int64_t y = GetArgAsInt(arguments, 1);
- int64_t width = GetArgAsInt(arguments, 2);
- int64_t height = GetArgAsInt(arguments, 3);
- glViewport(x, y, width, height);
- CheckGLError("glViewPort");
- Dart_ExitScope();
-}
-
-void GLVertexAttribPointer(Dart_NativeArguments arguments) {
- LOGI("GLVertexAttribPointer");
- Dart_EnterScope();
- int64_t index = GetArgAsInt(arguments, 0);
- int64_t size = GetArgAsInt(arguments, 1);
- int64_t type = GetArgAsInt(arguments, 2);
- bool normalized = GetArgAsBool(arguments, 3);
- int64_t stride = GetArgAsInt(arguments, 4);
-
- Dart_Handle pointerHandle = HandleError(Dart_GetNativeArgument(arguments, 5));
- int64_t pointerValue;
- HandleError(Dart_IntegerToInt64(pointerHandle, &pointerValue));
- const void* pointer;
- pointer = const_cast<const void*>(reinterpret_cast<void*>(pointerValue));
-
- glVertexAttribPointer(index, size, type, normalized, stride, pointer);
- CheckGLError("glVertexAttribPointer");
- Dart_ExitScope();
-}
-
-void GLClearColor(Dart_NativeArguments arguments) {
- LOGI("GLClearColor");
- Dart_EnterScope();
- double red = GetArgAsDouble(arguments, 0);
- double green = GetArgAsDouble(arguments, 1);
- double blue = GetArgAsDouble(arguments, 2);
- double alpha = GetArgAsDouble(arguments, 3);
- glClearColor(red, green, blue, alpha);
- CheckGLError("glClearColor");
- Dart_ExitScope();
-}
-
-void GLClearDepth(Dart_NativeArguments arguments) {
- LOGI("GLClearDepth");
- Dart_EnterScope();
- double depth = GetArgAsDouble(arguments, 0);
-#if defined(__ANDROID__)
- glClearDepthf(depth);
-#else
- glClearDepth(depth);
-#endif
- CheckGLError("glClearDepth");
- Dart_ExitScope();
-}
-
-void GLClear(Dart_NativeArguments arguments) {
- LOGI("GLClear");
- Dart_EnterScope();
- Dart_Handle maskHandle = HandleError(Dart_GetNativeArgument(arguments, 0));
- int64_t mask;
- HandleError(Dart_IntegerToInt64(maskHandle, &mask));
- glClear(mask);
- CheckGLError("glClear");
- Dart_ExitScope();
-}
-
-void ReturnGLIntConstant(Dart_NativeArguments arguments, int c) {
- Dart_EnterScope();
- SetIntReturnValue(arguments, c);
- Dart_ExitScope();
-}
-
-void GLArrayBuffer(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_ARRAY_BUFFER);
-}
-
-void GLColorBufferBit(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_COLOR_BUFFER_BIT);
-}
-
-void GLCompileStatus(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_COMPILE_STATUS);
-}
-
-void GLDeleteStatus(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_DELETE_STATUS);
-}
-
-void GLDepthBufferBit(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_DEPTH_BUFFER_BIT);
-}
-
-void GLFloat(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_FLOAT);
-}
-
-void GLFragmentShader(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_FRAGMENT_SHADER);
-}
-
-void GLLinkStatus(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_LINK_STATUS);
-}
-
-void GLStaticDraw(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_STATIC_DRAW);
-}
-
-void GLTriangleStrip(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_TRIANGLE_STRIP);
-}
-
-void GLTriangles(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_TRIANGLES);
-}
-
-void GLTrue(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_TRUE);
-}
-
-void GLValidateStatus(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_VALIDATE_STATUS);
-}
-
-void GLVertexShader(Dart_NativeArguments arguments) {
- ReturnGLIntConstant(arguments, GL_VERTEX_SHADER);
-}
-
-uint8_t* RandomArray(int seed, int length) {
- if (length <= 0 || length > 10000000) return NULL;
- uint8_t* values = reinterpret_cast<uint8_t*>(malloc(length));
- if (NULL == values) return NULL;
- srand(seed);
- for (int i = 0; i < length; ++i) {
- values[i] = rand() % 256;
- }
- return values;
-}
-
-void WrappedRandomArray(Dart_Port dest_port_id,
- Dart_Port reply_port_id,
- Dart_CObject* message) {
- if (message->type == Dart_CObject_kArray &&
- 2 == message->value.as_array.length) {
- // Use .as_array and .as_int32 to access the data in the Dart_CObject.
- Dart_CObject* param0 = message->value.as_array.values[0];
- Dart_CObject* param1 = message->value.as_array.values[1];
- if (param0->type == Dart_CObject_kInt32 &&
- param1->type == Dart_CObject_kInt32) {
- int length = param0->value.as_int32;
- int seed = param1->value.as_int32;
-
- uint8_t* values = RandomArray(seed, length);
-
- if (values != NULL) {
- Dart_CObject result;
- result.type = Dart_CObject_kTypedData;
- result.value.as_typed_data.type = Dart_TypedData_kUint8;
- result.value.as_typed_data.values = values;
- result.value.as_typed_data.length = length;
- Dart_PostCObject(reply_port_id, &result);
- free(values);
- // It is OK that result is destroyed when function exits.
- // Dart_PostCObject has copied its data.
- return;
- }
- }
- }
- Dart_CObject result;
- result.type = Dart_CObject_kNull;
- Dart_PostCObject(reply_port_id, &result);
-}
-
-void RandomArrayServicePort(Dart_NativeArguments arguments) {
- Dart_EnterScope();
- Dart_SetReturnValue(arguments, Dart_Null());
- Dart_Port service_port =
- Dart_NewNativePort("RandomArrayService", WrappedRandomArray, true);
- if (service_port != ((Dart_Port)0)) {
- Dart_Handle send_port = HandleError(Dart_NewSendPort(service_port));
- Dart_SetReturnValue(arguments, send_port);
- }
- Dart_ExitScope();
-}
-
-void PlayBackground(Dart_NativeArguments arguments) {
- LOGI("PlayBackground");
- Dart_EnterScope();
- const char* what = GetArgAsString(arguments, 0);
- int rtn = PlayBackgroundSound(what);
- SetIntReturnValue(arguments, rtn);
- Dart_ExitScope();
-}
-
-void StopBackground(Dart_NativeArguments arguments) {
- LOGI("StopBackground");
- Dart_EnterScope();
- StopBackgroundSound();
- Dart_ExitScope();
-}
-
-void LoadSample(Dart_NativeArguments arguments) {
- LOGI("LoadSample");
- Dart_EnterScope();
- const char* what = GetArgAsString(arguments, 0);
- int rtn = LoadSoundSample(what);
- SetIntReturnValue(arguments, rtn);
- Dart_ExitScope();
-}
-
-void PlaySample(Dart_NativeArguments arguments) {
- LOGI("PlaySample");
- Dart_EnterScope();
- const char* what = GetArgAsString(arguments, 0);
- int rtn = PlaySoundSample(what);
- SetIntReturnValue(arguments, rtn);
- Dart_ExitScope();
-}
-
-// 2D Canvas.
-
-CanvasContext* display_context = NULL;
-
-void C2DCreateNativeContext(Dart_NativeArguments arguments) {
- LOGI("In C2DCreateNativeContext");
- Dart_EnterScope();
-
- int handle = GetArgAsInt(arguments, 0);
- int width = GetArgAsInt(arguments, 1);
- int height = GetArgAsInt(arguments, 2);
-
- CanvasContext* rtn = new CanvasContext(handle, width, height);
- if (display_context == NULL) {
- LOGI("Created display context");
- display_context = rtn;
- }
- Dart_ExitScope();
- LOGI("Out C2DCreateNativeContext");
-}
-
-void C2DSetWidth(Dart_NativeArguments arguments) {
- LOGI("In C2DSetWidth");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- int width = GetArgAsInt(arguments, 1);
- SetIntReturnValue(arguments, Context2D(handle)->setWidth(width));
- Dart_ExitScope();
- LOGI("Out C2DSetWidth");
-}
-
-void C2DSetHeight(Dart_NativeArguments arguments) {
- LOGI("In C2DSetHeight");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- int height = GetArgAsInt(arguments, 1);
- SetIntReturnValue(arguments, Context2D(handle)->setHeight(height));
- Dart_ExitScope();
- LOGI("Out C2DSetHeight");
-}
-
-void C2DSetGlobalAlpha(Dart_NativeArguments arguments) {
- LOGI("In C2DSetGlobalAlpha");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double alpha = GetArgAsDouble(arguments, 1);
- alpha = MIN(1.0, MAX(alpha, 0.0));
- Context2D(handle)->setGlobalAlpha(alpha);
- SetDoubleReturnValue(arguments, alpha);
- Dart_ExitScope();
- LOGI("Out C2DSetGlobalAlpha");
-}
-
-void C2DSetFillStyle(Dart_NativeArguments arguments) {
- LOGI("In C2DSetFillStyle");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* color = GetArgAsString(arguments, 1);
- Context2D(handle)->setFillColor(color);
- Dart_ExitScope();
- LOGI("Out C2DSetFillStyle");
-}
-
-void C2DSetFont(Dart_NativeArguments arguments) {
- LOGI("In C2DSetFont");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* font = GetArgAsString(arguments, 1);
- SetStringReturnValue(arguments, Context2D(handle)->setFont(font));
- Dart_ExitScope();
- LOGI("Out C2DSetFont");
-}
-
-void C2DSetGlobalCompositeOperation(Dart_NativeArguments arguments) {
- LOGI("In C2DSetGlobalCompositeOperation");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* op = GetArgAsString(arguments, 1);
- Context2D(handle)->setGlobalCompositeOperation(op);
- Dart_ExitScope();
- LOGI("Out C2DSetGlobalCompositeOperation");
-}
-
-void C2DSetLineCap(Dart_NativeArguments arguments) {
- LOGI("In C2DSetLineCap");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* lc = GetArgAsString(arguments, 1);
- Context2D(handle)->setLineCap(lc);
- Dart_ExitScope();
- LOGI("Out C2DSetLineCap");
-}
-
-void C2DSetLineJoin(Dart_NativeArguments arguments) {
- LOGI("In C2DSetLineJoin");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* lj = GetArgAsString(arguments, 1);
- Context2D(handle)->setLineJoin(lj);
- Dart_ExitScope();
- LOGI("Out C2DSetLineJoin");
-}
-
-void C2DSetLineWidth(Dart_NativeArguments arguments) {
- LOGI("In C2DSetLineWidth");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double w = GetArgAsDouble(arguments, 1);
- Context2D(handle)->setLineWidth(w);
- Dart_ExitScope();
- LOGI("Out C2DSetLineWidth");
-}
-
-void C2DSetMiterLimit(Dart_NativeArguments arguments) {
- LOGI("In C2DSetMiterLimit");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double w = GetArgAsDouble(arguments, 1);
- Context2D(handle)->setMiterLimit(w);
- Dart_ExitScope();
- LOGI("Out C2DSetMiterLimit");
-}
-
-void C2DSetShadowBlur(Dart_NativeArguments arguments) {
- LOGI("In C2DSetShadowBlur");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double blur = GetArgAsDouble(arguments, 1);
- Context2D(handle)->setShadowBlur(blur);
- Dart_ExitScope();
- LOGI("Out C2DSetShadowBlur");
-}
-
-void C2DSetShadowColor(Dart_NativeArguments arguments) {
- LOGI("In C2DSetShadowColor");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* color = GetArgAsString(arguments, 1);
- Context2D(handle)->setShadowColor(color);
- Dart_ExitScope();
- LOGI("Out C2DSetShadowColor");
-}
-
-void C2DSetShadowOffsetX(Dart_NativeArguments arguments) {
- LOGI("In C2DSetShadowOffsetX");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double offset = GetArgAsDouble(arguments, 1);
- Context2D(handle)->setShadowOffsetX(offset);
- Dart_ExitScope();
- LOGI("Out C2DSetShadowOffsetX");
-}
-
-void C2DSetShadowOffsetY(Dart_NativeArguments arguments) {
- LOGI("In C2DSetShadowOffsetY");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double offset = GetArgAsDouble(arguments, 1);
- Context2D(handle)->setShadowOffsetY(offset);
- Dart_ExitScope();
- LOGI("Out C2DSetShadowOffsetY");
-}
-
-void C2DSetStrokeStyle(Dart_NativeArguments arguments) {
- LOGI("In C2DSetStrokeStyle");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* color = GetArgAsString(arguments, 1);
- Context2D(handle)->setStrokeColor(color);
- Dart_ExitScope();
- LOGI("Out C2DSetStrokeStyle");
-}
-
-void C2DSetTextAlign(Dart_NativeArguments arguments) {
- LOGI("In C2DSetTextAlign");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* align = GetArgAsString(arguments, 1);
- SetStringReturnValue(arguments, Context2D(handle)->setTextAlign(align));
- Dart_ExitScope();
- LOGI("Out C2DSetTextAlign");
-}
-
-void C2DSetTextBaseline(Dart_NativeArguments arguments) {
- LOGI("In C2DSetTextBaseline");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* baseline = GetArgAsString(arguments, 1);
- SetStringReturnValue(arguments, Context2D(handle)->setTextBaseline(baseline));
- Dart_ExitScope();
- LOGI("Out C2DSetTextBaseline");
-}
-
-void C2DGetImageSmoothingEnabled(Dart_NativeArguments arguments) {
- LOGI("In C2DGetImageSmoothingEnabled");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- SetDoubleReturnValue(arguments, Context2D(handle)->imageSmoothingEnabled());
- Dart_ExitScope();
- LOGI("Out C2DGetImageSmoothingEnabled");
-}
-
-void C2DArc(Dart_NativeArguments arguments) {
- LOGI("In C2DArc");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double x = GetArgAsDouble(arguments, 1);
- double y = GetArgAsDouble(arguments, 2);
- double r = GetArgAsDouble(arguments, 3);
- double a1 = GetArgAsDouble(arguments, 4);
- double a2 = GetArgAsDouble(arguments, 5);
- bool anticlockwise = GetArgAsBool(arguments, 6);
- Context2D(handle)->Arc(x, y, r, a1, a2, anticlockwise);
- Dart_ExitScope();
- LOGI("Out C2DArc");
-}
-
-void C2DArcTo(Dart_NativeArguments arguments) {
- LOGI("In C2DArcTo");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double x1 = GetArgAsDouble(arguments, 1);
- double y1 = GetArgAsDouble(arguments, 2);
- double x2 = GetArgAsDouble(arguments, 3);
- double y2 = GetArgAsDouble(arguments, 4);
- double radius = GetArgAsDouble(arguments, 5);
- Context2D(handle)->ArcTo(x1, y1, x2, y2, radius);
- Dart_ExitScope();
- LOGI("Out C2DArcTo");
-}
-
-void C2DBeginPath(Dart_NativeArguments arguments) {
- LOGI("In C2DBeginPath");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- Context2D(handle)->BeginPath();
- Dart_ExitScope();
- LOGI("Out C2DBeginPath");
-}
-
-void C2DBezierCurveTo(Dart_NativeArguments arguments) {
- LOGI("In C2DBezierCurveTo");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double cp1x = GetArgAsDouble(arguments, 1);
- double cp1y = GetArgAsDouble(arguments, 2);
- double cp2x = GetArgAsDouble(arguments, 3);
- double cp2y = GetArgAsDouble(arguments, 4);
- double x = GetArgAsDouble(arguments, 5);
- double y = GetArgAsDouble(arguments, 6);
- Context2D(handle)->BezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
- Dart_ExitScope();
- LOGI("Out C2DBezierCurveTo");
-}
-
-void C2DClearRect(Dart_NativeArguments arguments) {
- LOGI("In C2DClearRect");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double left = GetArgAsDouble(arguments, 1);
- double top = GetArgAsDouble(arguments, 2);
- double width = GetArgAsDouble(arguments, 3);
- double height = GetArgAsDouble(arguments, 4);
- Context2D(handle)->ClearRect(left, top, width, height);
- Dart_ExitScope();
- LOGI("Out C2DClearRect");
-}
-
-void C2DClip(Dart_NativeArguments arguments) {
- LOGI("In C2DClip");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- Context2D(handle)->Clip();
- Dart_ExitScope();
- LOGI("Out C2DClip");
-}
-
-void C2DClosePath(Dart_NativeArguments arguments) {
- LOGI("In C2DClosePath");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- Context2D(handle)->ClosePath();
- Dart_ExitScope();
- LOGI("Out C2DClosePath");
-}
-
-void C2DCreateImageDataFromDimensions(Dart_NativeArguments arguments) {
- LOGI("In C2DCreateImageDataFromDimensions");
- Dart_EnterScope();
- // int handle = GetArgAsInt(arguments, 0);
- // double sw = GetArgAsDouble(arguments, 1);
- // double sh = GetArgAsDouble(arguments, 2);
- // GLubyte* pixels = (GLubyte*)calloc(sw * sh * 4, sizeof(GLubyte));
- // ImageData* imageData = new ImageData(sw, sh, pixels);
- // TODO(gram): How do we create a Dart ImageData object from this?
- Dart_ExitScope();
- LOGI("Out C2DCreateImageDataFromDimensions");
-}
-
-void C2DDrawImage(Dart_NativeArguments arguments) {
- LOGI("In C2DDrawImage");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* src_url = GetArgAsString(arguments, 1);
- int sx = GetArgAsInt(arguments, 2);
- int sy = GetArgAsInt(arguments, 3);
- bool has_src_dimensions = GetArgAsBool(arguments, 4);
- int sw = GetArgAsInt(arguments, 5);
- int sh = GetArgAsInt(arguments, 6);
- int dx = GetArgAsInt(arguments, 7);
- int dy = GetArgAsInt(arguments, 8);
- bool has_dst_dimensions = GetArgAsBool(arguments, 9);
- int dw = GetArgAsInt(arguments, 10);
- int dh = GetArgAsInt(arguments, 11);
- Context2D(handle)->DrawImage(src_url,
- sx, sy, has_src_dimensions, sw, sh,
- dx, dy, has_dst_dimensions, dw, dh);
- Dart_ExitScope();
- LOGI("Out C2DDrawImage");
-}
-
-void C2DFill(Dart_NativeArguments arguments) {
- LOGI("In C2DFill");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- Context2D(handle)->Fill();
- Dart_ExitScope();
- LOGI("Out C2DFill");
-}
-
-void C2DFillRect(Dart_NativeArguments arguments) {
- LOGI("In C2DFillRect");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double left = GetArgAsDouble(arguments, 1);
- double top = GetArgAsDouble(arguments, 2);
- double width = GetArgAsDouble(arguments, 3);
- double height = GetArgAsDouble(arguments, 4);
- Context2D(handle)->FillRect(left, top, width, height);
- Dart_ExitScope();
- LOGI("Out C2DFillRect");
-}
-
-void C2DFillText(Dart_NativeArguments arguments) {
- LOGI("In C2DFillText");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* text = GetArgAsString(arguments, 1);
- double x = GetArgAsDouble(arguments, 2);
- double y = GetArgAsDouble(arguments, 3);
- double maxWidth = GetArgAsDouble(arguments, 4);
- Context2D(handle)->FillText(text, x, y, maxWidth);
- Dart_ExitScope();
- LOGI("Out C2DFillText");
-}
-
-void C2DGetImageData(Dart_NativeArguments arguments) {
- LOGI("In C2DGetImageData");
- Dart_EnterScope();
- // TODO(gram): Complete this.
- // int handle = GetArgAsInt(arguments, 0);
- // double sx = GetArgAsDouble(arguments, 1);
- // double sy = GetArgAsDouble(arguments, 2);
- // double sw = GetArgAsDouble(arguments, 3);
- // double sh = GetArgAsDouble(arguments, 4);
- // ... = Context2D(handle)->GetImageData(text, x, y, maxWidth);
- Dart_ExitScope();
- LOGI("Out C2DGetImageData");
-}
-
-void C2DLineTo(Dart_NativeArguments arguments) {
- LOGI("In C2DLineTo");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double x = GetArgAsDouble(arguments, 1);
- double y = GetArgAsDouble(arguments, 2);
- Context2D(handle)->LineTo(x, y);
- Dart_ExitScope();
- LOGI("Out C2DLineTo");
-}
-
-void C2DMeasureText(Dart_NativeArguments arguments) {
- LOGI("In C2DMeasureText");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* text = GetArgAsString(arguments, 1);
- float width = Context2D(handle)->MeasureText(text);
- SetDoubleReturnValue(arguments, width);
- Dart_ExitScope();
- LOGI("Out C2DMeasureText");
-}
-
-void C2DMoveTo(Dart_NativeArguments arguments) {
- LOGI("IN C2DMoveTo");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double x = GetArgAsDouble(arguments, 1);
- double y = GetArgAsDouble(arguments, 2);
- Context2D(handle)->MoveTo(x, y);
- Dart_ExitScope();
- LOGI("Out C2DMoveTo");
-}
-
-void C2DPutImageData(Dart_NativeArguments arguments) {
- LOGI("IN C2DPutImageData");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- // Get object arguments 2
- // BindingImageData* imageData = GetArgAsObject(arguments, 1);
- double dx = GetArgAsDouble(arguments, 2);
- double dy = GetArgAsDouble(arguments, 3);
- Context2D(handle)->PutImageData(NULL, dx, dy);
- Dart_ExitScope();
- LOGI("Out C2DPutImageData");
-}
-
-void C2DQuadraticCurveTo(Dart_NativeArguments arguments) {
- LOGI("In C2DQuadraticCurveTo");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double cpx = GetArgAsDouble(arguments, 1);
- double cpy = GetArgAsDouble(arguments, 2);
- double x = GetArgAsDouble(arguments, 3);
- double y = GetArgAsDouble(arguments, 4);
- Context2D(handle)->QuadraticCurveTo(cpx, cpy, x, y);
- Dart_ExitScope();
- LOGI("Out C2DQuadraticCurveTo");
-}
-
-void C2DRect(Dart_NativeArguments arguments) {
- LOGI("In C2DRect");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double x = GetArgAsDouble(arguments, 1);
- double y = GetArgAsDouble(arguments, 2);
- double w = GetArgAsDouble(arguments, 3);
- double h = GetArgAsDouble(arguments, 4);
- Context2D(handle)->Rect(x, y, w, h);
- Dart_ExitScope();
- LOGI("Out C2DRect");
-}
-
-void C2DRestore(Dart_NativeArguments arguments) {
- LOGI("In C2DRestore");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- CanvasContext* context = Context2D(handle);
- context->Restore();
- Dart_ExitScope();
- LOGI("Out C2DRestore");
-}
-
-void C2DRotate(Dart_NativeArguments arguments) {
- LOGI("In C2DRotate");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double a = GetArgAsDouble(arguments, 1);
- Context2D(handle)->Rotate(a);
- Dart_ExitScope();
- LOGI("Out C2DRotate");
-}
-
-void C2DSave(Dart_NativeArguments arguments) {
- LOGI("In C2DSave");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- Context2D(handle)->Save();
- Dart_ExitScope();
- LOGI("Out C2DSave");
-}
-
-void C2DScale(Dart_NativeArguments arguments) {
- LOGI("In C2DScale");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double sx = GetArgAsDouble(arguments, 1);
- double sy = GetArgAsDouble(arguments, 2);
- Context2D(handle)->Scale(sx, sy);
- Dart_ExitScope();
- LOGI("Out C2DScale");
-}
-
-void C2DSetLineDash(Dart_NativeArguments arguments) {
- LOGI("In C2DSetLineDash");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- int len;
- float* dash = static_cast<float*>(GetArgsAsFloatList(arguments, 1, &len));
- if (dash != NULL) {
- Context2D(handle)->setLineDash(dash, len);
- delete[] dash;
- }
- Dart_ExitScope();
- LOGI("Out C2DSetLineDash");
-}
-
-void C2DSetLineDashOffset(Dart_NativeArguments arguments) {
- LOGI("In C2DSetLineDashOffset");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double offset = GetArgAsDouble(arguments, 1);
- Context2D(handle)->setLineDashOffset(offset);
- Dart_ExitScope();
- LOGI("Out C2DSetLineDashOffset");
-}
-
-void C2DSetTransform(Dart_NativeArguments arguments) {
- LOGI("In C2DSetTransform");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double m11 = GetArgAsDouble(arguments, 1);
- double m12 = GetArgAsDouble(arguments, 2);
- double m21 = GetArgAsDouble(arguments, 3);
- double m22 = GetArgAsDouble(arguments, 4);
- double dx = GetArgAsDouble(arguments, 5);
- double dy = GetArgAsDouble(arguments, 6);
- Context2D(handle)->setTransform(m11, m12, m21, m22, dx, dy);
- Dart_ExitScope();
- LOGI("Out C2DSetTransform");
-}
-
-void C2DStroke(Dart_NativeArguments arguments) {
- LOGI("In C2DStroke");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- Context2D(handle)->Stroke();
- Dart_ExitScope();
- LOGI("Out C2DStroke");
-}
-
-void C2DStrokeRect(Dart_NativeArguments arguments) {
- LOGI("In C2DStrokeRect");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double left = GetArgAsDouble(arguments, 1);
- double top = GetArgAsDouble(arguments, 2);
- double width = GetArgAsDouble(arguments, 3);
- double height = GetArgAsDouble(arguments, 4);
- Context2D(handle)->StrokeRect(left, top, width, height);
- Dart_ExitScope();
- LOGI("Out C2DStrokeRect");
-}
-
-void C2DStrokeText(Dart_NativeArguments arguments) {
- LOGI("In C2DStrokeText");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- const char* text = GetArgAsString(arguments, 1);
- double x = GetArgAsDouble(arguments, 2);
- double y = GetArgAsDouble(arguments, 3);
- double maxWidth = GetArgAsDouble(arguments, 4);
- Context2D(handle)->StrokeText(text, x, y, maxWidth);
- Dart_ExitScope();
- LOGI("Out C2DStrokeText");
-}
-
-void C2DTransform(Dart_NativeArguments arguments) {
- LOGI("In C2DTransform");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double m11 = GetArgAsDouble(arguments, 1);
- double m12 = GetArgAsDouble(arguments, 2);
- double m21 = GetArgAsDouble(arguments, 3);
- double m22 = GetArgAsDouble(arguments, 4);
- double dx = GetArgAsDouble(arguments, 5);
- double dy = GetArgAsDouble(arguments, 6);
- Context2D(handle)->Transform(m11, m12, m21, m22, dx, dy);
- Dart_ExitScope();
- LOGI("Out C2DTransform");
-}
-
-void C2DTranslate(Dart_NativeArguments arguments) {
- LOGI("In C2DTranslate");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- double x = GetArgAsDouble(arguments, 1);
- double y = GetArgAsDouble(arguments, 2);
- Context2D(handle)->Translate(x, y);
- Dart_ExitScope();
- LOGI("Out C2DTranslate");
-}
-
-void C2DSetFillGradient(Dart_NativeArguments arguments) {
- LOGI("In C2DSetFillGradient");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- bool is_radial = GetArgAsBool(arguments, 1);
- double x0 = GetArgAsDouble(arguments, 2);
- double y0 = GetArgAsDouble(arguments, 3);
- double r0 = GetArgAsDouble(arguments, 4);
- double x1 = GetArgAsDouble(arguments, 5);
- double y1 = GetArgAsDouble(arguments, 6);
- double r1 = GetArgAsDouble(arguments, 7);
- int num_positions, num_colors;
- float* positions = GetArgsAsFloatList(arguments, 8, &num_positions);
- char** colors = GetArgsAsStringList(arguments, 9, &num_colors);
- Context2D(handle)->SetFillGradient(is_radial, x0, y0, r0, x1, y1, r1,
- num_positions, positions, colors);
- Dart_ExitScope();
- LOGI("Out C2DSetFillGradient");
-}
-
-void C2DSetStrokeGradient(Dart_NativeArguments arguments) {
- LOGI("In C2DSetStrokeGradient");
- Dart_EnterScope();
- int handle = GetArgAsInt(arguments, 0);
- bool is_radial = GetArgAsBool(arguments, 1);
- double x0 = GetArgAsDouble(arguments, 2);
- double y0 = GetArgAsDouble(arguments, 3);
- double r0 = GetArgAsDouble(arguments, 4);
- double x1 = GetArgAsDouble(arguments, 5);
- double y1 = GetArgAsDouble(arguments, 6);
- double r1 = GetArgAsDouble(arguments, 7);
- int num_positions, num_colors;
- float* positions = GetArgsAsFloatList(arguments, 8, &num_positions);
- char** colors = GetArgsAsStringList(arguments, 9, &num_colors);
- Context2D(handle)->SetStrokeGradient(is_radial, x0, y0, r0, x1, y1, r1,
- num_positions, positions, colors);
- Dart_ExitScope();
- LOGI("Out C2DSetStrokeGradient");
-}
-
-void C2DGetImageWidth(Dart_NativeArguments arguments) {
- LOGI("In C2DGetImageWidth");
- Dart_EnterScope();
- const char* src_url = GetArgAsString(arguments, 0);
- int w = ImageCache::GetWidth(src_url);
- SetIntReturnValue(arguments, w);
- Dart_ExitScope();
- LOGI("Out C2DGetImageWidth");
-}
-
-void C2DGetImageHeight(Dart_NativeArguments arguments) {
- LOGI("In C2DGetImageHeight");
- Dart_EnterScope();
- const char* src_url = GetArgAsString(arguments, 0);
- int h = ImageCache::GetHeight(src_url);
- SetIntReturnValue(arguments, h);
- Dart_ExitScope();
- LOGI("Out C2DGetImageHeight");
-}
-
-struct FunctionLookup {
- const char* name;
- Dart_NativeFunction function;
-};
-
-FunctionLookup function_list[] = {
- {"Log", Log},
- {"LogError", LogError},
- {"SystemRand", SystemRand},
- {"SystemSrand", SystemSrand},
- {"SwapBuffers", SwapBuffers},
- {"GetDeviceScreenWidth", GetDeviceScreenWidth},
- {"GetDeviceScreenHeight", GetDeviceScreenHeight},
- {"GLAttachShader", GLAttachShader},
- {"GLBindBuffer", GLBindBuffer},
- {"GLBufferData", GLBufferData},
- {"GLClear", GLClear},
- {"GLClearColor", GLClearColor},
- {"GLClearDepth", GLClearDepth},
- {"GLCompileShader", GLCompileShader},
- {"GLCreateBuffer", GLCreateBuffer},
- {"GLCreateProgram", GLCreateProgram},
- {"GLCreateShader", GLCreateShader},
- {"GLDrawArrays", GLDrawArrays},
- {"GLEnableVertexAttribArray", GLEnableVertexAttribArray},
- {"GLGetAttribLocation", GLGetAttribLocation},
- {"GLGetError", GLGetError},
- {"GLGetProgramParameter", GLGetProgramParameter},
- {"GLGetShaderParameter", GLGetShaderParameter},
- {"GLGetUniformLocation", GLGetUniformLocation},
- {"GLLinkProgram", GLLinkProgram},
- {"GLShaderSource", GLShaderSource},
- {"GLUniform1f", GLUniform1f},
- {"GLUniform2f", GLUniform2f},
- {"GLUniform3f", GLUniform3f},
- {"GLUniform4f", GLUniform4f},
- {"GLUniform1i", GLUniform1i},
- {"GLUniform2i", GLUniform2i},
- {"GLUniform3i", GLUniform3i},
- {"GLUniform4i", GLUniform4i},
- {"GLUniform1fv", GLUniform1fv},
- {"GLUniform2fv", GLUniform2fv},
- {"GLUniform3fv", GLUniform3fv},
- {"GLUniform4fv", GLUniform4fv},
- {"GLUniform1iv", GLUniform1iv},
- {"GLUniform2iv", GLUniform2iv},
- {"GLUniform3iv", GLUniform3iv},
- {"GLUniform4iv", GLUniform4iv},
- {"GLUseProgram", GLUseProgram},
- {"GLVertexAttribPointer", GLVertexAttribPointer},
- {"GLViewport", GLViewport},
- {"GLArrayBuffer", GLArrayBuffer},
- {"GLColorBufferBit", GLColorBufferBit},
- {"GLCompileStatus", GLCompileStatus},
- {"GLDeleteStatus", GLDeleteStatus},
- {"GLDepthBufferBit", GLDepthBufferBit},
- {"GLFloat", GLFloat},
- {"GLFragmentShader", GLFragmentShader},
- {"GLLinkStatus", GLLinkStatus},
- {"GLTriangleStrip", GLTriangleStrip},
- {"GLTriangles", GLTriangles},
- {"GLTrue", GLTrue},
- {"GLStaticDraw", GLStaticDraw},
- {"GLValidateStatus", GLValidateStatus},
- {"GLVertexShader", GLVertexShader},
- {"GLGetShaderInfoLog", GLGetShaderInfoLog},
- {"GLGetProgramInfoLog", GLGetProgramInfoLog},
- {"RandomArray_ServicePort", RandomArrayServicePort},
-
- // Audio support.
- {"PlayBackground", PlayBackground},
- {"StopBackground", StopBackground},
- {"LoadSample", LoadSample},
- {"PlaySample", PlaySample},
-
- // 2D Support
-
- { "C2DCreateNativeContext", C2DCreateNativeContext},
-
- // Property getters/setters.
-
- { "C2DSetWidth", C2DSetWidth},
- { "C2DSetHeight", C2DSetHeight},
- { "C2DSetGlobalAlpha", C2DSetGlobalAlpha},
- { "C2DSetFillStyle", C2DSetFillStyle},
- { "C2DSetFont", C2DSetFont},
- { "C2DSetGlobalCompositeOperation", C2DSetGlobalCompositeOperation},
- { "C2DSetLineCap", C2DSetLineCap},
- { "C2DSetLineJoin", C2DSetLineJoin},
- { "C2DSetLineWidth", C2DSetLineWidth},
- { "C2DSetMiterLimit", C2DSetMiterLimit},
- { "C2DSetShadowBlur", C2DSetShadowBlur},
- { "C2DSetShadowColor", C2DSetShadowColor},
- { "C2DSetShadowOffsetX", C2DSetShadowOffsetX},
- { "C2DSetShadowOffsetY", C2DSetShadowOffsetY},
- { "C2DSetStrokeStyle", C2DSetStrokeStyle},
- { "C2DSetTextAlign", C2DSetTextAlign},
- { "C2DSetTextBaseline", C2DSetTextBaseline},
- { "C2DGetImageSmoothingEnabled", C2DGetImageSmoothingEnabled},
-
- // Methods.
- { "C2DArc", C2DArc},
- { "C2DArcTo", C2DArcTo},
- { "C2DBeginPath", C2DBeginPath},
- { "C2DBezierCurveTo", C2DBezierCurveTo},
- { "C2DClearRect", C2DClearRect},
- { "C2DClip", C2DClip},
- { "C2DClosePath", C2DClosePath},
- { "C2DCreateImageDataFromDimensions", C2DCreateImageDataFromDimensions},
- { "C2DDrawImage", C2DDrawImage},
- { "C2DFill", C2DFill},
- { "C2DFillRect", C2DFillRect},
- { "C2DFillText", C2DFillText},
- { "C2DGetImageData", C2DGetImageData},
- { "C2DLineTo", C2DLineTo},
- { "C2DMeasureText", C2DMeasureText},
- { "C2DMoveTo", C2DMoveTo},
- { "C2DPutImageData", C2DPutImageData},
- { "C2DQuadraticCurveTo", C2DQuadraticCurveTo},
- { "C2DRect", C2DRect},
- { "C2DRestore", C2DRestore},
- { "C2DRotate", C2DRotate},
- { "C2DSave", C2DSave},
- { "C2DScale", C2DScale},
- { "C2DSetLineDash", C2DSetLineDash},
- { "C2DSetLineDashOffset", C2DSetLineDashOffset},
- { "C2DSetTransform", C2DSetTransform},
- { "C2DStroke", C2DStroke},
- { "C2DStrokeRect", C2DStrokeRect},
- { "C2DStrokeText", C2DStrokeText},
- { "C2DTransform", C2DTransform},
- { "C2DTranslate", C2DTranslate},
- { "C2DSetFillGradient", C2DSetFillGradient},
- { "C2DSetStrokeGradient", C2DSetStrokeGradient},
- { "C2DGetImageWidth", C2DGetImageWidth},
- { "C2DGetImageHeight", C2DGetImageHeight},
-
- {NULL, NULL}};
-
-Dart_NativeFunction ResolveName(Dart_Handle name, int argc) {
- if (!Dart_IsString(name)) return NULL;
- Dart_NativeFunction result = NULL;
- Dart_EnterScope();
- const char* cname;
- HandleError(Dart_StringToCString(name, &cname));
- for (int i = 0; function_list[i].name != NULL; ++i) {
- if (strcmp(function_list[i].name, cname) == 0) {
- result = function_list[i].function;
- break;
- }
- }
- Dart_ExitScope();
- return result;
-}
« no previous file with comments | « runtime/embedders/openglui/common/extension.h ('k') | runtime/embedders/openglui/common/gl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698