| /**************************************************************************** |
| * |
| * Copyright 2012 - 2014 Vivante Corporation, Sunnyvale, California. |
| * All Rights Reserved. |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining |
| * a copy of this software and associated documentation files (the |
| * 'Software'), to deal in the Software without restriction, including |
| * without limitation the rights to use, copy, modify, merge, publish, |
| * distribute, sub license, and/or sell copies of the Software, and to |
| * permit persons to whom the Software is furnished to do so, subject |
| * to the following conditions: |
| * |
| * The above copyright notice and this permission notice (including the |
| * next paragraph) shall be included in all copies or substantial |
| * portions of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
| * IN NO EVENT SHALL VIVANTE AND/OR ITS SUPPLIERS BE LIABLE FOR ANY |
| * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| * |
| *****************************************************************************/ |
| |
| |
| /* |
| * Vivante specific definitions and declarations for all API library. |
| */ |
| #ifndef __khrvivante_h_ |
| |
| #include "KHR/khrplatform.h" |
| |
| /* EGL image type enum. */ |
| typedef enum _khrIMAGE_TYPE |
| { |
| KHR_IMAGE_TEXTURE_2D = 1, |
| KHR_IMAGE_TEXTURE_CUBE, |
| KHR_IMAGE_TEXTURE_3D, |
| KHR_IMAGE_RENDER_BUFFER, |
| KHR_IMAGE_VG_IMAGE, |
| KHR_IMAGE_PIXMAP, |
| KHR_IMAGE_ANDROID_NATIVE_BUFFER, |
| KHR_IMAGE_WAYLAND_BUFFER, |
| } khrIMAGE_TYPE; |
| |
| #define KHR_EGL_IMAGE_MAGIC_NUM 0x47414D49 /* "IMAG" */ |
| |
| /* EGL Image */ |
| typedef struct _khrEGL_IMAGE |
| { |
| khronos_uint32_t magic; |
| khrIMAGE_TYPE type; |
| struct _gcoSURF * surface; |
| struct _gcoSURF * srcSurface; |
| |
| union |
| { |
| struct _khrEGL_IMAGE_TEXTURE |
| { |
| khronos_uint32_t width; |
| khronos_uint32_t height; |
| |
| /* Format defined in GLES. */ |
| khronos_uint32_t format; |
| khronos_uint32_t type; |
| khronos_uint32_t internalFormat; |
| |
| khronos_int32_t level; |
| khronos_int32_t face; |
| khronos_int32_t depth; |
| |
| /* Address offset in surface, for cubemap. */ |
| khronos_uint32_t offset; |
| |
| khronos_int32_t texture; |
| void * object; |
| |
| /*Shadow surface, if exist we will always render to shadow surface for now */ |
| struct _gcoSURF* shadowSurface; |
| |
| /* Master surface has content updated if TRUE */ |
| khronos_boolean_enum_t masterDirty; |
| } texture; |
| |
| struct _khrEGL_IMAGE_PIXMAP |
| { |
| khronos_uint32_t width; |
| khronos_uint32_t height; |
| khronos_int32_t format; |
| khronos_int32_t stride; |
| |
| void * address; |
| #ifdef EGL_API_XXX |
| gctINT seqNo; |
| #endif |
| } pixmap; |
| |
| struct _khrEGL_IMAGE_VGIMAGE |
| { |
| struct _gcoSURF * texSurface; |
| |
| khronos_uint32_t width; |
| khronos_uint32_t height; |
| khronos_uint32_t offset_x; |
| khronos_uint32_t offset_y; |
| |
| khronos_uint32_t format; |
| khronos_uint32_t allowedQuality; |
| khronos_int32_t dirty; |
| khronos_int32_t *dirtyPtr; |
| khronos_int32_t rootWidth; |
| khronos_int32_t rootHeight; |
| khronos_int32_t rootOffsetX; |
| khronos_int32_t rootOffsetY; |
| } vgimage; |
| |
| #if defined(ANDROID) |
| struct _khrEGL_IMAGE_ANDROID |
| { |
| void * native; |
| } androidNativeBuffer; |
| #endif |
| } u; |
| } |
| khrEGL_IMAGE; |
| |
| typedef khrEGL_IMAGE * khrEGL_IMAGE_PTR; |
| |
| #define __khrvivante_h_ |
| #endif |