auto import from //branches/cupcake/...@130745
diff --git a/include/GLES/egl.h b/include/GLES/egl.h
deleted file mode 100644
index 08834ab..0000000
--- a/include/GLES/egl.h
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_EGL_H
-#define ANDROID_EGL_H
-
-#include <GLES/gl.h>
-#include <GLES/egltypes.h>
-#include <GLES/eglnatives.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define EGL_VERSION_1_0         1
-#define EGL_VERSION_1_1         1
-#define EGL_VERSION_1_2         1
-
-#define EGL_FALSE               0
-#define EGL_TRUE                1
-
-/* Errors */
-#define EGL_SUCCESS                     0x3000
-#define EGL_NOT_INITIALIZED             0x3001
-#define EGL_BAD_ACCESS                  0x3002
-#define EGL_BAD_ALLOC                   0x3003
-#define EGL_BAD_ATTRIBUTE               0x3004
-#define EGL_BAD_CONFIG                  0x3005
-#define EGL_BAD_CONTEXT                 0x3006
-#define EGL_BAD_CURRENT_SURFACE         0x3007
-#define EGL_BAD_DISPLAY                 0x3008
-#define EGL_BAD_MATCH                   0x3009
-#define EGL_BAD_NATIVE_PIXMAP           0x300A
-#define EGL_BAD_NATIVE_WINDOW           0x300B
-#define EGL_BAD_PARAMETER               0x300C
-#define EGL_BAD_SURFACE                 0x300D
-#define EGL_CONTEXT_LOST                0x300E
-
-/* Config attributes */
-#define EGL_BUFFER_SIZE                 0x3020
-#define EGL_ALPHA_SIZE                  0x3021
-#define EGL_BLUE_SIZE                   0x3022
-#define EGL_GREEN_SIZE                  0x3023
-#define EGL_RED_SIZE                    0x3024
-#define EGL_DEPTH_SIZE                  0x3025
-#define EGL_STENCIL_SIZE                0x3026
-#define EGL_CONFIG_CAVEAT               0x3027
-#define EGL_CONFIG_ID                   0x3028
-#define EGL_LEVEL                       0x3029
-#define EGL_MAX_PBUFFER_HEIGHT          0x302A
-#define EGL_MAX_PBUFFER_PIXELS          0x302B
-#define EGL_MAX_PBUFFER_WIDTH           0x302C
-#define EGL_NATIVE_RENDERABLE           0x302D
-#define EGL_NATIVE_VISUAL_ID            0x302E
-#define EGL_NATIVE_VISUAL_TYPE          0x302F
-#define EGL_SAMPLES                     0x3031
-#define EGL_SAMPLE_BUFFERS              0x3032
-#define EGL_SURFACE_TYPE                0x3033
-#define EGL_TRANSPARENT_TYPE            0x3034
-#define EGL_TRANSPARENT_BLUE_VALUE      0x3035
-#define EGL_TRANSPARENT_GREEN_VALUE     0x3036
-#define EGL_TRANSPARENT_RED_VALUE       0x3037
-#define EGL_NONE                        0x3038
-#define EGL_BIND_TO_TEXTURE_RGB         0x3039
-#define EGL_BIND_TO_TEXTURE_RGBA        0x303A
-#define EGL_MIN_SWAP_INTERVAL           0x303B
-#define EGL_MAX_SWAP_INTERVAL           0x303C
-#define EGL_LUMINANCE_SIZE              0x303D
-#define EGL_ALPHA_MASK_SIZE             0x303E
-#define EGL_COLOR_BUFFER_TYPE           0x303F
-#define EGL_RENDERABLE_TYPE             0x3040
-
-/* Config values */
-#define EGL_DONT_CARE                   ((EGLint)-1)
-
-#define EGL_SLOW_CONFIG                 0x3050
-#define EGL_NON_CONFORMANT_CONFIG       0x3051
-#define EGL_TRANSPARENT_RGB             0x3052
-#define EGL_NO_TEXTURE                  0x305C
-#define EGL_TEXTURE_RGB                 0x305D
-#define EGL_TEXTURE_RGBA                0x305E
-#define EGL_TEXTURE_2D                  0x305F
-#define EGL_RGB_BUFFER                  0x308E
-#define EGL_LUMINANCE_BUFFER            0x308F
-
-/* Config attribute mask bits */
-#define EGL_PBUFFER_BIT                 0x01
-#define EGL_PIXMAP_BIT                  0x02
-#define EGL_WINDOW_BIT                  0x04
-#define EGL_OPENGL_ES_BIT               0x01
-#define EGL_OPENVG_BIT                  0x02
-
-/* String names */
-#define EGL_VENDOR                      0x3053
-#define EGL_VERSION                     0x3054
-#define EGL_EXTENSIONS                  0x3055
-#define EGL_CLIENT_APIS                 0x308D
-
-/* Surface attributes */
-#define EGL_HEIGHT                      0x3056
-#define EGL_WIDTH                       0x3057
-#define EGL_LARGEST_PBUFFER             0x3058
-#define EGL_TEXTURE_FORMAT              0x3080
-#define EGL_TEXTURE_TARGET              0x3081
-#define EGL_MIPMAP_TEXTURE              0x3082
-#define EGL_MIPMAP_LEVEL                0x3083
-#define EGL_RENDER_BUFFER               0x3086
-#define EGL_COLORSPACE                  0x3087
-#define EGL_ALPHA_FORMAT                0x3088
-#define EGL_HORIZONTAL_RESOLUTION       0x3090
-#define EGL_VERTICAL_RESOLUTION         0x3091
-#define EGL_PIXEL_ASPECT_RATIO          0x3092
-#define EGL_SWAP_BEHAVIOR               0x3093
-
-#define EGL_BACK_BUFFER                 0x3084
-#define EGL_SINGLE_BUFFER               0x3085
-
-#define EGL_DISPLAY_SCALING             10000
-
-#define EGL_UNKNOWN                     ((EGLint)-1)
-
-/* Back buffer swap behaviors */
-#define EGL_BUFFER_PRESERVED            0x3094
-#define EGL_BUFFER_DESTROYED            0x3095
-
-/* CreatePbufferFromClientBuffer buffer types */
-#define EGL_OPENVG_IMAGE                0x3096
-
-/* QueryContext targets */
-#define EGL_CONTEXT_CLIENT_TYPE         0x3097
-
-/* BindAPI/QueryAPI targets */
-#define EGL_OPENGL_ES_API               0x30A0
-#define EGL_OPENVG_API                  0x30A1
-
-/* WaitNative engines */
-#define EGL_CORE_NATIVE_ENGINE          0x305B
-
-/* Current surfaces */
-#define EGL_DRAW                        0x3059
-#define EGL_READ                        0x305A
-
-
-EGLDisplay eglGetDisplay(NativeDisplayType display);
-EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
-EGLBoolean eglTerminate(EGLDisplay dpy);
-
-EGLBoolean eglGetConfigs(   EGLDisplay dpy,
-                            EGLConfig *configs,
-                            EGLint config_size, EGLint *num_config);
-
-EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list,
-                            EGLConfig *configs, EGLint config_size,
-                            EGLint *num_config);
-
-EGLBoolean eglGetConfigAttrib(  EGLDisplay dpy, EGLConfig config,
-                                EGLint attribute, EGLint *value);
-
-EGLSurface eglCreateWindowSurface(  EGLDisplay dpy, EGLConfig config,
-                                    NativeWindowType window,
-                                    const EGLint *attrib_list);
-
-EGLSurface eglCreatePixmapSurface(  EGLDisplay dpy, EGLConfig config,
-                                    NativePixmapType pixmap,
-                                    const EGLint *attrib_list);
-
-EGLSurface eglCreatePbufferSurface( EGLDisplay dpy, EGLConfig config,
-                                    const EGLint *attrib_list);
-                                    
-EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
-
-EGLBoolean eglQuerySurface( EGLDisplay dpy, EGLSurface surface,
-                            EGLint attribute, EGLint *value);
-
-EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config,
-                            EGLContext share_list, const EGLint *attrib_list);
-
-EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
-
-EGLBoolean eglMakeCurrent(  EGLDisplay dpy, EGLSurface draw,
-                            EGLSurface read, EGLContext ctx);
-
-EGLContext eglGetCurrentContext(void);
-EGLSurface eglGetCurrentSurface(EGLint readdraw);
-EGLDisplay eglGetCurrentDisplay(void);
-EGLBoolean eglQueryContext( EGLDisplay dpy, EGLContext ctx,
-                            EGLint attribute, EGLint *value);
-
-EGLBoolean eglWaitGL(void);
-EGLBoolean eglWaitNative(EGLint engine);
-EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface draw);
-EGLBoolean eglCopyBuffers(  EGLDisplay dpy, EGLSurface surface,
-                            NativePixmapType target);
-
-EGLint eglGetError(void);
-const char* eglQueryString(EGLDisplay dpy, EGLint name);
-void (*eglGetProcAddress (const char *procname))();
-
-/* ----------------------------------------------------------------------------
- * EGL 1.1
- * ----------------------------------------------------------------------------
- */
-
-EGLBoolean eglSurfaceAttrib(
-        EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
-EGLBoolean eglBindTexImage(
-        EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-EGLBoolean eglReleaseTexImage(
-        EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-
-EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval);
-
-/* ----------------------------------------------------------------------------
- * EGL 1.2
- * ----------------------------------------------------------------------------
- */
-
-EGLBoolean eglBindAPI(EGLenum api);
-EGLenum eglQueryAPI(void);
-EGLBoolean eglWaitClient(void);
-EGLBoolean eglReleaseThread(void);
-EGLSurface eglCreatePbufferFromClientBuffer(
-          EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
-          EGLConfig config, const EGLint *attrib_list);
-
-/* ----------------------------------------------------------------------------
- * Android extentions
- * ----------------------------------------------------------------------------
- */
-
-EGLBoolean eglSwapRectangleANDROID(EGLDisplay dpy, EGLSurface draw,
-        EGLint l, EGLint t, EGLint w, EGLint h);
-
-EGLBoolean eglCopyFrontToBackANDROID(EGLDisplay dpy,
-        EGLSurface surface,
-        EGLint l, EGLint t, EGLint w, EGLint h);
-
-const char* eglQueryStringConfigANDROID(
-        EGLDisplay dpy, EGLConfig config, EGLint name);
-
-void* eglGetRenderBufferAddressANDROID(EGLDisplay dpy, EGLSurface surface);
-
-EGLBoolean eglCopyBitsANDROID(EGLDisplay dpy,
-        NativeWindowType draw, EGLint x, EGLint y,
-        NativeWindowType read,
-        EGLint crop_x, EGLint crop_y, EGLint crop_w, EGLint crop_h,
-        EGLint flags);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /*ANDROID_EGL_H*/
diff --git a/include/GLES/eglnatives.h b/include/GLES/eglnatives.h
deleted file mode 100644
index 1cd57d0..0000000
--- a/include/GLES/eglnatives.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_EGLNATIVES_H
-#define ANDROID_EGLNATIVES_H
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-/*****************************************************************************/
-
-struct egl_native_window_t;
-struct egl_native_pixmap_t;
-
-
-typedef struct egl_native_window_t*     NativeWindowType;
-typedef struct egl_native_pixmap_t*     NativePixmapType;
-typedef void*                           NativeDisplayType;
-
-/* 
- * This a convenience function to create a NativeWindowType surface
- * that maps to the whole screen
- * This function is actually implemented in libui.so
- */
-
-NativeWindowType android_createDisplaySurface();
-
-/* flags returned from swapBuffer */
-#define EGL_NATIVES_FLAG_SIZE_CHANGED       0x00000001
-
-/* surface flags */
-#define EGL_NATIVES_FLAG_DESTROY_BACKBUFFER 0x00000001
-
-enum native_pixel_format_t
-{
-    NATIVE_PIXEL_FORMAT_RGBA_8888   = 1,
-    NATIVE_PIXEL_FORMAT_RGB_565     = 4,
-    NATIVE_PIXEL_FORMAT_BGRA_8888   = 5,
-    NATIVE_PIXEL_FORMAT_RGBA_5551   = 6,
-    NATIVE_PIXEL_FORMAT_RGBA_4444   = 7,
-    NATIVE_PIXEL_FORMAT_YCbCr_422_SP= 0x10,
-    NATIVE_PIXEL_FORMAT_YCbCr_420_SP= 0x11,
-};
-
-enum native_memory_type_t
-{
-    NATIVE_MEMORY_TYPE_PMEM         = 0,
-    NATIVE_MEMORY_TYPE_GPU          = 1,
-    NATIVE_MEMORY_TYPE_FB           = 2,
-    NATIVE_MEMORY_TYPE_HEAP         = 128
-};
-
-
-struct egl_native_window_t
-{
-    /*
-     * magic must be set to 0x600913
-     */
-    uint32_t    magic;
-    
-    /*
-     * must be sizeof(egl_native_window_t)
-     */
-    uint32_t    version;
-
-    /*
-     * ident is reserved for the Android platform
-     */
-    uint32_t    ident;
-    
-    /*
-     * width, height and stride of the window in pixels
-     * Any of these value can be nul in which case GL commands are
-     * accepted and processed as usual, but not rendering occurs.
-     */
-    int         width;      // w=h=0 is legal
-    int         height;
-    int         stride;
-
-    /*
-     * format of the native window (see ui/PixelFormat.h)
-     */
-    int         format;
-    
-    /*
-     * Offset of the bits in the VRAM
-     */
-    intptr_t    offset;
-    
-    /*
-     * flags describing some attributes of this surface
-     * EGL_NATIVES_FLAG_DESTROY_BACKBUFFER: backbuffer not preserved after 
-     * eglSwapBuffers
-     */
-    uint32_t    flags;
-    
-    /*
-     * horizontal and vertical resolution in DPI
-     */
-    float       xdpi;
-    float       ydpi;
-    
-    /*
-     * refresh rate in frames per second (Hz)
-     */
-    float       fps;
-    
-    
-    /*
-     *  Base memory virtual address of the surface in the CPU side
-     */
-    intptr_t    base;
-    
-    /*
-     *  Heap the offset above is based from
-     */
-    int         fd;
-    
-    /*
-     *  Memory type the surface resides into
-     */
-    uint8_t     memory_type;
-    
-    /*
-     * Reserved for future use. MUST BE ZERO.
-     */
-    uint8_t     reserved_pad[3];
-    int         reserved[8];
-    
-    /*
-     * Vertical stride (only relevant with planar formats) 
-     */
-    
-    int         vstride;
-
-    /*
-     * Hook called by EGL to hold a reference on this structure
-     */
-    void        (*incRef)(NativeWindowType window);
-
-    /*
-     * Hook called by EGL to release a reference on this structure
-     */
-    void        (*decRef)(NativeWindowType window);
-
-    /*
-     * Hook called by EGL to perform a page flip. This function
-     * may update the size attributes above, in which case it returns
-     * the EGL_NATIVES_FLAG_SIZE_CHANGED bit set.
-     */
-    uint32_t    (*swapBuffers)(NativeWindowType window);
-    
-    /*
-     * Hook called by EGL to set the swap rectangle. this hook can be 
-     * null (operation not supported) 
-     */
-    void        (*setSwapRectangle)(NativeWindowType window, int l, int t, int w, int h);
-
-    /*
-     * Reserved for future use. MUST BE ZERO.
-     */
-    void        (*reserved_proc_0)(void);
-    
-    
-    /*
-     * Hook called by EGL to retrieve the next buffer to render into. 
-     * This call updates this structure.
-     */
-    uint32_t    (*nextBuffer)(NativeWindowType window);
-
-    /*
-     * Hook called by EGL when the native surface is associated to EGL
-     * (eglCreateWindowSurface). Can be NULL.
-     */
-    void        (*connect)(NativeWindowType window);
-
-    /*
-     * Hook called by EGL when eglDestroySurface is called.  Can be NULL.
-     */
-    void        (*disconnect)(NativeWindowType window);
-    
-    /*
-     * Reserved for future use. MUST BE ZERO.
-     */
-    void        (*reserved_proc[11])(void);
-    
-    /*
-     *  Some storage reserved for the oem driver.
-     */
-    intptr_t    oem[4];
-};
-
-
-struct egl_native_pixmap_t
-{
-    int32_t     version;    /* must be 32 */
-    int32_t     width;
-    int32_t     height;
-    int32_t     stride;
-    uint8_t*    data;
-    uint8_t     format;
-    uint8_t     rfu[3];
-    union {
-        uint32_t    compressedFormat;
-        int32_t     vstride;
-    };
-    int32_t     reserved;
-};
-
-/*****************************************************************************/
-
-/*
- * OEM's egl's library (libhgl.so) must imlement these hooks to allocate
- * the GPU memory they need  
- */
-
-
-typedef struct
-{
-    // for internal use
-    void*   user;
-    // virtual address of this area
-    void*   base;
-    // size of this area in bytes
-    size_t  size;
-    // physical address of this area
-    void*   phys;
-    // offset in this area available to the GPU
-    size_t  offset;
-    // fd of this area
-    int     fd;
-} gpu_area_t;
-
-typedef struct
-{
-    // area where GPU registers are mapped
-    gpu_area_t regs;
-    // number of extra areas (currently limited to 2)
-    int32_t count;
-    // extra GPU areas (currently limited to 2)
-    gpu_area_t gpu[2];
-} request_gpu_t;
-
-
-typedef request_gpu_t* (*OEM_EGL_acquire_gpu_t)(void* user);
-typedef int (*OEM_EGL_release_gpu_t)(void* user, request_gpu_t* handle);
-typedef void (*register_gpu_t)
-        (void* user, OEM_EGL_acquire_gpu_t, OEM_EGL_release_gpu_t);
-
-void oem_register_gpu(
-        void* user,
-        OEM_EGL_acquire_gpu_t acquire,
-        OEM_EGL_release_gpu_t release);
-
-
-/*****************************************************************************/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ANDROID_EGLNATIVES_H */
diff --git a/include/GLES/egltypes.h b/include/GLES/egltypes.h
deleted file mode 100644
index 698239b..0000000
--- a/include/GLES/egltypes.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef ANDROID_EGL_TYPES_H
-#define ANDROID_EGL_TYPES_H
-
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned int EGLBoolean;
-typedef int32_t EGLint;
-typedef int EGLenum;
-typedef void *EGLDisplay;
-typedef void *EGLConfig;
-typedef void *EGLSurface;
-typedef void *EGLContext;
-typedef void *EGLClientBuffer;
-
-#define EGL_DEFAULT_DISPLAY ((NativeDisplayType)0)
-
-#define EGL_NO_CONTEXT      ((EGLContext)0)
-#define EGL_NO_DISPLAY      ((EGLDisplay)0)
-#define EGL_NO_SURFACE      ((EGLSurface)0)
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* ANDROID_EGL_TYPES_H */
diff --git a/include/GLES/gl.h b/include/GLES/gl.h
deleted file mode 100644
index 50b6ac4..0000000
--- a/include/GLES/gl.h
+++ /dev/null
@@ -1,639 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __gl_h_
-#define __gl_h_
-
-#include <stdint.h>
-#include <sys/types.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*****************************************************************************/
-
-typedef int8_t              GLbyte;         // b
-typedef int16_t             GLshort;        // s
-typedef int32_t             GLint;          // i
-typedef ssize_t             GLsizei;        // i
-typedef int32_t             GLfixed;        // x
-typedef int32_t             GLclampx;       // x
-typedef float               GLfloat;        // f
-typedef float               GLclampf;       // f
-typedef uint8_t             GLubyte;        // ub
-typedef uint8_t             GLboolean;      // ub
-typedef uint16_t            GLushort;       // us
-typedef uint32_t            GLuint;         // ui
-typedef unsigned int        GLenum;         // ui
-typedef unsigned int        GLbitfield;     // ui
-typedef void                GLvoid;
-typedef intptr_t            GLintptr; 
-typedef int                 GLsizeiptr; 
-typedef GLintptr            GLintptrARB; 
-typedef GLsizeiptr          GLsizeiptrARB; 
-
-/*****************************************************************************/
-
-#define GL_VERSION_ES_CM_1_0                1
-#define GL_VERSION_ES_CL_1_0                1
-#define GL_VERSION_ES_CM_1_1                1
-#define GL_VERSION_ES_CL_1_1                1
-
-#define GL_OES_byte_coordinates             1
-#define GL_OES_fixed_point                  1
-#define GL_OES_single_precision             1
-#define GL_OES_read_format                  1
-#define GL_OES_compressed_paletted_texture  1
-#define GL_OES_draw_texture                 1
-#define GL_OES_matrix_get                   1
-#define GL_OES_query_matrix                 1
-#define GL_OES_vertex_buffer_object         1
-#define GL_OES_point_size_array             1
-#define GL_OES_point_sprite                 1
-#define GL_ARB_texture_non_power_of_two     1
-
-/*****************************************************************************/
-/* OpenGL ES 1.0 names */
-
-#define GL_FALSE                            0
-#define GL_TRUE                             1
-
-/* begin mode */
-#define GL_POINTS                           0x0000
-#define GL_LINES                            0x0001
-#define GL_LINE_LOOP                        0x0002
-#define GL_LINE_STRIP                       0x0003
-#define GL_TRIANGLES                        0x0004
-#define GL_TRIANGLE_STRIP                   0x0005
-#define GL_TRIANGLE_FAN                     0x0006
-
-/* clear mask  */
-#define GL_DEPTH_BUFFER_BIT                 0x00000100
-#define GL_STENCIL_BUFFER_BIT               0x00000400
-#define GL_COLOR_BUFFER_BIT                 0x00004000
-
-/* enable/disable */
-#define GL_FOG                              0x0B60
-#define GL_LIGHTING                         0x0B50
-#define GL_TEXTURE_2D                       0x0DE1
-#define GL_CULL_FACE                        0x0B44
-#define GL_ALPHA_TEST                       0x0BC0
-#define GL_BLEND                            0x0BE2
-#define GL_COLOR_LOGIC_OP                   0x0BF2
-#define GL_DITHER                           0x0BD0
-#define GL_STENCIL_TEST                     0x0B90
-#define GL_DEPTH_TEST                       0x0B71
-#define GL_POINT_SMOOTH                     0x0B10
-#define GL_LINE_SMOOTH                      0x0B20
-#define GL_SCISSOR_TEST                     0x0C11
-#define GL_COLOR_MATERIAL                   0x0B57
-#define GL_NORMALIZE                        0x0BA1
-#define GL_RESCALE_NORMAL                   0x803A
-#define GL_POLYGON_OFFSET_FILL              0x8037
-#define GL_VERTEX_ARRAY                     0x8074
-#define GL_NORMAL_ARRAY                     0x8075
-#define GL_COLOR_ARRAY                      0x8076
-#define GL_TEXTURE_COORD_ARRAY              0x8078
-#define GL_MULTISAMPLE                      0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE         0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE              0x809F
-#define GL_SAMPLE_COVERAGE                  0x80A0
-
-/* gets */
-#define GL_SMOOTH_POINT_SIZE_RANGE          0x0B12
-#define GL_SMOOTH_LINE_WIDTH_RANGE          0x0B22
-#define GL_ALIASED_POINT_SIZE_RANGE         0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE         0x846E
-#define GL_MAX_LIGHTS                       0x0D31
-#define GL_MAX_CLIP_PLANES                  0x0D32
-#define GL_MAX_TEXTURE_SIZE                 0x0D33
-#define GL_MAX_MODELVIEW_STACK_DEPTH        0x0D36
-#define GL_MAX_PROJECTION_STACK_DEPTH       0x0D38
-#define GL_MAX_TEXTURE_STACK_DEPTH          0x0D39
-#define GL_MAX_VIEWPORT_DIMS                0x0D3A
-#define GL_MAX_ELEMENTS_VERTICES            0x80E8
-#define GL_MAX_ELEMENTS_INDICES             0x80E9
-#define GL_MAX_TEXTURE_UNITS                0x84E2
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS   0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS       0x86A3
-#define GL_SUBPIXEL_BITS                    0x0D50
-#define GL_RED_BITS                         0x0D52
-#define GL_GREEN_BITS                       0x0D53
-#define GL_BLUE_BITS                        0x0D54
-#define GL_ALPHA_BITS                       0x0D55
-#define GL_DEPTH_BITS                       0x0D56
-#define GL_STENCIL_BITS                     0x0D57
-
-/* clip planes */
-#define GL_CLIP_PLANE0                      0x3000
-#define GL_CLIP_PLANE1                      0x3001
-#define GL_CLIP_PLANE2                      0x3002
-#define GL_CLIP_PLANE3                      0x3003
-#define GL_CLIP_PLANE4                      0x3004
-#define GL_CLIP_PLANE5                      0x3005
-
-/* errors */
-#define GL_NO_ERROR                         0
-#define GL_INVALID_ENUM                     0x0500
-#define GL_INVALID_VALUE                    0x0501
-#define GL_INVALID_OPERATION                0x0502
-#define GL_STACK_OVERFLOW                   0x0503
-#define GL_STACK_UNDERFLOW                  0x0504
-#define GL_OUT_OF_MEMORY                    0x0505
-
-/* fog */
-#define GL_EXP                              0x0800
-#define GL_EXP2                             0x0801
-#define GL_FOG_DENSITY                      0x0B62
-#define GL_FOG_START                        0x0B63
-#define GL_FOG_END                          0x0B64
-#define GL_FOG_MODE                         0x0B65
-#define GL_FOG_COLOR                        0x0B66
-
-/* culling */
-#define GL_CW                               0x0900
-#define GL_CCW                              0x0901
-
-#define GL_FRONT                            0x0404
-#define GL_BACK                             0x0405
-#define GL_FRONT_AND_BACK                   0x0408
-
-/* hints */
-#define GL_DONT_CARE                        0x1100
-#define GL_FASTEST                          0x1101
-#define GL_NICEST                           0x1102
-
-#define GL_PERSPECTIVE_CORRECTION_HINT      0x0C50
-#define GL_POINT_SMOOTH_HINT                0x0C51
-#define GL_LINE_SMOOTH_HINT                 0x0C52
-#define GL_POLYGON_SMOOTH_HINT              0x0C53
-#define GL_FOG_HINT                         0x0C54
-#define GL_GENERATE_MIPMAP_HINT             0x8192
-
-/* lights */
-#define GL_LIGHT_MODEL_AMBIENT              0x0B53
-#define GL_LIGHT_MODEL_TWO_SIDE             0x0B52
-
-#define GL_AMBIENT                          0x1200
-#define GL_DIFFUSE                          0x1201
-#define GL_SPECULAR                         0x1202
-#define GL_POSITION                         0x1203
-#define GL_SPOT_DIRECTION                   0x1204
-#define GL_SPOT_EXPONENT                    0x1205
-#define GL_SPOT_CUTOFF                      0x1206
-#define GL_CONSTANT_ATTENUATION             0x1207
-#define GL_LINEAR_ATTENUATION               0x1208
-#define GL_QUADRATIC_ATTENUATION            0x1209
-
-#define GL_LIGHT0                           0x4000
-#define GL_LIGHT1                           0x4001
-#define GL_LIGHT2                           0x4002
-#define GL_LIGHT3                           0x4003
-#define GL_LIGHT4                           0x4004
-#define GL_LIGHT5                           0x4005
-#define GL_LIGHT6                           0x4006
-#define GL_LIGHT7                           0x4007
-
-/* material */
-#define GL_EMISSION                         0x1600
-#define GL_SHININESS                        0x1601
-#define GL_AMBIENT_AND_DIFFUSE              0x1602
-
-/* matrix */
-#define GL_MODELVIEW                        0x1700
-#define GL_PROJECTION                       0x1701
-#define GL_TEXTURE                          0x1702
-
-/* types */
-#define GL_BYTE                             0x1400
-#define GL_UNSIGNED_BYTE                    0x1401
-#define GL_SHORT                            0x1402
-#define GL_UNSIGNED_SHORT                   0x1403
-#define GL_FLOAT                            0x1406
-#define GL_FIXED                            0x140C
-
-/* pixel formats */
-#define GL_ALPHA                            0x1906
-#define GL_RGB                              0x1907
-#define GL_RGBA                             0x1908
-#define GL_LUMINANCE                        0x1909
-#define GL_LUMINANCE_ALPHA                  0x190A
-
-/* pixel store */
-#define GL_UNPACK_ALIGNMENT                 0x0CF5
-#define GL_PACK_ALIGNMENT                   0x0D05
-
-/* pixel types */
-#define GL_UNSIGNED_SHORT_4_4_4_4           0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1           0x8034
-#define GL_UNSIGNED_SHORT_5_6_5             0x8363
-
-/* logic op */
-#define GL_CLEAR                            0x1500   // 0
-#define GL_AND                              0x1501   // s & d
-#define GL_AND_REVERSE                      0x1502   // s & ~d
-#define GL_COPY                             0x1503   // s
-#define GL_AND_INVERTED                     0x1504   // ~s & d
-#define GL_NOOP                             0x1505   // d
-#define GL_XOR                              0x1506   // s ^ d
-#define GL_OR                               0x1507   // s | d
-#define GL_NOR                              0x1508   // ~(s | d)
-#define GL_EQUIV                            0x1509   // ~(s ^ d)
-#define GL_INVERT                           0x150A   // ~d
-#define GL_OR_REVERSE                       0x150B   // s | ~d
-#define GL_COPY_INVERTED                    0x150C   // ~s 
-#define GL_OR_INVERTED                      0x150D   // ~s | d
-#define GL_NAND                             0x150E   // ~(s & d)
-#define GL_SET                              0x150F   // 1
-
-/* shade model */
-#define GL_FLAT                             0x1D00
-#define GL_SMOOTH                           0x1D01
-
-/* strings */
-#define GL_VENDOR                           0x1F00
-#define GL_RENDERER                         0x1F01
-#define GL_VERSION                          0x1F02
-#define GL_EXTENSIONS                       0x1F03
-
-/* stencil */
-#define GL_KEEP                             0x1E00
-#define GL_REPLACE                          0x1E01
-#define GL_INCR                             0x1E02
-#define GL_DECR                             0x1E03
-
-/* alpha & stencil */
-#define GL_NEVER                            0x0200
-#define GL_LESS                             0x0201
-#define GL_EQUAL                            0x0202
-#define GL_LEQUAL                           0x0203
-#define GL_GREATER                          0x0204
-#define GL_NOTEQUAL                         0x0205
-#define GL_GEQUAL                           0x0206
-#define GL_ALWAYS                           0x0207
-
-/* blending equation & function */
-#define GL_ZERO                             0           // SD
-#define GL_ONE                              1           // SD
-#define GL_SRC_COLOR                        0x0300      //  D
-#define GL_ONE_MINUS_SRC_COLOR              0x0301      //  D
-#define GL_SRC_ALPHA                        0x0302      // SD
-#define GL_ONE_MINUS_SRC_ALPHA              0x0303      // SD
-#define GL_DST_ALPHA                        0x0304      // SD
-#define GL_ONE_MINUS_DST_ALPHA              0x0305      // SD
-#define GL_DST_COLOR                        0x0306      // S
-#define GL_ONE_MINUS_DST_COLOR              0x0307      // S
-#define GL_SRC_ALPHA_SATURATE               0x0308      // S
-    
-/* Texture parameter name */
-#define GL_TEXTURE_MIN_FILTER               0x2801
-#define GL_TEXTURE_MAG_FILTER               0x2800
-#define GL_TEXTURE_WRAP_S                   0x2802
-#define GL_TEXTURE_WRAP_T                   0x2803
-#define GL_GENERATE_MIPMAP                  0x8191
-#define GL_TEXTURE_CROP_RECT_OES            0x8B9D
-
-/* Texture Filter */
-#define GL_NEAREST                          0x2600
-#define GL_LINEAR                           0x2601
-#define GL_NEAREST_MIPMAP_NEAREST           0x2700
-#define GL_LINEAR_MIPMAP_NEAREST            0x2701
-#define GL_NEAREST_MIPMAP_LINEAR            0x2702
-#define GL_LINEAR_MIPMAP_LINEAR             0x2703
-
-/* Texture Wrap Mode */
-#define GL_CLAMP                            0x2900
-#define GL_REPEAT                           0x2901
-#define GL_CLAMP_TO_EDGE                    0x812F
-
-/* Texture Env Mode */
-#define GL_REPLACE                          0x1E01
-#define GL_MODULATE                         0x2100
-#define GL_DECAL                            0x2101
-#define GL_ADD                              0x0104
-
-/* Texture Env Parameter */
-#define GL_TEXTURE_ENV_MODE                 0x2200
-#define GL_TEXTURE_ENV_COLOR                0x2201
-
-/* Texture Env Target */
-#define GL_TEXTURE_ENV                      0x2300
-
-/* TMUs */
-#define GL_TEXTURE0                         0x84C0
-#define GL_TEXTURE1                         0x84C1
-#define GL_TEXTURE2                         0x84C2
-#define GL_TEXTURE3                         0x84C3
-#define GL_TEXTURE4                         0x84C4
-#define GL_TEXTURE5                         0x84C5
-#define GL_TEXTURE6                         0x84C6
-#define GL_TEXTURE7                         0x84C7
-#define GL_TEXTURE8                         0x84C8
-#define GL_TEXTURE9                         0x84C9
-#define GL_TEXTURE10                        0x84CA
-#define GL_TEXTURE11                        0x84CB
-#define GL_TEXTURE12                        0x84CC
-#define GL_TEXTURE13                        0x84CD
-#define GL_TEXTURE14                        0x84CE
-#define GL_TEXTURE15                        0x84CF
-#define GL_TEXTURE16                        0x84D0
-#define GL_TEXTURE17                        0x84D1
-#define GL_TEXTURE18                        0x84D2
-#define GL_TEXTURE19                        0x84D3
-#define GL_TEXTURE20                        0x84D4
-#define GL_TEXTURE21                        0x84D5
-#define GL_TEXTURE22                        0x84D6
-#define GL_TEXTURE23                        0x84D7
-#define GL_TEXTURE24                        0x84D8
-#define GL_TEXTURE25                        0x84D9
-#define GL_TEXTURE26                        0x84DA
-#define GL_TEXTURE27                        0x84DB
-#define GL_TEXTURE28                        0x84DC
-#define GL_TEXTURE29                        0x84DD
-#define GL_TEXTURE30                        0x84DE
-#define GL_TEXTURE31                        0x84DF
-
-/*****************************************************************************/
-/* OpenGL ES 1.1 additions */
-
-#define GL_ARRAY_BUFFER                         0x8892
-#define GL_ELEMENT_ARRAY_BUFFER                 0x8893
-
-#define GL_STATIC_DRAW                          0x88E4
-#define GL_DYNAMIC_DRAW                         0x88E8
-
-#define GL_BUFFER_SIZE                          0x8764
-#define GL_BUFFER_USAGE                         0x8765
-
-#define GL_ARRAY_BUFFER_BINDING                 0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING         0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING          0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING          0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING           0x8898
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING   0x889A
-
-/*****************************************************************************/
-/* Required extensions */
-
-#define GL_PALETTE4_RGB8_OES                        0x8B90
-#define GL_PALETTE4_RGBA8_OES                       0x8B91
-#define GL_PALETTE4_R5_G6_B5_OES                    0x8B92
-#define GL_PALETTE4_RGBA4_OES                       0x8B93
-#define GL_PALETTE4_RGB5_A1_OES                     0x8B94
-#define GL_PALETTE8_RGB8_OES                        0x8B95
-#define GL_PALETTE8_RGBA8_OES                       0x8B96
-#define GL_PALETTE8_R5_G6_B5_OES                    0x8B97
-#define GL_PALETTE8_RGBA4_OES                       0x8B98
-#define GL_PALETTE8_RGB5_A1_OES                     0x8B99
-
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES       0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES     0x8B9B
-
-#define GL_POINT_SPRITE_OES                         0x8861
-#define GL_COORD_REPLACE_OES                        0x8862
-
-#define GL_POINT_SIZE_ARRAY_OES                     0x8B9C
-#define GL_POINT_SIZE_ARRAY_TYPE_OES                0x898A
-#define GL_POINT_SIZE_ARRAY_STRIDE_OES              0x898B
-#define GL_POINT_SIZE_ARRAY_POINTER_OES             0x898C
-#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES      0x8B9F
-
-/*****************************************************************************/
-/* Extensions */
-
-#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES   0x898D
-#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES  0x898E
-#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES     0x898F
-
-#define GL_DIRECT_TEXTURE_2D_QUALCOMM               0x7E80
-
-
-
-
-/*****************************************************************************/
-/* OpenGL ES 1.0 functions */
-
-void glActiveTexture(GLenum texture);
-void glAlphaFunc(GLenum func, GLclampf ref);
-void glAlphaFuncx(GLenum func, GLclampx ref);
-void glBindTexture(GLenum target, GLuint texture);
-void glBlendFunc(GLenum sfactor, GLenum dfactor);
-void glClear(GLbitfield mask);
-void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-void glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
-void glClearDepthf(GLclampf depth);
-void glClearDepthx(GLclampx depth);
-void glClearStencil(GLint s);
-void glClientActiveTexture(GLenum texture);
-void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-void glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
-void glColorMask(GLboolean r, GLboolean g, GLboolean b, GLboolean a);
-void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr);
-void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
-        GLsizei width, GLsizei height, GLint border,
-        GLsizei imageSize, const GLvoid *data);
-void glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset,
-        GLint yoffset, GLsizei width, GLsizei height,
-        GLenum format, GLsizei imageSize,
-        const GLvoid *data);
-void glCopyTexImage2D(  GLenum target, GLint level, GLenum internalformat,
-        GLint x, GLint y, GLsizei width, GLsizei height,
-        GLint border);
-void glCopyTexSubImage2D(   GLenum target, GLint level, GLint xoffset,
-        GLint yoffset, GLint x, GLint y, GLsizei width,
-        GLsizei height);
-void glCullFace(GLenum mode);
-void glDeleteTextures(GLsizei n, const GLuint *textures);
-void glDepthFunc(GLenum func);
-void glDepthMask(GLboolean flag);
-void glDepthRangef(GLclampf zNear, GLclampf zFar);
-void glDepthRangex(GLclampx zNear, GLclampx zFar);
-void glDisable(GLenum cap);
-void glDisableClientState(GLenum array);
-void glDrawArrays(GLenum mode, GLint first, GLsizei count);
-void glDrawElements(GLenum mode, GLsizei count,
-        GLenum type, const GLvoid *indices);
-void glEnable(GLenum cap);
-void glEnableClientState(GLenum array);
-void glFinish(void);
-void glFlush(void);
-void glFogf(GLenum pname, GLfloat param);
-void glFogfv(GLenum pname, const GLfloat *params);
-void glFogx(GLenum pname, GLfixed param);
-void glFogxv(GLenum pname, const GLfixed *params);
-void glFrontFace(GLenum mode);
-void glFrustumf(GLfloat left, GLfloat right,
-        GLfloat bottom, GLfloat top,
-        GLfloat zNear, GLfloat zFar);
-void glFrustumx(GLfixed left, GLfixed right,
-        GLfixed bottom, GLfixed top,
-        GLfixed zNear, GLfixed zFar);
-void glGenTextures(GLsizei n, GLuint *textures);
-GLenum glGetError(void);
-void glGetIntegerv(GLenum pname, GLint *params);
-const GLubyte * glGetString(GLenum name);
-void glHint(GLenum target, GLenum mode);
-void glLightModelf(GLenum pname, GLfloat param);
-void glLightModelfv(GLenum pname, const GLfloat *params);
-void glLightModelx(GLenum pname, GLfixed param);
-void glLightModelxv(GLenum pname, const GLfixed *params);
-void glLightf(GLenum light, GLenum pname, GLfloat param);
-void glLightfv(GLenum light, GLenum pname, const GLfloat *params);
-void glLightx(GLenum light, GLenum pname, GLfixed param);
-void glLightxv(GLenum light, GLenum pname, const GLfixed *params);
-void glLineWidth(GLfloat width);
-void glLineWidthx(GLfixed width);
-void glLoadIdentity(void);
-void glLoadMatrixf(const GLfloat *m);
-void glLoadMatrixx(const GLfixed *m);
-void glLogicOp(GLenum opcode);
-void glMaterialf(GLenum face, GLenum pname, GLfloat param);
-void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params);
-void glMaterialx(GLenum face, GLenum pname, GLfixed param);
-void glMaterialxv(GLenum face, GLenum pname, const GLfixed *params);
-void glMatrixMode(GLenum mode);
-void glMultMatrixf(const GLfloat *m);
-void glMultMatrixx(const GLfixed *m);
-void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-void glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
-void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
-void glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz);
-void glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
-void glOrthof(  GLfloat left, GLfloat right,
-        GLfloat bottom, GLfloat top,
-        GLfloat zNear, GLfloat zFar);
-void glOrthox(  GLfixed left, GLfixed right,
-        GLfixed bottom, GLfixed top,
-        GLfixed zNear, GLfixed zFar);
-void glPixelStorei(GLenum pname, GLint param);
-void glPointSize(GLfloat size);
-void glPointSizex(GLfixed size);
-void glPolygonOffset(GLfloat factor, GLfloat units);
-void glPolygonOffsetx(GLfixed factor, GLfixed units);
-void glPopMatrix(void);
-void glPushMatrix(void);
-void glReadPixels(  GLint x, GLint y, GLsizei width, GLsizei height,
-        GLenum format, GLenum type, GLvoid *pixels);
-void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
-void glSampleCoverage(GLclampf value, GLboolean invert);
-void glSampleCoveragex(GLclampx value, GLboolean invert);
-void glScalef(GLfloat x, GLfloat y, GLfloat z);
-void glScalex(GLfixed x, GLfixed y, GLfixed z);
-void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
-void glShadeModel(GLenum mode);
-void glStencilFunc(GLenum func, GLint ref, GLuint mask);
-void glStencilMask(GLuint mask);
-void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
-void glTexCoordPointer( GLint size, GLenum type,
-        GLsizei stride, const GLvoid *pointer);
-void glTexEnvf(GLenum target, GLenum pname, GLfloat param);
-void glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
-void glTexEnvx(GLenum target, GLenum pname, GLfixed param);
-void glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params);
-void glTexImage2D(  GLenum target, GLint level, GLenum internalformat,
-        GLsizei width, GLsizei height, GLint border, GLenum format,
-        GLenum type, const GLvoid *pixels);
-void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
-void glTexParameterx(GLenum target, GLenum pname, GLfixed param);
-void glTexSubImage2D(   GLenum target, GLint level, GLint xoffset,
-        GLint yoffset, GLsizei width, GLsizei height,
-        GLenum format, GLenum type, const GLvoid *pixels);
-void glTranslatef(GLfloat x, GLfloat y, GLfloat z);
-void glTranslatex(GLfixed x, GLfixed y, GLfixed z);
-void glVertexPointer(   GLint size, GLenum type,
-        GLsizei stride, const GLvoid *pointer);
-void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
-
-/*****************************************************************************/
-/* OpenGL ES 1.1 functions */
-
-void glClipPlanef(GLenum plane, const GLfloat* equation);
-void glClipPlanex(GLenum plane, const GLfixed* equation);
-
-void glBindBuffer(GLenum target, GLuint buffer);
-void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
-void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
-void glDeleteBuffers(GLsizei n, const GLuint* buffers);
-void glGenBuffers(GLsizei n, GLuint* buffers);
-
-void glGetBooleanv(GLenum pname, GLboolean *params);
-void glGetFixedv(GLenum pname, GLfixed *params);
-void glGetFloatv(GLenum pname, GLfloat *params);
-void glGetPointerv(GLenum pname, void **params);
-void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
-void glGetClipPlanef(GLenum pname, GLfloat eqn[4]);
-void glGetClipPlanex(GLenum pname, GLfixed eqn[4]);
-void glGetLightxv(GLenum light, GLenum pname, GLfixed *params);
-void glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
-void glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params);
-void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
-void glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params);
-void glGetTexEnviv(GLenum env, GLenum pname, GLint *params);
-void glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params);
-void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
-void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
-void glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params);
-GLboolean glIsBuffer(GLuint buffer);
-GLboolean glIsEnabled(GLenum cap);
-GLboolean glIsTexture(GLuint texture);
-void glPointParameterf(GLenum pname, GLfloat param);
-void glPointParameterfv(GLenum pname, const GLfloat *params);
-void glPointParameterx(GLenum pname, GLfixed param);
-void glPointParameterxv(GLenum pname, const GLfixed *params);
-void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-void glTexEnvi(GLenum target, GLenum pname, GLint param);
-void glTexEnviv(GLenum target, GLenum pname, const GLint *params);
-void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
-void glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
-void glTexParameteri(GLenum target, GLenum pname, GLint param);
-void glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params);
-
-/*****************************************************************************/
-/* Required extensions functions */
-
-void glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer);
-
-
-/*****************************************************************************/
-/* Extensions functions */
-
-void glDrawTexsOES(GLshort x , GLshort y, GLshort z, GLshort w, GLshort h);
-void glDrawTexiOES(GLint x, GLint y, GLint z, GLint w, GLint h);
-void glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h);
-void glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h);
-void glDrawTexsvOES(const GLshort* coords);
-void glDrawTexivOES(const GLint* coords);
-void glDrawTexfvOES(const GLfloat* coords);
-void glDrawTexxvOES(const GLfixed* coords);
-GLbitfield glQueryMatrixxOES(GLfixed* mantissa, GLint* exponent);
-
-/* called by dalvik */
-void glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
-        const GLvoid *ptr, GLsizei count);
-void glNormalPointerBounds(GLenum type, GLsizei stride,
-        const GLvoid *pointer, GLsizei count);
-void glTexCoordPointerBounds(GLint size, GLenum type,
-        GLsizei stride, const GLvoid *pointer, GLsizei count);
-void glVertexPointerBounds(GLint size, GLenum type,
-        GLsizei stride, const GLvoid *pointer, GLsizei count);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gl_h_ */
diff --git a/include/private/opengles/gl_context.h b/include/private/opengles/gl_context.h
index 3056139..0c7ad46 100644
--- a/include/private/opengles/gl_context.h
+++ b/include/private/opengles/gl_context.h
@@ -28,6 +28,7 @@
 #include <private/pixelflinger/ggl_context.h>
 
 #include <GLES/gl.h>
+#include <GLES/glext.h>
 
 namespace android {
 
diff --git a/include/ui/Camera.h b/include/ui/Camera.h
index 44acce5..e593fea 100644
--- a/include/ui/Camera.h
+++ b/include/ui/Camera.h
@@ -23,8 +23,8 @@
 namespace android {
 
 /*
- * A set of bit masks for specifying how the received frames from preview are
- * handled before the frame callback call.
+ * A set of bit masks for specifying how the received preview frames are
+ * handled before the previewCallback() call.
  *
  * The least significant 3 bits of an "int" value are used for this purpose:
  *
@@ -34,10 +34,18 @@
  *       | |-----------> determine whether the callback is one-shot or not
  *       |-------------> determine whether the frame is copied out or not
  *
+ * WARNING:
+ * When a frame is sent directly without copying, it is the frame receiver's
+ * responsiblity to make sure that the frame data won't get corrupted by
+ * subsequent preview frames filled by the camera. This flag is recommended
+ * only when copying out data brings significant performance price and the
+ * handling/processing of the received frame data is always faster than
+ * the preview frame rate so that data corruption won't occur.
+ *
  * For instance,
  * 1. 0x00 disables the callback. In this case, copy out and one shot bits
  *    are ignored.
- * 2. 0x01 enables a callback without copying out the recievied frames. A
+ * 2. 0x01 enables a callback without copying out the received frames. A
  *    typical use case is the Camcorder application to avoid making costly
  *    frame copies.
  * 3. 0x05 is enabling a callback with frame copied out repeatedly. A typical
@@ -96,6 +104,18 @@
             // get preview state
             bool        previewEnabled();
 
+            // start recording mode, must call setPreviewDisplay first
+            status_t    startRecording();
+
+            // stop recording mode
+            void        stopRecording();
+
+            // get recording state
+            bool        recordingEnabled();
+
+            // release a recording frame
+            void        releaseRecordingFrame(const sp<IMemory>& mem);
+
             // autoFocus - status returned from callback
             status_t    autoFocus();
 
@@ -111,20 +131,19 @@
             void        setShutterCallback(shutter_callback cb, void *cookie);
             void        setRawCallback(frame_callback cb, void *cookie);
             void        setJpegCallback(frame_callback cb, void *cookie);
-
-            void        setFrameCallback(frame_callback cb,
-                            void *cookie,
-                            int frame_callback_flag = FRAME_CALLBACK_FLAG_NOOP);
-
+            void        setRecordingCallback(frame_callback cb, void *cookie);
+            void        setPreviewCallback(frame_callback cb, void *cookie, int preview_callback_flag = FRAME_CALLBACK_FLAG_NOOP);
             void        setErrorCallback(error_callback cb, void *cookie);
             void        setAutoFocusCallback(autofocus_callback cb, void *cookie);
+
     // ICameraClient interface
     virtual void        shutterCallback();
     virtual void        rawCallback(const sp<IMemory>& picture);
     virtual void        jpegCallback(const sp<IMemory>& picture);
-    virtual void        frameCallback(const sp<IMemory>& frame);
+    virtual void        previewCallback(const sp<IMemory>& frame);
     virtual void        errorCallback(status_t error);
     virtual void        autoFocusCallback(bool focused);
+    virtual void        recordingCallback(const sp<IMemory>& frame);
 
     sp<ICamera>         remote();
 
@@ -155,8 +174,10 @@
             void                *mRawCallbackCookie;
             frame_callback      mJpegCallback;
             void                *mJpegCallbackCookie;
-            frame_callback      mFrameCallback;
-            void                *mFrameCallbackCookie;
+            frame_callback      mPreviewCallback;
+            void                *mPreviewCallbackCookie;
+            frame_callback      mRecordingCallback;
+            void                *mRecordingCallbackCookie;
             error_callback      mErrorCallback;
             void                *mErrorCallbackCookie;
             autofocus_callback  mAutoFocusCallback;
diff --git a/include/ui/CameraHardwareInterface.h b/include/ui/CameraHardwareInterface.h
index 2bd53dd..b068c52 100644
--- a/include/ui/CameraHardwareInterface.h
+++ b/include/ui/CameraHardwareInterface.h
@@ -20,12 +20,16 @@
 #include <utils/IMemory.h>
 #include <utils/RefBase.h>
 #include <ui/CameraParameters.h>
+#include <ui/Overlay.h>
 
 namespace android {
 
 /** Callback for startPreview() */
 typedef void (*preview_callback)(const sp<IMemory>& mem, void* user);
 
+/** Callback for startRecord() */
+typedef void (*recording_callback)(const sp<IMemory>& mem, void* user);
+
 /** Callback for takePicture() */
 typedef void (*shutter_callback)(void* user);
 
@@ -89,6 +93,11 @@
      * call back parameter may be null.
      */
     virtual status_t    startPreview(preview_callback cb, void* user) = 0;
+    /**
+     * Only used if overlays are used for camera preview.
+     */
+    virtual bool useOverlay() {return false;}
+    virtual status_t setOverlay(const sp<Overlay> &overlay) {return BAD_VALUE;}
 
     /**
      * Stop a previously started preview.
@@ -101,6 +110,29 @@
     virtual bool        previewEnabled() = 0;
 
     /**
+     * Start record mode. When a record image is available recording_callback()
+     * is called with the user parameter.  Every record frame must be released
+     * by calling releaseRecordingFrame().
+     */
+    virtual status_t    startRecording(recording_callback cb, void* user) = 0;
+
+    /**
+     * Stop a previously started recording.
+     */
+    virtual void        stopRecording() = 0;
+
+    /**
+     * Returns true if recording is enabled.
+     */
+    virtual bool        recordingEnabled() = 0;
+    
+    /**
+     * Release a record frame previously returned by the recording_callback()
+     * passed to startRecord().
+     */
+    virtual void        releaseRecordingFrame(const sp<IMemory>& mem) = 0;
+
+    /**
      * Start auto focus, the callback routine is called
      * once when focusing is complete. autoFocus() will
      * be called again if another auto focus is needed.
diff --git a/include/ui/CameraParameters.h b/include/ui/CameraParameters.h
index e35a054..9ca1806 100644
--- a/include/ui/CameraParameters.h
+++ b/include/ui/CameraParameters.h
@@ -29,6 +29,12 @@
     CameraParameters(const String8 &params) { unflatten(params); }
     ~CameraParameters();
 
+    enum {
+        CAMERA_ORIENTATION_UNKNOWN = 0,
+        CAMERA_ORIENTATION_PORTRAIT = 1,
+        CAMERA_ORIENTATION_LANDSCAPE = 2,
+    };
+
     String8 flatten() const;
     void unflatten(const String8 &params);
 
@@ -57,6 +63,9 @@
     void setPictureFormat(const char *format);
     const char *getPictureFormat() const;
 
+    int getOrientation() const;
+    void setOrientation(int orientation);
+
     void dump() const;
     status_t dump(int fd, const Vector<String16>& args) const;
 
diff --git a/include/ui/EGLDisplaySurface.h b/include/ui/EGLDisplaySurface.h
index 0190e09..a8b5853 100644
--- a/include/ui/EGLDisplaySurface.h
+++ b/include/ui/EGLDisplaySurface.h
@@ -27,7 +27,10 @@
 #include <pixelflinger/pixelflinger.h>
 #include <linux/fb.h>
 
+#include <EGL/egl.h>
+
 struct copybit_device_t;
+struct copybit_image_t;
 
 // ---------------------------------------------------------------------------
 namespace android {
@@ -44,17 +47,17 @@
     
     int32_t getPageFlipCount() const;
     void    copyFrontToBack(const Region& copyback);
+    void    copyFrontToImage(const copybit_image_t& dst);
+    void    copyBackToImage(const copybit_image_t& dst);
     
+    void        setSwapRectangle(int l, int t, int w, int h);
+
 private:
     static void         hook_incRef(NativeWindowType window);
     static void         hook_decRef(NativeWindowType window);
     static uint32_t     hook_swapBuffers(NativeWindowType window);
-    static void         hook_setSwapRectangle(NativeWindowType window, int l, int t, int w, int h);
-    static uint32_t     hook_nextBuffer(NativeWindowType window);
      
             uint32_t    swapBuffers();
-            uint32_t    nextBuffer();
-            void        setSwapRectangle(int l, int t, int w, int h);
 
             status_t    mapFrameBuffer();
 
diff --git a/include/ui/EGLNativeSurface.h b/include/ui/EGLNativeSurface.h
index c303cd8..7964e7c 100644
--- a/include/ui/EGLNativeSurface.h
+++ b/include/ui/EGLNativeSurface.h
@@ -23,7 +23,7 @@
 #include <cutils/atomic.h>
 #include <utils/RefBase.h>
 
-#include <GLES/eglnatives.h>
+#include <EGL/eglnatives.h>
 
 // ---------------------------------------------------------------------------
 namespace android {
diff --git a/include/ui/EGLNativeWindowSurface.h b/include/ui/EGLNativeWindowSurface.h
index 058479a..3494234 100644
--- a/include/ui/EGLNativeWindowSurface.h
+++ b/include/ui/EGLNativeWindowSurface.h
@@ -20,6 +20,7 @@
 #include <stdint.h>
 #include <sys/types.h>
 #include <ui/EGLNativeSurface.h>
+#include <EGL/egl.h>
 
 // ---------------------------------------------------------------------------
 namespace android {
@@ -33,18 +34,16 @@
     EGLNativeWindowSurface(const sp<Surface>& surface);
     ~EGLNativeWindowSurface();
 
+    void        setSwapRectangle(int l, int t, int w, int h);
+
 private:
     static void         hook_incRef(NativeWindowType window);
     static void         hook_decRef(NativeWindowType window);
     static uint32_t     hook_swapBuffers(NativeWindowType window);
-    static uint32_t     hook_nextBuffer(NativeWindowType window);
-    static void         hook_setSwapRectangle(NativeWindowType window, int l, int t, int w, int h);
     static void         hook_connect(NativeWindowType window);
     static void         hook_disconnect(NativeWindowType window);
 
             uint32_t    swapBuffers();
-            uint32_t    nextBuffer();
-            void        setSwapRectangle(int l, int t, int w, int h);
             void        connect();
             void        disconnect();
             
diff --git a/include/ui/EventHub.h b/include/ui/EventHub.h
index 017c145..3848d8c 100644
--- a/include/ui/EventHub.h
+++ b/include/ui/EventHub.h
@@ -76,6 +76,9 @@
         DEVICE_REMOVED = 0x20000000
     };
     
+    // examine key input devices for specific framework keycode support
+    bool hasKeys(size_t numCodes, int32_t* keyCodes, uint8_t* outFlags);
+
     virtual bool getEvent(int32_t* outDeviceId, int32_t* outType,
             int32_t* outScancode, int32_t* outKeycode, uint32_t *outFlags,
             int32_t* outValue, nsecs_t* outWhen);
@@ -100,6 +103,7 @@
         const String8   path;
         String8         name;
         uint32_t        classes;
+        uint8_t*        keyBitmask;
         KeyLayoutMap*   layoutMap;
         String8         keylayoutFilename;
         device_t*       next;
@@ -134,8 +138,6 @@
 #ifdef EV_SW
     int32_t         mSwitches[SW_MAX+1];
 #endif
-
-    KeyLayoutMap * mLayoutMap;
 };
 
 }; // namespace android
diff --git a/include/ui/ICamera.h b/include/ui/ICamera.h
index ea2fcee..241fb63 100644
--- a/include/ui/ICamera.h
+++ b/include/ui/ICamera.h
@@ -48,9 +48,9 @@
     // pass the buffered ISurface to the camera service
     virtual status_t        setPreviewDisplay(const sp<ISurface>& surface) = 0;
 
-    // set the frame callback flag to affect how the received frames from
+    // set the preview callback flag to affect how the received frames from
     // preview are handled.
-    virtual void            setFrameCallbackFlag(int frame_callback_flag) = 0;
+    virtual void            setPreviewCallbackFlag(int flag) = 0;
 
     // start preview mode, must call setPreviewDisplay first
     virtual status_t        startPreview() = 0;
@@ -61,6 +61,18 @@
     // get preview state
     virtual bool            previewEnabled() = 0;
 
+    // start recording mode
+    virtual status_t        startRecording() = 0;
+
+    // stop recording mode
+    virtual void            stopRecording() = 0;    
+
+    // get recording state
+    virtual bool            recordingEnabled() = 0;
+
+    // release a recording frame
+    virtual void            releaseRecordingFrame(const sp<IMemory>& mem) = 0;
+
     // auto focus
     virtual status_t        autoFocus() = 0;
 
diff --git a/include/ui/ICameraClient.h b/include/ui/ICameraClient.h
index a286b8e..73b951c 100644
--- a/include/ui/ICameraClient.h
+++ b/include/ui/ICameraClient.h
@@ -32,9 +32,10 @@
     virtual void            shutterCallback() = 0;
     virtual void            rawCallback(const sp<IMemory>& picture) = 0;
     virtual void            jpegCallback(const sp<IMemory>& picture) = 0;
-    virtual void            frameCallback(const sp<IMemory>& frame) = 0;
+    virtual void            previewCallback(const sp<IMemory>& frame) = 0;
     virtual void            errorCallback(status_t error) = 0;
     virtual void            autoFocusCallback(bool focused) = 0;
+    virtual void            recordingCallback(const sp<IMemory>& frame) = 0;
 
 };
 
diff --git a/include/ui/ISurface.h b/include/ui/ISurface.h
index 9a7383c..1c8043d 100644
--- a/include/ui/ISurface.h
+++ b/include/ui/ISurface.h
@@ -34,11 +34,56 @@
 
 class ISurface : public IInterface
 {
+protected:
+    enum {
+        REGISTER_BUFFERS = IBinder::FIRST_CALL_TRANSACTION,
+        UNREGISTER_BUFFERS,
+        POST_BUFFER, // one-way transaction
+        CREATE_OVERLAY,
+    };
+
 public: 
     DECLARE_META_INTERFACE(Surface);
 
-    virtual status_t registerBuffers(int w, int h, int hstride, int vstride,
-            PixelFormat format, const sp<IMemoryHeap>& heap) = 0;
+    
+    class BufferHeap {
+    public:
+        enum {
+            /* flip source image horizontally */
+            FLIP_H    = 0x01,
+            /* flip source image vertically */
+            FLIP_V    = 0x02,
+            /* rotate source image 90 degrees */
+            ROT_90    = 0x04,
+            /* rotate source image 180 degrees */
+            ROT_180   = 0x03,
+            /* rotate source image 270 degrees */
+            ROT_270   = 0x07,
+        };
+        BufferHeap();
+        
+        BufferHeap(uint32_t w, uint32_t h,
+                int32_t hor_stride, int32_t ver_stride, 
+                PixelFormat format, const sp<IMemoryHeap>& heap);
+        
+        BufferHeap(uint32_t w, uint32_t h,
+                int32_t hor_stride, int32_t ver_stride, 
+                PixelFormat format, uint32_t transform, uint32_t flags,
+                const sp<IMemoryHeap>& heap);
+        
+        ~BufferHeap(); 
+        
+        uint32_t w;
+        uint32_t h;
+        int32_t hor_stride;
+        int32_t ver_stride;
+        PixelFormat format;
+        uint32_t transform;
+        uint32_t flags;
+        sp<IMemoryHeap> heap;
+    };
+    
+    virtual status_t registerBuffers(const BufferHeap& buffers) = 0;
 
     virtual void postBuffer(ssize_t offset) = 0; // one-way
 
diff --git a/include/ui/Overlay.h b/include/ui/Overlay.h
index f8454fd..66514b4 100644
--- a/include/ui/Overlay.h
+++ b/include/ui/Overlay.h
@@ -91,6 +91,7 @@
     int32_t getFormat() const;
     int32_t getWidthStride() const;
     int32_t getHeightStride() const;
+    int32_t getBufferCount() const;
     status_t getStatus() const;
     
 private:
diff --git a/include/ui/PixelFormat.h b/include/ui/PixelFormat.h
index b65c959..14af823 100644
--- a/include/ui/PixelFormat.h
+++ b/include/ui/PixelFormat.h
@@ -71,6 +71,10 @@
 
     PIXEL_FORMAT_YCbCr_422_SP= GGL_PIXEL_FORMAT_YCbCr_422_SP,
     PIXEL_FORMAT_YCbCr_420_SP= GGL_PIXEL_FORMAT_YCbCr_420_SP,
+    PIXEL_FORMAT_YCbCr_422_P = GGL_PIXEL_FORMAT_YCbCr_422_P,
+    PIXEL_FORMAT_YCbCr_420_P = GGL_PIXEL_FORMAT_YCbCr_420_P,
+    PIXEL_FORMAT_YCbCr_422_I = GGL_PIXEL_FORMAT_YCbCr_422_I,
+    PIXEL_FORMAT_YCbCr_420_I = GGL_PIXEL_FORMAT_YCbCr_420_I,
 
     // New formats can be added if they're also defined in
     // pixelflinger/format.h
@@ -80,7 +84,19 @@
 
 struct PixelFormatInfo
 {
+    enum { // components
+        ALPHA               = 1,
+        RGB                 = 2,
+        RGBA                = 3,
+        LUMINANCE           = 4,
+        LUMINANCE_ALPHA     = 5,
+        Y_CB_CR_SP          = 6,
+        Y_CB_CR_P           = 7,
+        Y_CB_CR_I           = 8,
+    };
+
     inline PixelFormatInfo() : version(sizeof(PixelFormatInfo)) { }
+    size_t getScanlineSize(unsigned int width) const;
     size_t      version;
     PixelFormat format;
     size_t      bytesPerPixel;
@@ -93,7 +109,9 @@
     uint8_t     l_green;
     uint8_t     h_blue;
     uint8_t     l_blue;
-    uint32_t    reserved[2];
+    uint8_t     components;
+    uint8_t     reserved0[3];
+    uint32_t    reserved1;
 };
 
 // Consider caching the results of these functions are they're not
diff --git a/include/utils/Asset.h b/include/utils/Asset.h
index d8351f5..453a204 100644
--- a/include/utils/Asset.h
+++ b/include/utils/Asset.h
@@ -62,7 +62,11 @@
 
     enum {
         /* data larger than this does not get uncompressed into a buffer */
+#ifdef HAVE_ANDROID_OS
         UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024
+#else
+        UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024
+#endif
     };
 
     /*
diff --git a/include/utils/ResourceTypes.h b/include/utils/ResourceTypes.h
index 2d56e3e..d83a33c 100644
--- a/include/utils/ResourceTypes.h
+++ b/include/utils/ResourceTypes.h
@@ -223,7 +223,7 @@
 {
     // Number of bytes in this structure.
     uint16_t size;
-    
+
     // Always set to 0.
     uint8_t res0;
         
@@ -1131,10 +1131,8 @@
                 && orientation != settings.orientation) {
                 return false;
             }
-            if (settings.density != 0 && density != 0
-                && density != settings.density) {
-                return false;
-            }
+            // Density not taken into account, always match, no matter what
+            // density is specified for the resource
             if (settings.touchscreen != 0 && touchscreen != 0
                 && touchscreen != settings.touchscreen) {
                 return false;
@@ -1464,11 +1462,11 @@
      * @return ssize_t Either a >= 0 table index or a negative error code.
      */
     ssize_t getResource(uint32_t resID, Res_value* outValue, bool mayBeBag=false,
-            uint32_t* outSpecFlags=NULL) const;
+            uint32_t* outSpecFlags=NULL, ResTable_config* outConfig=NULL) const;
 
     inline ssize_t getResource(const ResTable_ref& res, Res_value* outValue,
             uint32_t* outSpecFlags=NULL) const {
-        return getResource(res.ident, outValue, outSpecFlags);
+        return getResource(res.ident, outValue, false, outSpecFlags, NULL);
     }
 
     ssize_t resolveReference(Res_value* inOutValue,