gl_engine: Fix crash in animation callback. Refactor test samples draw function.... 20/238620/5
authorPranay Kumar Samanta <pranay.ks@samsung.com>
Wed, 15 Jul 2020 13:32:27 +0000 (19:02 +0530)
committerHermet Park <chuneon.park@samsung.com>
Fri, 17 Jul 2020 07:54:58 +0000 (07:54 +0000)
Change-Id: I9ca2cb3951f2229f36292b69221451e0eaf5b6a1

21 files changed:
src/lib/gl_engine/tvgGlGeometry.cpp [changed mode: 0644->0755]
src/lib/gl_engine/tvgGlRenderer.cpp [changed mode: 0644->0755]
test/testAsync.cpp [changed mode: 0644->0755]
test/testBlending.cpp [changed mode: 0644->0755]
test/testBoundary.cpp [changed mode: 0644->0755]
test/testCustomTransform.cpp [changed mode: 0644->0755]
test/testDirectUpdate.cpp [changed mode: 0644->0755]
test/testGradientTransform.cpp [changed mode: 0644->0755]
test/testLinearGradient.cpp [changed mode: 0644->0755]
test/testMultiShapes.cpp [changed mode: 0644->0755]
test/testPath.cpp [changed mode: 0644->0755]
test/testPathCopy.cpp [changed mode: 0644->0755]
test/testRadialGradient.cpp [changed mode: 0644->0755]
test/testScene.cpp [changed mode: 0644->0755]
test/testSceneTransform.cpp [changed mode: 0644->0755]
test/testShape.cpp [changed mode: 0644->0755]
test/testStroke.cpp [changed mode: 0644->0755]
test/testStrokeLine.cpp [changed mode: 0644->0755]
test/testSvg.cpp [changed mode: 0644->0755]
test/testTransform.cpp [changed mode: 0644->0755]
test/testUpdate.cpp [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 59b730b..eba6fbf
@@ -84,11 +84,11 @@ bool GlGeometry::generateAAPoints(const Shape &shape, float strokeWd, RenderUpda
 
         size_t fPoint = 0;
         size_t sPoint = 1;
-        for (size_t i = 0; i < nPoints - 1; ++i)
+        for (size_t i = 0; i < nPoints; ++i)
         {
             fPoint = i;
             sPoint = i + 1;
-            if (sPoint == nPoints - 1)
+            if (fPoint == nPoints - 1)
                 sPoint = 0;
 
             GlPoint normal = getNormal(aaPts[fPoint].orgPt, aaPts[sPoint].orgPt);
@@ -96,8 +96,8 @@ bool GlGeometry::generateAAPoints(const Shape &shape, float strokeWd, RenderUpda
             normalInfo[fPoint].normal1 = normal;
             normalInfo[sPoint].normal2 = normal;
         }
-        normalInfo[nPoints - 1].normal1 = normalInfo[0].normal1;
-        normalInfo[nPoints - 1].normal2 = normalInfo[0].normal2;
+        normalInfo[0].normal2 = normalInfo[0].normal1;
+        normalInfo[nPoints - 1].normal1 = normalInfo[nPoints - 1].normal2;
 
         for (uint32_t i = 0; i < nPoints; ++i)
         {
old mode 100644 (file)
new mode 100755 (executable)
index bef3871..d9acf61
@@ -64,8 +64,9 @@ bool GlRenderer::flush()
 
 bool GlRenderer::preRender()
 {
-    //TODO: called just before render()
-
+    // Blend function for pre multiplied alpha
+    GL_CHECK(glBlendFuncSeparate(GL_ONE, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA));
+    GL_CHECK(glEnable(GL_BLEND));
     return true;
 }
 
old mode 100644 (file)
new mode 100755 (executable)
index df81020..4530f1d
@@ -113,14 +113,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     glCanvas->sync();
 }
old mode 100644 (file)
new mode 100755 (executable)
index 6765cb6..7db8201
@@ -101,14 +101,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 71dd6a0..a2bb1d8
@@ -90,14 +90,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 5945490..00a3bc3
@@ -139,14 +139,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 67d0240..164ff61
@@ -102,14 +102,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 1c1b820..a97ec70
@@ -167,14 +167,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 826287b..90656fc
@@ -119,14 +119,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 8860135..d81f709
@@ -79,14 +79,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index bcd5ab7..b3a265e
@@ -96,14 +96,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index dd00827..724b8b4
@@ -133,14 +133,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 054bf12..c80cb03
@@ -119,14 +119,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index b796a5b..c835a92
@@ -126,14 +126,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index aeaf11e..9597101
@@ -163,14 +163,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index 391b55f..7788817
@@ -69,14 +69,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index f7c1a88..36f2a94
@@ -116,14 +116,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index bc3f960..894c695
@@ -153,14 +153,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index edb987b..65fe9d7
@@ -93,14 +93,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index da7c87c..6d0edbf
@@ -130,14 +130,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
old mode 100644 (file)
new mode 100755 (executable)
index c350435..0d00738
@@ -91,14 +91,8 @@ void initGLview(Evas_Object *obj)
 void drawGLview(Evas_Object *obj)
 {
     auto gl = elm_glview_gl_api_get(obj);
-    int w, h;
-    elm_glview_size_get(obj, &w, &h);
-    gl->glViewport(0, 0, w, h);
     gl->glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
     gl->glClear(GL_COLOR_BUFFER_BIT);
-    gl->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-    gl->glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE);
-    gl->glEnable(GL_BLEND);
 
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();