From 38f87ea80b69fd301765ef8d3a1e1ca280f68cf7 Mon Sep 17 00:00:00 2001 From: Sung Park Date: Thu, 17 May 2012 06:54:06 +0000 Subject: [PATCH] Updating documentation and NEWS for EvasGL Multisample Surface bits along with general doc update. SVN revision: 71191 --- legacy/evas/NEWS | 1 + legacy/evas/src/lib/Evas_GL.h | 184 +++++++++++++++++++++++----------- 2 files changed, 126 insertions(+), 59 deletions(-) diff --git a/legacy/evas/NEWS b/legacy/evas/NEWS index 498392e125..c2f50ea24c 100644 --- a/legacy/evas/NEWS +++ b/legacy/evas/NEWS @@ -38,6 +38,7 @@ Additions: * EVAS_GL_OPTIONS_DIRECT. * evas_object_textblock_style_user_pop/push. * evas_object_ref_get + * Evas_GL_Multisample_Bits MSAA surface config option for supported devices. Fixes: diff --git a/legacy/evas/src/lib/Evas_GL.h b/legacy/evas/src/lib/Evas_GL.h index f90f227374..4177424bbf 100644 --- a/legacy/evas/src/lib/Evas_GL.h +++ b/legacy/evas/src/lib/Evas_GL.h @@ -8,65 +8,6 @@ extern "C" { #endif -typedef struct _Evas_GL Evas_GL; -typedef struct _Evas_GL_Surface Evas_GL_Surface; -typedef struct _Evas_GL_Context Evas_GL_Context; -typedef struct _Evas_GL_Config Evas_GL_Config; -typedef struct _Evas_GL_API Evas_GL_API; -typedef void *Evas_GL_Func; -typedef void *EvasGLImage; - -typedef enum _Evas_GL_Color_Format -{ - EVAS_GL_RGB_888 = 0, - EVAS_GL_RGBA_8888 = 1 -} Evas_GL_Color_Format; - -typedef enum _Evas_GL_Depth_Bits -{ - EVAS_GL_DEPTH_NONE = 0, - EVAS_GL_DEPTH_BIT_8 = 1, - EVAS_GL_DEPTH_BIT_16 = 2, - EVAS_GL_DEPTH_BIT_24 = 3, - EVAS_GL_DEPTH_BIT_32 = 4 -} Evas_GL_Depth_Bits; - -typedef enum _Evas_GL_Stencil_Bits -{ - EVAS_GL_STENCIL_NONE = 0, - EVAS_GL_STENCIL_BIT_1 = 1, - EVAS_GL_STENCIL_BIT_2 = 2, - EVAS_GL_STENCIL_BIT_4 = 3, - EVAS_GL_STENCIL_BIT_8 = 4, - EVAS_GL_STENCIL_BIT_16 = 5 -} Evas_GL_Stencil_Bits; - -typedef enum _Evas_GL_Options_Bits -{ - EVAS_GL_OPTIONS_NONE = 0, - EVAS_GL_OPTIONS_DIRECT = (1<<0) -} Evas_GL_Options_Bits; - -typedef enum _Evas_GL_Multisample_Bits -{ - EVAS_GL_MULTISAMPLE_NONE = 0, - EVAS_GL_MULTISAMPLE_LOW = 1, - EVAS_GL_MULTISAMPLE_MED = 2, - EVAS_GL_MULTISAMPLE_HIGH = 3 -} Evas_GL_Multisample_Bits; - -struct _Evas_GL_Config -{ - Evas_GL_Color_Format color_format; - Evas_GL_Depth_Bits depth_bits; - Evas_GL_Stencil_Bits stencil_bits; - Evas_GL_Options_Bits options_bits; - Evas_GL_Multisample_Bits multisample_bits; -}; - -#define EVAS_GL_EXTENSIONS 1 - - /** * @defgroup Evas_GL Rendering GL on Evas * @@ -392,6 +333,131 @@ init_shaders(GLData *gld) * @{ */ +/** + * @typedef Evas_GL + * + * Evas GL Object for rendering gl in Evas. + */ +typedef struct _Evas_GL Evas_GL; + +/** + * @typedef Evas_GL_Surface + * + * Evas GL Surface object, a GL rendering target in Evas GL. + */ +typedef struct _Evas_GL_Surface Evas_GL_Surface; + +/** + * @typedef Evas_GL_Context + * + * Evas GL Context object, a GL rendering context in Evas GL. + */ +typedef struct _Evas_GL_Context Evas_GL_Context; + +/** + * @typedef Evas_GL_Config + * + * Evas GL Surface configuration object for surface creation. + */ +typedef struct _Evas_GL_Config Evas_GL_Config; + +/** + * @typedef Evas_GL_API + * + * Evas GL API object that contains the GL APIs to be used in Evas GL. + */ +typedef struct _Evas_GL_API Evas_GL_API; + +/** + * @typedef Evas_GL_Func + * + * Evas GL Function Object used as a function pointer. + */ +typedef void *Evas_GL_Func; + +/** + * @typedef EvasGLImage + * + * Evas GL Image Object used in Evas GL Image extension. + */ +typedef void *EvasGLImage; + +/** + * Surface Color Format + */ +typedef enum _Evas_GL_Color_Format +{ + EVAS_GL_RGB_888 = 0, + EVAS_GL_RGBA_8888 = 1 +} Evas_GL_Color_Format; + +/** + * Surface Depth Format + */ +typedef enum _Evas_GL_Depth_Bits +{ + EVAS_GL_DEPTH_NONE = 0, + EVAS_GL_DEPTH_BIT_8 = 1, + EVAS_GL_DEPTH_BIT_16 = 2, + EVAS_GL_DEPTH_BIT_24 = 3, + EVAS_GL_DEPTH_BIT_32 = 4 +} Evas_GL_Depth_Bits; + +/** + * Surface Stencil Format + */ +typedef enum _Evas_GL_Stencil_Bits +{ + EVAS_GL_STENCIL_NONE = 0, + EVAS_GL_STENCIL_BIT_1 = 1, + EVAS_GL_STENCIL_BIT_2 = 2, + EVAS_GL_STENCIL_BIT_4 = 3, + EVAS_GL_STENCIL_BIT_8 = 4, + EVAS_GL_STENCIL_BIT_16 = 5 +} Evas_GL_Stencil_Bits; + +/** + * Configuration Options. + * + * @since 1.1.0 + */ +typedef enum _Evas_GL_Options_Bits +{ + EVAS_GL_OPTIONS_NONE = 0, /**< No extra options */ + EVAS_GL_OPTIONS_DIRECT = (1<<0) /**< Optional hint to allow rendering directly to evas' window when possible */ +} Evas_GL_Options_Bits; + +/** + * Configuration Option for Multisample Anti-aliased (MSAA) rendering surface. + * Only works in supported device. + * + * @since 1.2.0 + */ +typedef enum _Evas_GL_Multisample_Bits +{ + EVAS_GL_MULTISAMPLE_NONE = 0, /**< No multisample rendering */ + EVAS_GL_MULTISAMPLE_LOW = 1, /**< MSAA with mininum number of samples */ + EVAS_GL_MULTISAMPLE_MED = 2, /**< MSAA with half the number of max samples */ + EVAS_GL_MULTISAMPLE_HIGH = 3 /**< MSAA with maximum allowed samples */ +} Evas_GL_Multisample_Bits; + +/** + * @struct _Evas_GL_Config + * + * Evas GL Surface configuration + */ +struct _Evas_GL_Config +{ + Evas_GL_Color_Format color_format; /**< Surface Color Format */ + Evas_GL_Depth_Bits depth_bits; /**< Surface Depth Bits */ + Evas_GL_Stencil_Bits stencil_bits; /**< Surface Stencil Bits */ + Evas_GL_Options_Bits options_bits; /**< Extra Surface Options */ + Evas_GL_Multisample_Bits multisample_bits; /**< Optional Surface MSAA Bits */ +}; + +#define EVAS_GL_EXTENSIONS 1 + + /** * Creates a new Evas_GL object and returns a handle for gl rendering on efl. *