make get program binary able to be disabled via env var and display if
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 4 May 2011 08:05:46 +0000 (08:05 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 4 May 2011 08:05:46 +0000 (08:05 +0000)
wee find the extn too. tested on gles now too.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@59178 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/modules/engines/gl_common/evas_gl_context.c
src/modules/engines/gl_common/evas_gl_shader.c

index 639277f..58609b3 100644 (file)
@@ -729,6 +729,11 @@ evas_gl_common_context_new(void)
         GETENVOPT("EVAS_GL_ATLAS_MAX_W", atlas.max_w, 0, MAX_ATLAS_W);
         GETENVOPT("EVAS_GL_ATLAS_MAX_H", atlas.max_h, 0, MAX_ATLAS_H);
         GETENVOPT("EVAS_GL_ATLAS_SLOT_SIZE", atlas.slot_size, MIN_ATLAS_SLOT, MAX_ATLAS_SLOT);
+        s = (const char *)getenv("EVAS_GL_GET_PROGRAM_BINARY");
+        if (s)
+          {
+             if (atoi(s) == 0) shared->info.bin_program = 0;
+          }
 
         if (getenv("EVAS_GL_INFO"))
            fprintf(stderr,
@@ -743,6 +748,7 @@ evas_gl_common_context_new(void)
                    "\n"
                    "(can set EVAS_GL_VERTEX_MAX  EVAS_GL_NO_MAP_IMAGE_SEC  EVAS_GL_INFO  EVAS_GL_MEMINFO )\n"
                    "\n"
+                   "EVAS_GL_GET_PROGRAM_BINARY: %i\n"
                    "EVAS_GL_CUTOUT_MAX: %i\n"
                    "EVAS_GL_PIPES_MAX: %i\n"
                    "EVAS_GL_ATLAS_ALLOC_SIZE: %i\n"
@@ -759,6 +765,7 @@ evas_gl_common_context_new(void)
                    (int)shared->info.sec_image_map,
                    (int)shared->info.max_vertex_elements,
                    
+                   (int)shared->info.bin_program,
                    (int)shared->info.tune.cutout.max,
                    (int)shared->info.tune.pipes.max,
                    (int)shared->info.tune.atlas.max_alloc_size,
index d1c0a72..9c97b4b 100644 (file)
@@ -663,7 +663,6 @@ _evas_gl_shader_file_exists(const char *file)
    struct stat st;
    if (!file) return EINA_FALSE;
    if (stat(file, &st) < 0) return EINA_FALSE;
-
    return EINA_TRUE;
 }
 
@@ -775,8 +774,9 @@ _evas_gl_common_shader_program_binary_init(Evas_GL_Program *p,
    p->prog = glCreateProgram();
 
 #if 0
-   // TOOD: invalid rendering error occurs when attempting to use a glProgramBinary.
-   // in order to render correctly we should create a dummy vertex shader.
+   // TODO: invalid rendering error occurs when attempting to use a 
+   // glProgramBinary. in order to render correctly we should create a dummy 
+   // vertex shader.
    p->vert = glCreateShader(GL_VERTEX_SHADER);
    glAttachShader(p->prog, p->vert);
    p->frag = glCreateShader(GL_FRAGMENT_SHADER);
@@ -1044,7 +1044,6 @@ _evas_gl_common_shader_binary_init(Evas_GL_Shared *shared)
 {
    /* check eet */
    Eet_File *et = NULL;
-
    char bin_dir_path[PATH_MAX];
    char bin_file_path[PATH_MAX];
 
@@ -1183,12 +1182,12 @@ int
 evas_gl_common_shader_program_init(Evas_GL_Shared *shared)
 {
    // gl support binary shader and get env of binary shader path
-   if (shared->info.bin_program && _evas_gl_common_shader_binary_init(shared)) return 1;
+   if (shared->info.bin_program && 
+       _evas_gl_common_shader_binary_init(shared)) return 1;
    /* compile all shader.*/
    if (!_evas_gl_common_shader_source_init(shared)) return 0;
    /* sucess compile all shader. if gl support binary shader, we need to save */
    if (shared->info.bin_program) _evas_gl_common_shader_binary_save(shared);
-
    return 1;
 }