gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog backend/render_handler_ogl.cpp


From: Bastiaan Jacques
Subject: [Gnash-commit] gnash ChangeLog backend/render_handler_ogl.cpp
Date: Thu, 29 May 2008 15:18:34 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Bastiaan Jacques <bjacques>     08/05/29 15:18:34

Modified files:
        .              : ChangeLog 
        backend        : render_handler_ogl.cpp 

Log message:
        Apply the requested matrix transformation in draw_line_strip. Implement 
draw_poly.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6761&r2=1.6762
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_ogl.cpp?cvsroot=gnash&r1=1.113&r2=1.114

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6761
retrieving revision 1.6762
diff -u -b -r1.6761 -r1.6762
--- ChangeLog   29 May 2008 12:53:43 -0000      1.6761
+++ ChangeLog   29 May 2008 15:18:32 -0000      1.6762
@@ -1,3 +1,8 @@
+2008-05-29 Bastiaan Jacques <address@hidden>
+
+       * backend/render_handler_ogl.cpp: Apply the requested matrix
+       transformation in draw_line_strip. Implement draw_poly.
+
 2008-05-29 Benjamin Wolsey <address@hidden>
 
        * server/movie_root.{h,cpp}: drop some dead code.

Index: backend/render_handler_ogl.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_ogl.cpp,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -b -r1.113 -r1.114
--- backend/render_handler_ogl.cpp      29 May 2008 06:21:34 -0000      1.113
+++ backend/render_handler_ogl.cpp      29 May 2008 15:18:33 -0000      1.114
@@ -872,6 +872,7 @@
                   const matrix& mat)
   {
     glPushMatrix();
+    apply_matrix(mat);
     
     glColor3ub(color.m_r, color.m_g, color.m_b);
 
@@ -892,10 +893,35 @@
     glPopMatrix();
   }
 
+  // NOTE: this implementation can't handle complex polygons (such as concave
+  // polygons.
   virtual void  draw_poly(const point* corners, size_t corner_count, 
     const rgba& fill, const rgba& outline, const matrix& mat, bool masked)
   {
-    log_unimpl("draw_poly");
+    if (corner_count < 1) {
+      return;
+    }
+
+    glPushMatrix();
+    apply_matrix(mat);
+
+    glColor4ub(fill.m_r, fill.m_g, fill.m_b, fill.m_a);
+
+    glEnableClientState(GL_VERTEX_ARRAY);
+
+    // Draw simple polygon
+    glVertexPointer(2, GL_FLOAT, 0 /* tight packing */, corners);
+    glDrawArrays(GL_POLYGON, 0, corner_count);
+
+    // Draw outline
+    glLineWidth(1.0);
+    glColor4ub(outline.m_r, outline.m_g, outline.m_b, outline.m_a);
+    glVertexPointer(2, GL_FLOAT, 0 /* tight packing */, corners);
+    glDrawArrays(GL_LINE_LOOP, 0, corner_count);
+
+    glDisableClientState(GL_VERTEX_ARRAY);
+
+    glPopMatrix();
   }
 
   virtual void  set_antialiased(bool enable)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]