render: gl-renderer: tex filter is set by trnasform flags
authorJunghoon <jh13.son@samsung.com>
Mon, 9 Nov 2015 05:17:41 +0000 (14:17 +0900)
committerTaekyun Kim <tkq.kim@samsung.com>
Wed, 11 Nov 2015 05:25:52 +0000 (14:25 +0900)
Change-Id: I99c7ad591875ef52d75f7f96045b3f7c092dcceb

src/lib/render/gl-renderer.c

index 96a4bcf7151950c7a628c357141dc4c8edb5d3df..929a489dff109be780661402c459eb02c742b54c 100644 (file)
@@ -1089,6 +1089,7 @@ repaint_view_clip(pepper_renderer_t *renderer, pepper_output_t *output,
     {
         int32_t             i, w, h;
         float               trans[16];
+        GLint               filter;
 
         pepper_view_get_size(node->view, &w, &h);
         surface_opaque = pepper_surface_get_opaque_region(surface);
@@ -1098,12 +1099,13 @@ repaint_view_clip(pepper_renderer_t *renderer, pepper_output_t *output,
         for (i = 0; i < 16; i++)
             trans[i] = (float)gt->proj_mat.m[i];
 
+        filter = (node->transform.flags <= PEPPER_MATRIX_TRANSLATE) ? GL_NEAREST : GL_LINEAR;
         for (i = 0; i < state->num_planes; i++)
         {
             glActiveTexture(GL_TEXTURE0 + i);
             glBindTexture(GL_TEXTURE_2D, state->textures[i]);
-            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter);
+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter);
         }
 
         glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
@@ -1166,6 +1168,7 @@ repaint_view_scissor(pepper_renderer_t *renderer, pepper_output_t *output,
     pixman_box32_t     *rects;
     GLfloat             vertex_array[16];
     float               trans[16];
+    GLint               filter;
 
     pixman_region32_init(&repaint);
     pixman_region32_intersect(&repaint, &node->visible_region, damage);
@@ -1197,12 +1200,13 @@ repaint_view_scissor(pepper_renderer_t *renderer, pepper_output_t *output,
             trans[i] = (float)tmp.m[i];
     }
 
+    filter = (node->transform.flags <= PEPPER_MATRIX_TRANSLATE) ? GL_NEAREST : GL_LINEAR;
     for (i = 0; i < state->num_planes; i++)
     {
         glActiveTexture(GL_TEXTURE0 + i);
         glBindTexture(GL_TEXTURE_2D, state->textures[i]);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter);
+        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter);
     }
 
     pepper_view_get_position(node->view, &x, &y);