forked from enlightenment/efl
make get program binary able to be disabled via env var and display if
wee find the extn too. tested on gles now too. SVN revision: 59178
This commit is contained in:
parent
232158ba48
commit
97a12de552
|
@ -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_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_MAX_H", atlas.max_h, 0, MAX_ATLAS_H);
|
||||||
GETENVOPT("EVAS_GL_ATLAS_SLOT_SIZE", atlas.slot_size, MIN_ATLAS_SLOT, MAX_ATLAS_SLOT);
|
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"))
|
if (getenv("EVAS_GL_INFO"))
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
|
@ -743,6 +748,7 @@ evas_gl_common_context_new(void)
|
||||||
"\n"
|
"\n"
|
||||||
"(can set EVAS_GL_VERTEX_MAX EVAS_GL_NO_MAP_IMAGE_SEC EVAS_GL_INFO EVAS_GL_MEMINFO )\n"
|
"(can set EVAS_GL_VERTEX_MAX EVAS_GL_NO_MAP_IMAGE_SEC EVAS_GL_INFO EVAS_GL_MEMINFO )\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"EVAS_GL_GET_PROGRAM_BINARY: %i\n"
|
||||||
"EVAS_GL_CUTOUT_MAX: %i\n"
|
"EVAS_GL_CUTOUT_MAX: %i\n"
|
||||||
"EVAS_GL_PIPES_MAX: %i\n"
|
"EVAS_GL_PIPES_MAX: %i\n"
|
||||||
"EVAS_GL_ATLAS_ALLOC_SIZE: %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.sec_image_map,
|
||||||
(int)shared->info.max_vertex_elements,
|
(int)shared->info.max_vertex_elements,
|
||||||
|
|
||||||
|
(int)shared->info.bin_program,
|
||||||
(int)shared->info.tune.cutout.max,
|
(int)shared->info.tune.cutout.max,
|
||||||
(int)shared->info.tune.pipes.max,
|
(int)shared->info.tune.pipes.max,
|
||||||
(int)shared->info.tune.atlas.max_alloc_size,
|
(int)shared->info.tune.atlas.max_alloc_size,
|
||||||
|
|
|
@ -663,7 +663,6 @@ _evas_gl_shader_file_exists(const char *file)
|
||||||
struct stat st;
|
struct stat st;
|
||||||
if (!file) return EINA_FALSE;
|
if (!file) return EINA_FALSE;
|
||||||
if (stat(file, &st) < 0) return EINA_FALSE;
|
if (stat(file, &st) < 0) return EINA_FALSE;
|
||||||
|
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -775,8 +774,9 @@ _evas_gl_common_shader_program_binary_init(Evas_GL_Program *p,
|
||||||
p->prog = glCreateProgram();
|
p->prog = glCreateProgram();
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
// TOOD: invalid rendering error occurs when attempting to use a glProgramBinary.
|
// TODO: invalid rendering error occurs when attempting to use a
|
||||||
// in order to render correctly we should create a dummy vertex shader.
|
// glProgramBinary. in order to render correctly we should create a dummy
|
||||||
|
// vertex shader.
|
||||||
p->vert = glCreateShader(GL_VERTEX_SHADER);
|
p->vert = glCreateShader(GL_VERTEX_SHADER);
|
||||||
glAttachShader(p->prog, p->vert);
|
glAttachShader(p->prog, p->vert);
|
||||||
p->frag = glCreateShader(GL_FRAGMENT_SHADER);
|
p->frag = glCreateShader(GL_FRAGMENT_SHADER);
|
||||||
|
@ -1044,7 +1044,6 @@ _evas_gl_common_shader_binary_init(Evas_GL_Shared *shared)
|
||||||
{
|
{
|
||||||
/* check eet */
|
/* check eet */
|
||||||
Eet_File *et = NULL;
|
Eet_File *et = NULL;
|
||||||
|
|
||||||
char bin_dir_path[PATH_MAX];
|
char bin_dir_path[PATH_MAX];
|
||||||
char bin_file_path[PATH_MAX];
|
char bin_file_path[PATH_MAX];
|
||||||
|
|
||||||
|
@ -1183,12 +1182,12 @@ int
|
||||||
evas_gl_common_shader_program_init(Evas_GL_Shared *shared)
|
evas_gl_common_shader_program_init(Evas_GL_Shared *shared)
|
||||||
{
|
{
|
||||||
// gl support binary shader and get env of binary shader path
|
// 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.*/
|
/* compile all shader.*/
|
||||||
if (!_evas_gl_common_shader_source_init(shared)) return 0;
|
if (!_evas_gl_common_shader_source_init(shared)) return 0;
|
||||||
/* sucess compile all shader. if gl support binary shader, we need to save */
|
/* 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);
|
if (shared->info.bin_program) _evas_gl_common_shader_binary_save(shared);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue