aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/evas/engines/gl_common/evas_gl_core_private.h
diff options
context:
space:
mode:
authorSung Park <sungwoo@gmail.com>2013-01-22 07:00:12 +0000
committerSung Park <sungwoo@gmail.com>2013-01-22 07:00:12 +0000
commitd606adf10ded687e9da75c97133aeb15d7cda2c3 (patch)
treef969efc744c953de810d26478f5686f402e8f253 /src/modules/evas/engines/gl_common/evas_gl_core_private.h
parent3070dfac2d5f88dc95e3ec8285176f623d1c46c6 (diff)
downloadefl-d606adf10ded687e9da75c97133aeb15d7cda2c3.tar.gz
efl-d606adf10ded687e9da75c97133aeb15d7cda2c3.tar.xz
efl-d606adf10ded687e9da75c97133aeb15d7cda2c3.zip
Applied on-demand memory allocation policy for Evas GL Surface
for direct rendering optimization. For direct rendering in EvasGL, it falls back to FBO rendering if the conditions are not met. Before, the fallback resources were created in the beginning but now they are created and destroyed on need base. SVN revision: 83057
Diffstat (limited to 'src/modules/evas/engines/gl_common/evas_gl_core_private.h')
-rwxr-xr-xsrc/modules/evas/engines/gl_common/evas_gl_core_private.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/modules/evas/engines/gl_common/evas_gl_core_private.h b/src/modules/evas/engines/gl_common/evas_gl_core_private.h
index 491bd7534..77d4d0717 100755
--- a/src/modules/evas/engines/gl_common/evas_gl_core_private.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_core_private.h
@@ -100,6 +100,14 @@ struct _EVGL_Surface
// Attached Context
int fbo_attached;
+
+ // Init Flag
+ int buffers_allocated;
+
+ // Rough estimate of buffer in memory per renderbuffer
+ // 0. color 1. depth 2. stencil 3. depth_stencil
+ int buffer_mem[4];
+
//-------------------------//
EVGL_Context *current_ctx;
@@ -119,7 +127,7 @@ struct _EVGL_Context
// Direct Rendering Related
int scissor_enabled;
- int scissor_upated;
+ int scissor_updated;
int scissor_coord[4];
int dr_scissor_coord[4];
int direct_scissor;
@@ -237,7 +245,12 @@ struct _EVGL_Engine
// Force Off fo Debug purposes
int force_direct_off;
+ // Keep track of all the current surfaces/contexts
+ Eina_List *surfaces;
+ Eina_List *contexts;
+
void *engine_data;
+
};