[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: |
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