Browse Source

egl: Add macros to define typecast functions.

There are standard typecast functions that are common to most drivers.
They are used to typecast, for example, an _EGLSurface to a
driver-defined type.

This commits define _EGL_DRIVER_STANDARD_TYPECASTS and
_EGL_DRIVER_TYPECAST that should hopefully save some typings for driver
writers.
tags/7.8-rc1
Chia-I Wu 15 years ago
parent
commit
bdb9e202de
1 changed files with 21 additions and 0 deletions
  1. 21
    0
      src/egl/main/egldriver.h

+ 21
- 0
src/egl/main/egldriver.h View File

@@ -6,6 +6,27 @@
#include "eglapi.h"


/**
* Define an inline driver typecast function.
*/
#define _EGL_DRIVER_TYPECAST(drvtype, egltype, code) \
static INLINE struct drvtype *drvtype(const egltype *obj) \
{ return (struct drvtype *) code; }


/**
* Define the driver typecast functions for _EGLDriver, _EGLDisplay,
* _EGLContext, _EGLSurface, and _EGLConfig.
*/
#define _EGL_DRIVER_STANDARD_TYPECASTS(drvname) \
_EGL_DRIVER_TYPECAST(drvname ## _driver, _EGLDriver, obj) \
/* note that this is not a direct cast */ \
_EGL_DRIVER_TYPECAST(drvname ## _display, _EGLDisplay, obj->DriverData) \
_EGL_DRIVER_TYPECAST(drvname ## _context, _EGLContext, obj) \
_EGL_DRIVER_TYPECAST(drvname ## _surface, _EGLSurface, obj) \
_EGL_DRIVER_TYPECAST(drvname ## _config, _EGLConfig, obj)


typedef _EGLDriver *(*_EGLMain_t)(const char *args);



Loading…
Cancel
Save