[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog backend/render_handler.h backen... |
Date: |
Mon, 04 Jun 2007 16:59:04 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/06/04 16:59:03
Modified files:
. : ChangeLog
backend : render_handler.h render_handler_agg.cpp
render_handler_agg.h
testsuite : MovieTester.cpp
Log message:
* backend/render_handler.h: expose a new getBitsPerPixel
interface.
* backend/render_handler_agg.{cpp,h}: implement getBitsPerPixel,
const-correct the existing getBytesPerPixel.
* testsuite/MovieTester.cpp (checkPixel): never use a tolerance
inferior to the minimum tolerance for a renderer, with min
tolerance
being a function of BPP (formula suggested by UdoG).
Fixes bug #20035.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3447&r2=1.3448
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler.h?cvsroot=gnash&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.83&r2=1.84
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.h?cvsroot=gnash&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/MovieTester.cpp?cvsroot=gnash&r1=1.37&r2=1.38
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3447
retrieving revision 1.3448
diff -u -b -r1.3447 -r1.3448
--- ChangeLog 4 Jun 2007 14:31:30 -0000 1.3447
+++ ChangeLog 4 Jun 2007 16:59:02 -0000 1.3448
@@ -1,5 +1,15 @@
2007-06-04 Sandro Santilli <address@hidden>
+ * backend/render_handler.h: expose a new getBitsPerPixel interface.
+ * backend/render_handler_agg.{cpp,h}: implement getBitsPerPixel,
+ const-correct the existing getBytesPerPixel.
+ * testsuite/MovieTester.cpp (checkPixel): never use a tolerance
+ inferior to the minimum tolerance for a renderer, with min tolerance
+ being a function of BPP (formula suggested by UdoG).
+ Fixes bug #20035.
+
+2007-06-04 Sandro Santilli <address@hidden>
+
* server/asobj/NetStreamFfmpeg.cpp (av_streamer): sleep for 1
microsecond between iterations, to allow other threads to run.
Fixes the 100% CPU problem (thanks to UdoG for support).
Index: backend/render_handler.h
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- backend/render_handler.h 28 May 2007 15:40:57 -0000 1.40
+++ backend/render_handler.h 4 Jun 2007 16:59:03 -0000 1.41
@@ -18,7 +18,7 @@
//
//
-/* $Id: render_handler.h,v 1.40 2007/05/28 15:40:57 ann Exp $ */
+/* $Id: render_handler.h,v 1.41 2007/06/04 16:59:03 strk Exp $ */
#ifndef RENDER_HANDLER_H
#define RENDER_HANDLER_H
@@ -582,6 +582,19 @@
return false;
}
+ /// Return color depth (bits per pixel) or 0 if unknown/unimplemented.
+ //
+ /// Default implementation returns 0 (unknown).
+ ///
+ /// TODO: this should be a pure abstract function, just don't want
+ /// to scan ogl and cairo backend for an implementation *now*
+ /// but would be needed for automated testing... Quinn, can you
help ?
+ ///
+ virtual unsigned int getBitsPerPixel() const
+ {
+ return 0;
+ }
+
/// Sets the x/y scale for the movie
virtual void set_scale(float /*xscale*/, float /*yscale*/) {
// nop
Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- backend/render_handler_agg.cpp 29 May 2007 08:49:14 -0000 1.83
+++ backend/render_handler_agg.cpp 4 Jun 2007 16:59:03 -0000 1.84
@@ -17,7 +17,7 @@
-/* $Id: render_handler_agg.cpp,v 1.83 2007/05/29 08:49:14 udog Exp $ */
+/* $Id: render_handler_agg.cpp,v 1.84 2007/06/04 16:59:03 strk Exp $ */
// Original version by Udo Giacomozzi and Hannes Mayr,
// INDUNET GmbH (www.indunet.it)
@@ -1999,7 +1999,7 @@
scale.m_y = PIXELS_TO_TWIPS(yscale);
}
- virtual unsigned int getBytesPerPixel() {
+ virtual unsigned int getBytesPerPixel() const {
return bpp/8;
}
Index: backend/render_handler_agg.h
===================================================================
RCS file: /sources/gnash/gnash/backend/render_handler_agg.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- backend/render_handler_agg.h 28 May 2007 15:40:57 -0000 1.16
+++ backend/render_handler_agg.h 4 Jun 2007 16:59:03 -0000 1.17
@@ -42,7 +42,9 @@
// these methods need to be accessed from outside:
virtual void init_buffer(unsigned char *mem, int size, int x, int y)=0;
- virtual unsigned int getBytesPerPixel()=0;
+ virtual unsigned int getBytesPerPixel() const=0;
+
+ unsigned int getBitsPerPixel() const { return getBytesPerPixel()*8; }
virtual bool initTestBuffer(unsigned width, unsigned height) {
int size = width * height * getBytesPerPixel();
Index: testsuite/MovieTester.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/MovieTester.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- testsuite/MovieTester.cpp 29 May 2007 17:15:14 -0000 1.37
+++ testsuite/MovieTester.cpp 4 Jun 2007 16:59:03 -0000 1.38
@@ -40,6 +40,7 @@
#include <cstdio>
#include <string>
#include <memory> // for auto_ptr
+#include <cmath> // for ceil and exp2
#define SHOW_INVALIDATED_BOUNDS_ON_ADVANCE 1
@@ -238,22 +239,36 @@
rgba obt_col;
- if ( ! rend.getRenderer().getAveragePixel(obt_col, x, y,
radius) )
- //if ( ! rend.getRenderer().getPixel(obt_col, x, y) )
+ render_handler& handler = rend.getRenderer();
+
+ if ( ! handler.getAveragePixel(obt_col, x, y, radius) )
{
ss << " is out of rendering buffer";
log_msg("%sFAILED: %s (%s)", X,
ss.str().c_str(),
label.c_str()
);
+ continue;
+ }
+
+ // Find minimum tolerance as a function of BPP
+
+ unsigned short minRendererTolerance = tolerance;
+ unsigned int bpp = handler.getBitsPerPixel();
+ if ( bpp )
+ {
+ // UdoG: check_pixel should *always* tolerate at least
2 ^ (8 - bpp/3)
+ minRendererTolerance = int(ceil(exp2(8 - bpp/3)));
}
+ unsigned short tol = std::max(tolerance, minRendererTolerance);
+
ss << "exp:" << color.toShortString() << " ";
ss << "obt:" << obt_col.toShortString() << " ";
- ss << "tol:" << tolerance;
+ ss << "tol:" << tol;
- FuzzyPixel obt(obt_col, tolerance);
- if (exp == obt)
+ FuzzyPixel obt(obt_col, tol);
+ if (exp == obt) // equality operator would use tolerance of
most tolerating FuzzyPixel
{
log_msg("%sPASSED: %s %s", X,
ss.str().c_str(),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog backend/render_handler.h backen...,
Sandro Santilli <=