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_agg.cpp ...


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog backend/render_handler_agg.cpp ...
Date: Mon, 15 Oct 2007 12:31:33 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   07/10/15 12:31:33

Modified files:
        .              : ChangeLog 
        backend        : render_handler_agg.cpp render_handler_agg.h 
        gui            : fb.cpp fltk_glue_agg.cpp gtk_glue_agg.cpp 
                         kde_glue_agg.cpp riscos_glue_agg.cpp 
                         sdl_agg_glue.cpp 

Log message:
        Don't let the renderer choose the rowstride (bytes per line) as this 
depends on the GUI choose the rowstride (bytes per line) as this depends on the 
GUI calculating it.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4611&r2=1.4612
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.109&r2=1.110
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.h?cvsroot=gnash&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/fb.cpp?cvsroot=gnash&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/fltk_glue_agg.cpp?cvsroot=gnash&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/gtk_glue_agg.cpp?cvsroot=gnash&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/kde_glue_agg.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/riscos_glue_agg.cpp?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/sdl_agg_glue.cpp?cvsroot=gnash&r1=1.13&r2=1.14

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.4611
retrieving revision 1.4612
diff -u -b -r1.4611 -r1.4612
--- ChangeLog   15 Oct 2007 10:11:36 -0000      1.4611
+++ ChangeLog   15 Oct 2007 12:31:32 -0000      1.4612
@@ -1,3 +1,12 @@
+2007-10-15 Udo Giacomozzi <address@hidden>
+
+       * backend/render_handler_agg.cpp, backend/render_handler_agg.h, 
gui/fb.cpp,
+         gui/fltk_glue_agg.cpp, gui/gtk_glue_agg.cpp, gui/kde_glue_agg.cpp,
+         gui/riscos_glue_agg.cpp, gui/sdl_agg_glue.cpp: Don't let the renderer
+         choose the rowstride (bytes per line) as this depends on the GUI
+    and use the rowstride reported by the MIT-SHM extension instead of
+    calculating it.
+
 2007-10-14 Sandro Santilli <address@hidden>
 
        * gui/fb.cpp: update use of agg_detect_pixel_format

Index: backend/render_handler_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -b -r1.109 -r1.110
--- backend/render_handler_agg.cpp      15 Oct 2007 09:06:59 -0000      1.109
+++ backend/render_handler_agg.cpp      15 Oct 2007 12:31:33 -0000      1.110
@@ -17,7 +17,7 @@
 
  
 
-/* $Id: render_handler_agg.cpp,v 1.109 2007/10/15 09:06:59 strk Exp $ */
+/* $Id: render_handler_agg.cpp,v 1.110 2007/10/15 12:31:33 udog Exp $ */
 
 // Original version by Udo Giacomozzi and Hannes Mayr, 
 // INDUNET GmbH (www.indunet.it)
@@ -631,8 +631,9 @@
   /// owned by the renderer and init_buffer() may be called multiple times
   /// when the buffer size changes, for example. However, bits_per_pixel must
   /// remain the same. 
+  /// rowstride is the size, in bytes, of one row.
   /// This method *must* be called prior to any other method of the class!
-  void init_buffer(unsigned char *mem, int size, int x, int y)
+  void init_buffer(unsigned char *mem, int size, int x, int y, int rowstride)
   {
         assert(x > 0);
         assert(y > 0);
@@ -642,14 +643,9 @@
     xres    = x;
     yres    = y;
     
-        // don't need to check m_pixf != NULL
-        // as that check is already implemented
-        // in the 'delete' statement
-    //if (m_pixf != NULL)
-      delete m_pixf;    // TODO: is this correct??
+    delete m_pixf;   
 
-    int row_size = xres*((bpp+7)/8);
-    m_rbuf.attach(memaddr, xres, yres, row_size);
+    m_rbuf.attach(memaddr, xres, yres, rowstride);
 
     // allocate pixel format accessor   
     m_pixf = new PixelFormat(m_rbuf);
@@ -659,7 +655,7 @@
     set_invalidated_region_world();
     
     log_msg("initialized AGG buffer <%p>, %d bytes, %dx%d, rowsize is %d 
bytes", 
-      mem, size, x, y, row_size);
+      mem, size, x, y, rowstride);
   }
   
 

Index: backend/render_handler_agg.h
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- backend/render_handler_agg.h        15 Oct 2007 09:07:00 -0000      1.21
+++ backend/render_handler_agg.h        15 Oct 2007 12:31:33 -0000      1.22
@@ -40,7 +40,7 @@
   virtual ~render_handler_agg_base() {}
   
   // these methods need to be accessed from outside:
-  virtual void init_buffer(unsigned char *mem, int size, int x, int y)=0;
+  virtual void init_buffer(unsigned char *mem, int size, int x, int y, int 
rowstride)=0;
 
   virtual unsigned int getBytesPerPixel() const=0;
 
@@ -51,7 +51,7 @@
     
     _testBuffer        = static_cast<unsigned char *>( realloc(_testBuffer, 
size) );
     
-    init_buffer(_testBuffer, size, width, height);
+    init_buffer(_testBuffer, size, width, height, width * getBytesPerPixel());
     
     return true;
   }

Index: gui/fb.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/fb.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- gui/fb.cpp  15 Oct 2007 10:11:37 -0000      1.39
+++ gui/fb.cpp  15 Oct 2007 12:31:33 -0000      1.40
@@ -295,7 +295,7 @@
 
   set_render_handler(agg_handler);
   
-  agg_handler->init_buffer(_mem, _size, _width, _height);
+  agg_handler->init_buffer(_mem, _size, _width, _height, _width*((_bpp+7)/8));
   
   disable_terminal();
 

Index: gui/fltk_glue_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/fltk_glue_agg.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gui/fltk_glue_agg.cpp       1 Jul 2007 10:54:00 -0000       1.8
+++ gui/fltk_glue_agg.cpp       15 Oct 2007 12:31:33 -0000      1.9
@@ -56,7 +56,7 @@
     assert(_renderer);
 
     int _bpp = 24;
-    int depth_bytes = _bpp / 8;
+    int depth_bytes = _bpp / 8;  // TODO: <Udo> is this correct? Gives 1 for 
15 bit modes!
 
     assert(_bpp % 8 == 0);
 
@@ -73,7 +73,8 @@
     // address) during run-time.
     render_handler_agg_base * renderer =
       static_cast<render_handler_agg_base *>(_renderer);
-    renderer->init_buffer(_offscreenbuf, bufsize, width, height);
+    renderer->init_buffer(_offscreenbuf, bufsize, width, height, 
+      width*((_bpp+7)/8));
 
     _width = width;
     _height = height;

Index: gui/gtk_glue_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/gtk_glue_agg.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- gui/gtk_glue_agg.cpp        15 Oct 2007 09:07:00 -0000      1.29
+++ gui/gtk_glue_agg.cpp        15 Oct 2007 12:31:33 -0000      1.30
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: gtk_glue_agg.cpp,v 1.29 2007/10/15 09:07:00 strk Exp $ */
+/* $Id: gtk_glue_agg.cpp,v 1.30 2007/10/15 12:31:33 udog Exp $ */
 
 
 /// \page gtk_shm_support GTK shared memory extension support
@@ -395,7 +395,8 @@
          (unsigned char*) _shm_info->shmaddr,
                _shm_image->bytes_per_line * _shm_image->height,
                _width,
-               _height
+               _height,
+               _shm_image->bytes_per_line
        );
        
   } else {
@@ -403,7 +404,7 @@
   
     // ==> use standard pixmaps (slower, but should work in any case)
 
-       int new_bufsize = width*height*(_bpp/8);
+       int new_bufsize = width*height*((_bpp+7)/8);
        
        // TODO: At the moment we only increase the buffer and never decrease 
it. Should be
        // changed sometime.
@@ -432,7 +433,8 @@
          _offscreenbuf,
                _offscreenbuf_size,
                _width,
-               _height
+               _height,
+               _width*((_bpp+7)/8)
        );
        
        

Index: gui/kde_glue_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/kde_glue_agg.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- gui/kde_glue_agg.cpp        19 Sep 2007 06:38:04 -0000      1.6
+++ gui/kde_glue_agg.cpp        15 Oct 2007 12:31:33 -0000      1.7
@@ -15,7 +15,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: kde_glue_agg.cpp,v 1.6 2007/09/19 06:38:04 strk Exp $ */
+/* $Id: kde_glue_agg.cpp,v 1.7 2007/10/15 12:31:33 udog Exp $ */
 
 #include "kde_glue_agg.h"
 #include "render_handler.h"
@@ -61,7 +61,7 @@
     if (!_renderer) return;
 
     int _bpp = 32;
-    int depth_bytes = _bpp / 8;
+    int depth_bytes = _bpp / 8;  // TODO: <Udo> is this correct? Gives 1 for 
15 bit modes!
 
     assert(_bpp % 8 == 0);
 
@@ -76,7 +76,8 @@
     // address) during run-time.
     render_handler_agg_base * renderer =
       static_cast<render_handler_agg_base *>(_renderer);
-    renderer->init_buffer(_offscreenbuf.get(), bufsize, width, height);
+    renderer->init_buffer(_offscreenbuf.get(), bufsize, width, height,
+      width*((_bpp+7)/8));
 
     _width = width;
     _height = height;

Index: gui/riscos_glue_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/riscos_glue_agg.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- gui/riscos_glue_agg.cpp     1 Jul 2007 10:54:04 -0000       1.5
+++ gui/riscos_glue_agg.cpp     15 Oct 2007 12:31:33 -0000      1.6
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: riscos_glue_agg.cpp,v 1.5 2007/07/01 10:54:04 bjacques Exp $ */
+/* $Id: riscos_glue_agg.cpp,v 1.6 2007/10/15 12:31:33 udog Exp $ */
 
 #include <cstdio>
 #include <cerrno>
@@ -84,7 +84,7 @@
   if (width == _width && height == _height)
     return;
 
-  int new_bufsize = width*height*(_bpp/8);
+  int new_bufsize = width*height*((_bpp+7)/8);
 
   // TODO: At the moment we only increase the buffer and never decrease it.
   // Should be changed sometime.
@@ -115,7 +115,8 @@
          _offscreenbuf,
          _offscreenbuf_size,
          _width,
-         _height);
+         _height,
+         _width*((_bpp+7)/8));
 }
 
 void

Index: gui/sdl_agg_glue.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/gui/sdl_agg_glue.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- gui/sdl_agg_glue.cpp        1 Jul 2007 10:54:04 -0000       1.13
+++ gui/sdl_agg_glue.cpp        15 Oct 2007 12:31:33 -0000      1.14
@@ -84,7 +84,7 @@
 bool
 SdlAggGlue::prepDrawingArea(int width, int height, uint32_t sdl_flags)
 {
-    int depth_bytes = _bpp / 8;
+    int depth_bytes = _bpp / 8;  // TODO: <Udo> is this correct? Gives 1 for 
15 bit modes!
 
     assert(_bpp % 8 == 0);
 
@@ -136,7 +136,8 @@
     // address) during run-time.
     render_handler_agg_base * renderer =
       static_cast<render_handler_agg_base *>(_agg_renderer);
-    renderer->init_buffer(_offscreenbuf, bufsize, width, height);
+    renderer->init_buffer(_offscreenbuf, bufsize, width, height,
+      width*((_bpp+7)/8));
 
 
     _sdl_surface = SDL_CreateRGBSurfaceFrom((void *) _offscreenbuf, width, 
height,




reply via email to

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