[Top][All Lists]
[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)