gl-renderer: bugfix
authorjh13.son <jh13.son@samsung.com>
Fri, 22 May 2015 10:28:54 +0000 (19:28 +0900)
committerTaekyun Kim <tkq.kim@samsung.com>
Fri, 19 Jun 2015 09:06:41 +0000 (18:06 +0900)
Change-Id: Ibff85542e89f4233de7b84103b90e5d8788c5490

src/gl-renderer.c
src/modules/wayland/wayland-output.c
src/modules/x11/x11-output.c
src/pepper-gl-renderer.h

index bbb9c32..bd500e6 100644 (file)
@@ -34,15 +34,16 @@ enum buffer_type
 
 struct gl_renderer
 {
-    pepper_renderer_t   base;
+    pepper_renderer_t       base;
+    pepper_compositor_t    *compositor;
 
-    void               *native_display;
-    void               *native_window;
+    void                   *native_display;
+    void                   *native_window;
 
-    EGLDisplay          display;
-    EGLSurface          surface;
-    EGLContext          context;
-    EGLConfig           config;
+    EGLDisplay              display;
+    EGLSurface              surface;
+    EGLContext              context;
+    EGLConfig               config;
 
     /* EGL extensions. */
     PFNEGLCREATEIMAGEKHRPROC    create_image;
@@ -474,7 +475,7 @@ gl_renderer_draw(pepper_renderer_t *r, void *target, void *data)
     if (!gl_renderer_use(renderer))
         return;
 
-    glClearColor(1.0, 1.0, 1.0, 1.0);
+    glClearColor(1.0, 1.0, 0.0, 1.0);
     glClear(GL_COLOR_BUFFER_BIT);
     eglSwapBuffers(renderer->display, renderer->surface);
 }
@@ -551,7 +552,8 @@ setup_egl_extensions(gl_renderer_t *renderer)
         renderer->unbind_display    = (void *)eglGetProcAddress("eglUnbindWaylandDisplayWL");
         renderer->query_buffer      = (void *)eglGetProcAddress("eglQueryWaylandBufferWL");
 
-        if (!renderer->bind_display(renderer->display, renderer->native_display))
+        if (!renderer->bind_display(renderer->display,
+                                    pepper_compositor_get_display(renderer->compositor)))
         {
             renderer->bind_display = NULL;
             renderer->unbind_display = NULL;
@@ -596,7 +598,7 @@ setup_gl_extensions(gl_renderer_t *renderer)
         return PEPPER_FALSE;
     }
 
-    if (strstr(extensions, "GL_EXT_texture_format_BGRA8888"))
+    if (!strstr(extensions, "GL_EXT_texture_format_BGRA8888"))
     {
         PEPPER_ERROR("GL_EXT_texture_format_BGRA8888 not supported.\n");
         return PEPPER_FALSE;
@@ -685,12 +687,12 @@ init_egl(gl_renderer_t *renderer, void *dpy, void *win, EGLenum platform,
     if ((configs = (EGLConfig *)pepper_calloc(config_size, sizeof(EGLConfig))) == NULL)
         goto error;
 
-    if (num_configs < 1)
-        goto error;
-
     eglChooseConfig(display, config_attribs, configs, config_size, &num_configs);
     PEPPER_ASSERT(config_size == num_configs); /* Paranoid check. */
 
+    if (num_configs < 1)
+        goto error;
+
     for (i = 0; i < num_configs; i++)
     {
         EGLint attrib;
@@ -794,8 +796,9 @@ platform_string_to_egl(const char *str)
 }
 
 PEPPER_API pepper_renderer_t *
-pepper_gl_renderer_create(void *display, void *window, const char *platform_str,
-                          pepper_format_t format, const uint32_t *native_visual_id)
+pepper_gl_renderer_create(pepper_compositor_t *compositor, void *display, void *window,
+                          const char *platform_str, pepper_format_t format,
+                          const uint32_t *native_visual_id)
 {
     gl_renderer_t  *renderer;
     EGLenum         platform;
@@ -819,6 +822,7 @@ pepper_gl_renderer_create(void *display, void *window, const char *platform_str,
 
     pepper_renderer_init(&renderer->base);
 
+    renderer->compositor = compositor;
     renderer->native_display = display;
     renderer->native_window  = window;
 
index 19109a8..56ce38c 100644 (file)
@@ -259,7 +259,8 @@ init_gl_renderer(wayland_output_t *output)
     if (!output->egl.window)
         return PEPPER_FALSE;
 
-    output->renderer = pepper_gl_renderer_create(output->conn->display,
+    output->renderer = pepper_gl_renderer_create(output->conn->pepper,
+                                                 output->conn->display,
                                                  output->egl.window,
                                                  "wayland",
                                                  PEPPER_FORMAT_ARGB8888,
index ca1541c..87fe6c4 100644 (file)
@@ -90,7 +90,8 @@ gl_renderer_init(x11_output_t *output)
 {
     xcb_visualid_t visual = output->connection->screen->root_visual;
 
-    output->renderer = pepper_gl_renderer_create(output->connection->display,
+    output->renderer = pepper_gl_renderer_create(output->connection->compositor,
+                                                 output->connection->display,
                                                  (void *)(uintptr_t)output->window,
                                                  "x11",
                                                  PEPPER_FORMAT_XRGB8888, /* FIXME: */
index c101365..7d958bd 100644 (file)
@@ -8,8 +8,9 @@ extern "C" {
 #endif
 
 PEPPER_API pepper_renderer_t *
-pepper_gl_renderer_create(void *display, void *window, const char *platform,
-                          pepper_format_t format, const uint32_t *native_visual_id);
+pepper_gl_renderer_create(pepper_compositor_t *compositor, void *display, void *window,
+                          const char *platform, pepper_format_t format,
+                          const uint32_t *native_visual_id);
 
 #ifdef __cplusplus
 }