forked from enlightenment/efl
evas: Fix compilation after @cedric's "fix"
Don't forget git add!
This commit is contained in:
parent
7316bda150
commit
68e6e46015
|
@ -636,6 +636,7 @@ if EVAS_STATIC_BUILD_SOFTWARE_GENERIC
|
|||
lib_evas_libevas_la_SOURCES += \
|
||||
modules/evas/engines/software_generic/evas_engine.c \
|
||||
modules/evas/engines/software_generic/Evas_Engine_Software_Generic.h \
|
||||
modules/evas/engines/software_generic/Evas_Engine_Software_Shared.h \
|
||||
modules/evas/engines/software_generic/evas_native_tbm.c \
|
||||
modules/evas/engines/software_generic/evas_native_dmabuf.c \
|
||||
modules/evas/engines/software_generic/evas_ector_software_buffer.c \
|
||||
|
@ -654,6 +655,7 @@ $(install_enginesoftwaregenericpkgLTLIBRARIES): install-libLTLIBRARIES
|
|||
modules_evas_engines_software_generic_module_la_SOURCES = \
|
||||
modules/evas/engines/software_generic/evas_engine.c \
|
||||
modules/evas/engines/software_generic/Evas_Engine_Software_Generic.h \
|
||||
modules/evas/engines/software_generic/Evas_Engine_Software_Shared.h \
|
||||
modules/evas/engines/software_generic/evas_native_tbm.c \
|
||||
modules/evas/engines/software_generic/evas_native_dmabuf.c \
|
||||
modules/evas/engines/software_generic/evas_ector_software_buffer.c \
|
||||
|
@ -827,6 +829,7 @@ modules/evas/engines/gl_common/evas_gl_3d_shader.c: modules/evas/engines/gl_comm
|
|||
GL_GENERIC_SOURCES = \
|
||||
modules/evas/engines/gl_generic/evas_engine.c \
|
||||
modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h \
|
||||
modules/evas/engines/gl_generic/Evas_Engine_GL_Shared.h \
|
||||
modules/evas/engines/gl_generic/evas_ector_gl_buffer.c \
|
||||
modules/evas/engines/gl_generic/evas_ector_gl_image_buffer.c \
|
||||
modules/evas/engines/gl_generic/evas_ector_gl_rgbaimage_buffer.c \
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
#ifndef EVAS_ENGINE_GL_SHARED_H
|
||||
#define EVAS_ENGINE_GL_SHARED_H
|
||||
|
||||
#include "../software_generic/Evas_Engine_Software_Shared.h"
|
||||
|
||||
typedef enum _Evas_Engine_Info_Gl_Swap_Mode
|
||||
{
|
||||
EVAS_ENGINE_GL_SWAP_MODE_AUTO = 0,
|
||||
EVAS_ENGINE_GL_SWAP_MODE_FULL = 1,
|
||||
EVAS_ENGINE_GL_SWAP_MODE_COPY = 2,
|
||||
EVAS_ENGINE_GL_SWAP_MODE_DOUBLE = 3,
|
||||
EVAS_ENGINE_GL_SWAP_MODE_TRIPLE = 4,
|
||||
EVAS_ENGINE_GL_SWAP_MODE_QUADRUPLE = 5
|
||||
} Evas_Engine_Info_Gl_Swap_Mode;
|
||||
|
||||
static inline Render_Engine_Swap_Mode
|
||||
evas_render_engine_gl_swap_mode_get(Evas_Engine_Info_Gl_Swap_Mode info_swap_mode)
|
||||
{
|
||||
Render_Engine_Swap_Mode swap_mode = MODE_FULL;
|
||||
const char *s;
|
||||
|
||||
s = getenv("EVAS_GL_SWAP_MODE");
|
||||
if (s)
|
||||
{
|
||||
if ((!strcasecmp(s, "full")) || (!strcasecmp(s, "f")))
|
||||
swap_mode = MODE_FULL;
|
||||
else if ((!strcasecmp(s, "copy")) || (!strcasecmp(s, "c")))
|
||||
swap_mode = MODE_COPY;
|
||||
else if ((!strcasecmp(s, "double")) ||
|
||||
(!strcasecmp(s, "d")) || (!strcasecmp(s, "2")))
|
||||
swap_mode = MODE_DOUBLE;
|
||||
else if ((!strcasecmp(s, "triple")) ||
|
||||
(!strcasecmp(s, "t")) || (!strcasecmp(s, "3")))
|
||||
swap_mode = MODE_TRIPLE;
|
||||
else if ((!strcasecmp(s, "quadruple")) ||
|
||||
(!strcasecmp(s, "q")) || (!strcasecmp(s, "4")))
|
||||
swap_mode = MODE_QUADRUPLE;
|
||||
}
|
||||
else
|
||||
{
|
||||
// in most gl implementations - egl and glx here that we care about the TEND
|
||||
// to either swap or copy backbuffer and front buffer, but strictly that is
|
||||
// not true. technically backbuffer content is totally undefined after a swap
|
||||
// and thus you MUST re-render all of it, thus MODE_FULL
|
||||
swap_mode = MODE_FULL;
|
||||
// BUT... reality is that lmost every implementation copies or swaps so
|
||||
// triple buffer mode can be used as it is a superset of double buffer and
|
||||
// copy (though using those explicitly is more efficient). so let's play with
|
||||
// triple buffer mdoe as a default and see.
|
||||
// re->mode = MODE_TRIPLE;
|
||||
// XXX: note - the above seems to break on some older intel chipsets and
|
||||
// drivers. it seems we CANT depend on backbuffer staying around. bugger!
|
||||
switch (info_swap_mode)
|
||||
{
|
||||
case EVAS_ENGINE_GL_SWAP_MODE_FULL:
|
||||
swap_mode = MODE_FULL;
|
||||
break;
|
||||
case EVAS_ENGINE_GL_SWAP_MODE_COPY:
|
||||
swap_mode = MODE_COPY;
|
||||
break;
|
||||
case EVAS_ENGINE_GL_SWAP_MODE_DOUBLE:
|
||||
swap_mode = MODE_DOUBLE;
|
||||
break;
|
||||
case EVAS_ENGINE_GL_SWAP_MODE_TRIPLE:
|
||||
swap_mode = MODE_TRIPLE;
|
||||
break;
|
||||
case EVAS_ENGINE_GL_SWAP_MODE_QUADRUPLE:
|
||||
swap_mode = MODE_QUADRUPLE;
|
||||
break;
|
||||
default:
|
||||
swap_mode = MODE_AUTO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return swap_mode;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef EVAS_ENGINE_SOFTWARE_SHARED_H
|
||||
#define EVAS_ENGINE_SOFTWARE_SHARED_H
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MODE_FULL,
|
||||
MODE_COPY,
|
||||
MODE_DOUBLE,
|
||||
MODE_TRIPLE,
|
||||
MODE_QUADRUPLE,
|
||||
MODE_AUTO
|
||||
} Render_Engine_Swap_Mode;
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue