This directory contains OpenGL ES and EGL extension specifications that have
been or are being defined for Android.  

The table below tracks usage of EGL enumerant values that have been reserved
for use by Android extensions.

     Value                       Extension
----------------     ----------------------------------
0x3140               EGL_ANDROID_image_native_buffer
0x3141               (unused)
0x3142               EGL_RECORDABLE_ANDROID (EGL_ANDROID_recordable)
0x3143               EGL_VERSION_HW_ANDROID (internal use)
0x3144               EGL_SYNC_NATIVE_FENCE_ANDROID (EGL_ANDROID_native_fence_sync)
0x3145               EGL_SYNC_NATIVE_FENCE_FD_ANDROID (EGL_ANDROID_native_fence_sync)
0x3146               EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID (EGL_ANDROID_native_fence_sync)
0x3147               EGL_FRAMEBUFFER_TARGET_ANDROID (EGL_ANDROID_framebuffer_target)
0x3148               EGL_IMAGE_CROP_LEFT_ANDROID (EGL_ANDROID_image_crop)
0x3149               EGL_IMAGE_CROP_TOP_ANDROID (EGL_ANDROID_image_crop)
0x314A               EGL_IMAGE_CROP_RIGHT_ANDROID (EGL_ANDROID_image_crop)
0x314B               EGL_IMAGE_CROP_BOTTOM_ANDROID (EGL_ANDROID_image_crop)
0x314C - 0x314F      (unused)
