elementry win: support msaa, stencil and depth bits for wayland. 41/204741/3
authorHermet Park <hermetpark@gmail.com>
Thu, 25 Apr 2019 08:25:52 +0000 (17:25 +0900)
committerHermet Park <chuneon.park@samsung.com>
Fri, 26 Apr 2019 08:02:21 +0000 (08:02 +0000)
Change-Id: I1a6bb202769bce41075513954c551c83b035bb31

src/lib/elementary/efl_ui_win.c

index 46df9bd..29b1fdd 100644 (file)
@@ -6323,33 +6323,34 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
         if (parent) parent_id = elm_win_window_id_get(parent);
         for (i = 0; i < p; i++)
           {
+             int opt[20], opt_i = 0;
+
+             if (_elm_config->vsync)
+               {
+                  opt[opt_i++] = ECORE_EVAS_OPT_VSYNC;
+                  opt[opt_i++] = 1;
+               }
+             if (gl_depth)
+               {
+                  opt[opt_i++] = ECORE_EVAS_OPT_GL_DEPTH;
+                  opt[opt_i++] = gl_depth;
+               }
+             if (gl_stencil)
+               {
+                  opt[opt_i++] = ECORE_EVAS_OPT_GL_STENCIL;
+                  opt[opt_i++] = gl_stencil;
+               }
+             if (gl_msaa)
+               {
+                  opt[opt_i++] = ECORE_EVAS_OPT_GL_MSAA;
+                  opt[opt_i++] = gl_msaa;
+               }
+             opt[opt_i] = 0;
+
              if (!strcmp(enginelist[i], ELM_SOFTWARE_X11))
                tmp_sd.ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 0, 0);
              else if (!strcmp(enginelist[i], ELM_OPENGL_X11))
                {
-                  int opt[20], opt_i = 0;
-
-                  if (_elm_config->vsync)
-                    {
-                       opt[opt_i++] = ECORE_EVAS_GL_X11_OPT_VSYNC;
-                       opt[opt_i++] = 1;
-                    }
-                  if (gl_depth)
-                    {
-                       opt[opt_i++] = ECORE_EVAS_GL_X11_OPT_GL_DEPTH;
-                       opt[opt_i++] = gl_depth;
-                    }
-                  if (gl_stencil)
-                    {
-                       opt[opt_i++] = ECORE_EVAS_GL_X11_OPT_GL_STENCIL;
-                       opt[opt_i++] = gl_stencil;
-                    }
-                  if (gl_msaa)
-                    {
-                       opt[opt_i++] = ECORE_EVAS_GL_X11_OPT_GL_MSAA;
-                       opt[opt_i++] = gl_msaa;
-                    }
-                  opt[opt_i] = 0;
                   if (opt_i > 0)
                     tmp_sd.ee = ecore_evas_gl_x11_options_new(NULL, 0, 0, 0, 0, 0, opt);
                   else
@@ -6358,7 +6359,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
              else if (!strcmp(enginelist[i], ELM_WAYLAND_SHM))
                tmp_sd.ee = _wayland_shm_new(NULL, parent_id, 0, 0, 0, 0, 0);
              else if (!strcmp(enginelist[i], ELM_WAYLAND_EGL))
-               tmp_sd.ee = _wayland_egl_new(NULL, parent_id, 0, 0, 0, 0, 0, NULL);
+               tmp_sd.ee = _wayland_egl_new(NULL, parent_id, 0, 0, 0, 0, 0, (opt_i > 0) ? opt : NULL);
              else if (!strcmp(enginelist[i], ELM_SOFTWARE_WIN32))
                tmp_sd.ee = ecore_evas_software_gdi_new(NULL, 0, 0, 1, 1);
              else if (!strcmp(enginelist[i], ELM_SOFTWARE_DDRAW))