It adds some member variables for tizen platform on dri2_egl_display and 
dri2_egl_surface.
  - tpl_display stores a object which encapsulates native disply (wl_display,
    gbm_device, tbm_bufmgr) for tizen platfom.
  - native_win stores native window (wl_surface, gbm_surface, 
tbm_surface_queue_h
  - tpl_surface stores a object which encapsulates native drawable object
    (wl_surface, gbm_surface, tbm_surface_queue_h) for tizen platfom.
  - tbm_surface stores a native platform buffer.
    tpl-egl exposes the native platform buffer as a tbm_surface.

And it adds routines of initialize and finalize for tizen platform.

Signed-off-by: Mun Gwan-gyeong <elong...@gmail.com>
---
 src/egl/drivers/dri2/egl_dri2.c | 11 +++++++++++
 src/egl/drivers/dri2/egl_dri2.h | 22 ++++++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 2667aa5d64..a2c2b120ef 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -899,6 +899,11 @@ dri2_initialize(_EGLDriver *drv, _EGLDisplay *disp)
    case _EGL_PLATFORM_ANDROID:
       ret = dri2_initialize_android(drv, disp);
       break;
+#endif
+#ifdef HAVE_TIZEN_PLATFORM
+   case _EGL_PLATFORM_TIZEN:
+      ret = dri2_initialize_tizen(drv, disp);
+      break;
 #endif
    default:
       _eglLog(_EGL_WARNING, "No EGL platform enabled.");
@@ -993,6 +998,12 @@ dri2_display_destroy(_EGLDisplay *disp)
          wl_display_disconnect(dri2_dpy->wl_dpy);
       }
       break;
+#endif
+#ifdef HAVE_TIZEN_PLATFORM
+   case _EGL_PLATFORM_TIZEN:
+      if (dri2_dpy->tpl_display)
+         tpl_object_unreference((tpl_object_t *)(dri2_dpy->tpl_display));
+      break;
 #endif
    default:
       break;
diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
index 4a52b490a8..4b29b0d406 100644
--- a/src/egl/drivers/dri2/egl_dri2.h
+++ b/src/egl/drivers/dri2/egl_dri2.h
@@ -65,6 +65,14 @@ struct zwp_linux_dmabuf_v1;
 
 #endif /* HAVE_ANDROID_PLATFORM */
 
+#ifdef HAVE_TIZEN_PLATFORM
+#include <tpl.h>
+#include <tbm_bufmgr.h>
+#include <tbm_drm_helper.h>
+#include <tbm_surface.h>
+#include <tbm_surface_internal.h>
+#endif /* HAVE_TIZEN_PLATFORM */
+
 #include "eglconfig.h"
 #include "eglcontext.h"
 #include "egldisplay.h"
@@ -234,6 +242,10 @@ struct dri2_egl_display
    const gralloc_module_t *gralloc;
 #endif
 
+#ifdef HAVE_TIZEN_PLATFORM
+   tpl_display_t            *tpl_display;
+#endif
+
    bool                      is_render_node;
    bool                      is_different_gpu;
 };
@@ -323,6 +335,13 @@ struct dri2_egl_surface
    } color_buffers[3], *back;
 #endif
 
+#ifdef HAVE_TIZEN_PLATFORM
+   void                  *native_win;
+   tpl_surface_t         *tpl_surface;
+   tbm_surface_h          tbm_surface;
+   tbm_format             tbm_format;
+#endif
+
 #if defined(HAVE_SURFACELESS_PLATFORM)
       __DRIimage           *front;
       unsigned int         visual;
@@ -418,6 +437,9 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp);
 EGLBoolean
 dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *disp);
 
+EGLBoolean
+dri2_initialize_tizen(_EGLDriver *drv, _EGLDisplay *disp);
+
 EGLBoolean
 dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp);
 
-- 
2.14.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to