blob: 7159e4b12f5a92a072e016648161f0a276e7f0de [file] [log] [blame] [edit]
/****************************************************************************
*
* 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.
*
*****************************************************************************/
#ifndef __gc_vdk_hal_h_
#define __gc_vdk_hal_h_
#include <gc_vdk.h>
/*******************************************************************************
** Data type *******************************************************************
*/
typedef void * SURFACE;
typedef int SURF_FORMAT;
typedef void * OS;
#define IS_SUCCESS(func) (func == 0)
#ifdef __cplusplus
#define galNULL 0
#else
#define galNULL ((void *) 0)
#endif
/*******************************************************************************
** API part.********************************************************************
*/
typedef int (* _GAL_GetDisplayByIndex) (int DisplayIndex, EGLNativeDisplayType * ,void * );
typedef int (* _GAL_GetDisplayInfo) (EGLNativeDisplayType , int * , int * , unsigned long * , int * , int * );
typedef int (* _GAL_GetDisplayVirtual) (EGLNativeDisplayType , int * , int * );
typedef int (* _GAL_GetDisplayInfoEx) (EGLNativeDisplayType ,EGLNativeWindowType ,unsigned int , vdkDISPLAY_INFO * );
typedef int (* _GAL_GetDisplayBackbuffer) (EGLNativeDisplayType ,EGLNativeWindowType , void * * , SURFACE * , unsigned int * , int * , int * );
typedef int (* _GAL_SetDisplayVirtual) (EGLNativeDisplayType ,EGLNativeWindowType ,unsigned int ,int ,int );
typedef int (* _GAL_DestroyDisplay) (EGLNativeDisplayType );
/*******************************************************************************
** Windows. ********************************************************************
*/
typedef int (* _GAL_CreateWindow) (EGLNativeDisplayType ,int ,int ,int ,int , EGLNativeWindowType * );
typedef int (* _GAL_DestroyWindow) (EGLNativeDisplayType ,EGLNativeWindowType );
typedef int (* _GAL_DrawImage) (EGLNativeDisplayType ,EGLNativeWindowType ,int ,int ,int ,int ,int ,int ,int ,void * );
typedef int (* _GAL_GetWindowInfoEx) (EGLNativeDisplayType ,EGLNativeWindowType , int * , int * , int * , int * , int * , unsigned int * , SURF_FORMAT * );
/*******************************************************************************
** Pixmaps. ********************************************************************
*/
typedef int (* _GAL_CreatePixmap) (EGLNativeDisplayType ,int ,int ,int , EGLNativePixmapType * );
typedef int (* _GAL_GetPixmapInfo) (EGLNativeDisplayType ,EGLNativePixmapType , int * , int * , int * , int * , void * * );
typedef int (* _GAL_DrawPixmap) (EGLNativeDisplayType ,EGLNativePixmapType ,int ,int ,int ,int ,int ,int ,int ,void * );
typedef int (* _GAL_DestroyPixmap) (EGLNativeDisplayType ,EGLNativePixmapType );
/*******************************************************8/9/2012 11:40:45 AM************************
** OS relative. ****************************************************************
*/
typedef int (* _GAL_LoadEGLLibrary) (void * * );
typedef int (* _GAL_FreeEGLLibrary) (void * );
typedef int (* _GAL_ShowWindow) (EGLNativeDisplayType ,EGLNativeWindowType );
typedef int (* _GAL_HideWindow) (EGLNativeDisplayType ,EGLNativeWindowType );
typedef int (* _GAL_SetWindowTitle) (EGLNativeDisplayType ,EGLNativeWindowType ,const char * );
typedef int (* _GAL_CapturePointer) (EGLNativeDisplayType ,EGLNativeWindowType );
typedef int (* _GAL_GetEvent) (EGLNativeDisplayType ,EGLNativeWindowType , struct _halEvent * );
typedef int (* _GAL_CreateClientBuffer) (int ,int ,int ,int , void * * );
typedef int (* _GAL_GetClientBufferInfo) (void * , int * , int * , int * , void * * );
typedef int (* _GAL_DestroyClientBuffer) (void * );
typedef int (* _GAL_GetProcAddress) (OS ,void * ,const char * , void * * );
/*----- Time -----------------------------------------------------------------*/
/* Get the number of milliseconds since the system started. */
typedef unsigned int (* _GAL_GetTicks) ( void);
typedef struct _GAL_API {
_GAL_GetDisplayByIndex GAL_GetDisplayByIndex;
_GAL_GetDisplayInfo GAL_GetDisplayInfo;
_GAL_GetDisplayVirtual GAL_GetDisplayVirtual;
_GAL_GetDisplayInfoEx GAL_GetDisplayInfoEx;
_GAL_GetDisplayBackbuffer GAL_GetDisplayBackbuffer;
_GAL_SetDisplayVirtual GAL_SetDisplayVirtual;
_GAL_DestroyDisplay GAL_DestroyDisplay;
/*******************************************************************************
** Windows. ********************************************************************
*/
_GAL_CreateWindow GAL_CreateWindow;
_GAL_DestroyWindow GAL_DestroyWindow;
_GAL_DrawImage GAL_DrawImage;
_GAL_GetWindowInfoEx GAL_GetWindowInfoEx;
/*******************************************************************************
** Pixmaps. ********************************************************************
*/
_GAL_CreatePixmap GAL_CreatePixmap;
_GAL_GetPixmapInfo GAL_GetPixmapInfo;
_GAL_DrawPixmap GAL_DrawPixmap;
_GAL_DestroyPixmap GAL_DestroyPixmap;
/*******************************************************************************
** OS relative. ****************************************************************
*/
_GAL_LoadEGLLibrary GAL_LoadEGLLibrary;
_GAL_FreeEGLLibrary GAL_FreeEGLLibrary;
_GAL_ShowWindow GAL_ShowWindow;
_GAL_HideWindow GAL_HideWindow;
_GAL_SetWindowTitle GAL_SetWindowTitle;
_GAL_CapturePointer GAL_CapturePointer;
_GAL_GetEvent GAL_GetEvent;
_GAL_CreateClientBuffer GAL_CreateClientBuffer;
_GAL_GetClientBufferInfo GAL_GetClientBufferInfo;
_GAL_DestroyClientBuffer GAL_DestroyClientBuffer;
_GAL_GetProcAddress GAL_GetProcAddress;
/*----- Time -----------------------------------------------------------------*/
/* Get the number of milliseconds since the system started. */
_GAL_GetTicks GAL_GetTicks;
} GAL_API;
#endif