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: Wed, 12 Sep 2007 12:53:55 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Bastiaan Jacques <bjacques>     07/09/12 12:53:55

Modified files:
        .              : ChangeLog 
        backend        : render_handler_ogl.cpp 

Log message:
        Implement getPixel().

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4290&r2=1.4291
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_ogl.cpp?cvsroot=gnash&r1=1.80&r2=1.81

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4290
retrieving revision 1.4291
diff -u -b -r1.4290 -r1.4291
--- ChangeLog   12 Sep 2007 11:55:52 -0000      1.4290
+++ ChangeLog   12 Sep 2007 12:53:55 -0000      1.4291
@@ -1,3 +1,7 @@
+2007-09-12 Bastiaan Jacques <address@hidden>
+
+       * backend/render_handler_ogl.cpp: Implement getPixel().
+
 2007-09-12 Sandro Santilli <address@hidden>
 
        * testsuite/actionscript.all/Inheritance.as: more tests for double
@@ -16,7 +20,7 @@
        * testsuite/actionscript.all/Inheritance.as: few more tests (maybe
          redundant) for constructor and __constructor__
 
-2007-09-12 Bastiaan Jacques <address@hidden
+2007-09-12 Bastiaan Jacques <address@hidden>
 
        * backend/render_handler_ogl.cpp: Add a debugging function
        called check_error(), enabled by toggling the DEBUG_OPENGL

Index: backend/render_handler_ogl.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_ogl.cpp,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -b -r1.80 -r1.81
--- backend/render_handler_ogl.cpp      12 Sep 2007 10:26:09 -0000      1.80
+++ backend/render_handler_ogl.cpp      12 Sep 2007 12:53:55 -0000      1.81
@@ -5,7 +5,7 @@
 
 // A render_handler that uses SDL & OpenGL
 
-/* $Id: render_handler_ogl.cpp,v 1.80 2007/09/12 10:26:09 bjacques Exp $ */
+/* $Id: render_handler_ogl.cpp,v 1.81 2007/09/12 12:53:55 bjacques Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -567,6 +567,32 @@
 #endif // 0
        }
 
+    bool getPixel(rgba& color_out, int x, int y)
+    {
+       if (x < 0 || y < 0) {
+         return false;
+       }
+
+       GLint viewport[4];
+       glGetIntegerv( GL_VIEWPORT, viewport);
+       GLint buf_width = viewport[2], buf_height = viewport[3];
+
+       if (x >= buf_width || y >= buf_height) {
+         // X/Y coordinates are outside of the framebuffer.
+         return false;
+       }
+
+       char buf[4];
+
+       // Note that (0,0) in OpenGL is the lower left corner, while in Gnash
+       // it is the top left corner.
+       glReadPixels(x, buf_height - y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, buf);
+
+       color_out.set(buf[0], buf[1], buf[2], buf[3]);
+       return true;
+    }
+
+
 
     void       end_display()
        // Clean up after rendering a frame.  Client program is still




reply via email to

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