115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/* 215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2008 The Android Open Source Project 315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License. 615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at 715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * http://www.apache.org/licenses/LICENSE-2.0 915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * 1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software 1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS, 1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and 1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License. 1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */ 1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.opengl; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.IOException; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.Writer; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGL; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGL10; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGL11; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGLConfig; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGLContext; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGLDisplay; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.microedition.khronos.egl.EGLSurface; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass EGLLogWrapper implements EGL11 { 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private EGL10 mEgl10; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Writer mLog; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean mLogArgumentNames; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean mCheckError; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int mArgCount; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLLogWrapper(EGL egl, int configFlags, Writer log) { 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mEgl10 = (EGL10) egl; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLog = log; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLogArgumentNames = 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (GLDebugHelper.CONFIG_LOG_ARGUMENT_NAMES & configFlags) != 0; 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mCheckError = 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project (GLDebugHelper.CONFIG_CHECK_GL_ERROR & configFlags) != 0; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglChooseConfig(EGLDisplay display, int[] attrib_list, 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLConfig[] configs, int config_size, int[] num_config) { 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglChooseConfig"); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attrib_list", attrib_list); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config_size", config_size); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglChooseConfig(display, attrib_list, configs, 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project config_size, num_config); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("configs", configs); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("num_config", num_config); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglCopyBuffers(EGLDisplay display, EGLSurface surface, 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Object native_pixmap) { 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglCopyBuffers"); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("surface", surface); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("native_pixmap", native_pixmap); 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglCopyBuffers(display, surface, native_pixmap); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLContext eglCreateContext(EGLDisplay display, EGLConfig config, 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLContext share_context, int[] attrib_list) { 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglCreateContext"); 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config", config); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("share_context", share_context); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attrib_list", attrib_list); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLContext result = mEgl10.eglCreateContext(display, config, 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project share_context, attrib_list); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLSurface eglCreatePbufferSurface(EGLDisplay display, 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLConfig config, int[] attrib_list) { 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglCreatePbufferSurface"); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config", config); 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attrib_list", attrib_list); 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLSurface result = mEgl10.eglCreatePbufferSurface(display, config, 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project attrib_list); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLSurface eglCreatePixmapSurface(EGLDisplay display, 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLConfig config, Object native_pixmap, int[] attrib_list) { 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglCreatePixmapSurface"); 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config", config); 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("native_pixmap", native_pixmap); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attrib_list", attrib_list); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLSurface result = mEgl10.eglCreatePixmapSurface(display, config, 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project native_pixmap, attrib_list); 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLSurface eglCreateWindowSurface(EGLDisplay display, 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLConfig config, Object native_window, int[] attrib_list) { 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglCreateWindowSurface"); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config", config); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("native_window", native_window); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attrib_list", attrib_list); 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLSurface result = mEgl10.eglCreateWindowSurface(display, config, 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project native_window, attrib_list); 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglDestroyContext(EGLDisplay display, EGLContext context) { 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglDestroyContext"); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("context", context); 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglDestroyContext(display, context); 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglDestroySurface(EGLDisplay display, EGLSurface surface) { 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglDestroySurface"); 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("surface", surface); 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglDestroySurface(display, surface); 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglGetConfigAttrib(EGLDisplay display, EGLConfig config, 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int attribute, int[] value) { 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetConfigAttrib"); 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config", config); 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attribute", attribute); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglGetConfigAttrib(display, config, attribute, 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project value); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("value", value); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return false; 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglGetConfigs(EGLDisplay display, EGLConfig[] configs, 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int config_size, int[] num_config) { 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetConfigs"); 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("config_size", config_size); 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglGetConfigs(display, configs, config_size, 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project num_config); 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("configs", configs); 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("num_config", num_config); 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLContext eglGetCurrentContext() { 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetCurrentContext"); 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLContext result = mEgl10.eglGetCurrentContext(); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLDisplay eglGetCurrentDisplay() { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetCurrentDisplay"); 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLDisplay result = mEgl10.eglGetCurrentDisplay(); 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLSurface eglGetCurrentSurface(int readdraw) { 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetCurrentSurface"); 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("readdraw", readdraw); 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLSurface result = mEgl10.eglGetCurrentSurface(readdraw); 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public EGLDisplay eglGetDisplay(Object native_display) { 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetDisplay"); 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("native_display", native_display); 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLDisplay result = mEgl10.eglGetDisplay(native_display); 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int eglGetError() { 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglGetError"); 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = mEgl10.eglGetError(); 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(getErrorString(result)); 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglInitialize(EGLDisplay display, int[] major_minor) { 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglInitialize"); 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglInitialize(display, major_minor); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("major_minor", major_minor); 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglMakeCurrent(EGLDisplay display, EGLSurface draw, 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project EGLSurface read, EGLContext context) { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglMakeCurrent"); 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("draw", draw); 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("read", read); 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("context", context); 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglMakeCurrent(display, draw, read, context); 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglQueryContext(EGLDisplay display, EGLContext context, 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int attribute, int[] value) { 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglQueryContext"); 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("context", context); 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attribute", attribute); 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglQueryContext(display, context, attribute, 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project value); 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(value[0]); 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String eglQueryString(EGLDisplay display, int name) { 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglQueryString"); 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("name", name); 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String result = mEgl10.eglQueryString(display, name); 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglQuerySurface(EGLDisplay display, EGLSurface surface, 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int attribute, int[] value) { 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglQuerySurface"); 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("surface", surface); 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("attribute", attribute); 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglQuerySurface(display, surface, attribute, 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project value); 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(value[0]); 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3178ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy 3188ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy /** @hide **/ 3198ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy public boolean eglReleaseThread() { 3208ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy begin("eglReleaseThread"); 3218ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy end(); 3228ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy boolean result = mEgl10.eglReleaseThread(); 3238ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy returns(result); 3248ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy checkError(); 3258ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy return result; 3268ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695Romain Guy } 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglSwapBuffers(EGLDisplay display, EGLSurface surface) { 329544604098cce0648b82c9d3fa232cffcb2a902a7Brian Harris begin("eglSwapBuffers"); 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("surface", surface); 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglSwapBuffers(display, surface); 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglTerminate(EGLDisplay display) { 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglTerminate"); 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("display", display); 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglTerminate(display); 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglWaitGL() { 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglWaitGL"); 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglWaitGL(); 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean eglWaitNative(int engine, Object bindTarget) { 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project begin("eglWaitNative"); 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("engine", engine); 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg("bindTarget", bindTarget); 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project end(); 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean result = mEgl10.eglWaitNative(engine, bindTarget); 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(result); 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project checkError(); 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void checkError() { 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int eglError; 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if ((eglError = mEgl10.eglGetError()) != EGL_SUCCESS) { 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String errorMessage = "eglError: " + getErrorString(eglError); 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project logLine(errorMessage); 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mCheckError) { 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new GLException(eglError, errorMessage); 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void logLine(String message) { 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(message + '\n'); 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void log(String message) { 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLog.write(message); 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (IOException e) { 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Ignore exception, keep on trying 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void begin(String name) { 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(name + '('); 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mArgCount = 0; 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, String value) { 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mArgCount++ > 0) { 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(", "); 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (mLogArgumentNames) { 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(name + "="); 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(value); 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void end() { 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(");\n"); 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project flush(); 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void flush() { 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLog.flush(); 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (IOException e) { 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mLog = null; 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, int value) { 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, Integer.toString(value)); 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, Object object) { 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, toString(object)); 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, EGLDisplay object) { 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (object == EGL10.EGL_DEFAULT_DISPLAY) { 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, "EGL10.EGL_DEFAULT_DISPLAY"); 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (object == EGL_NO_DISPLAY) { 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, "EGL10.EGL_NO_DISPLAY"); 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, toString(object)); 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, EGLContext object) { 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (object == EGL10.EGL_NO_CONTEXT) { 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, "EGL10.EGL_NO_CONTEXT"); 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, toString(object)); 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, EGLSurface object) { 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (object == EGL10.EGL_NO_SURFACE) { 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, "EGL10.EGL_NO_SURFACE"); 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, toString(object)); 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void returns(String result) { 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project log(" returns " + result + ";\n"); 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project flush(); 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void returns(int result) { 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(Integer.toString(result)); 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void returns(boolean result) { 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(Boolean.toString(result)); 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void returns(Object result) { 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project returns(toString(result)); 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String toString(Object obj) { 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (obj == null) { 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "null"; 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return obj.toString(); 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, int[] arr) { 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (arr == null) { 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, "null"); 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, toString(arr.length, arr, 0)); 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void arg(String name, Object[] arr) { 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (arr == null) { 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, "null"); 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project arg(name, toString(arr.length, arr, 0)); 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String toString(int n, int[] arr, int offset) { 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuilder buf = new StringBuilder(); 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append("{\n"); 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int arrLen = arr.length; 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < n; i++) { 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int index = offset + i; 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append(" [" + index + "] = "); 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (index < 0 || index >= arrLen) { 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append("out of bounds"); 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append(arr[index]); 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append('\n'); 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append("}"); 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return buf.toString(); 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private String toString(int n, Object[] arr, int offset) { 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringBuilder buf = new StringBuilder(); 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append("{\n"); 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int arrLen = arr.length; 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0; i < n; i++) { 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int index = offset + i; 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append(" [" + index + "] = "); 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (index < 0 || index >= arrLen) { 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append("out of bounds"); 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append(arr[index]); 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append('\n'); 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buf.append("}"); 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return buf.toString(); 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static String getHex(int value) { 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "0x" + Integer.toHexString(value); 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static String getErrorString(int error) { 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (error) { 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_SUCCESS: 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_SUCCESS"; 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_NOT_INITIALIZED: 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_NOT_INITIALIZED"; 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_ACCESS: 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_ACCESS"; 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_ALLOC: 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_ALLOC"; 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_ATTRIBUTE: 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_ATTRIBUTE"; 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_CONFIG: 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_CONFIG"; 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_CONTEXT: 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_CONTEXT"; 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_CURRENT_SURFACE: 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_CURRENT_SURFACE"; 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_DISPLAY: 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_DISPLAY"; 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_MATCH: 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_MATCH"; 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_NATIVE_PIXMAP: 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_NATIVE_PIXMAP"; 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_NATIVE_WINDOW: 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_NATIVE_WINDOW"; 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_PARAMETER: 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_PARAMETER"; 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL_BAD_SURFACE: 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_BAD_SURFACE"; 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case EGL11.EGL_CONTEXT_LOST: 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "EGL_CONTEXT_LOST"; 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project default: 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getHex(error); 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 572