gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash/backend render_handler_agg.cpp render_han...


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash/backend render_handler_agg.cpp render_han...
Date: Tue, 26 Jun 2007 17:40:38 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   07/06/26 17:40:38

Modified files:
        backend        : render_handler_agg.cpp render_handler_agg.h 

Log message:
        * backend/render_handler_agg.{cpp,h}, gui/fb.cpp: moved pixel format
          detection code to AGG backend files (so it can be used by any GUI)   
        * gui/gtk_glue_agg.{cpp,h}: initial work for MIT-SHM support (not 
          compiled in by default because there is much left to do)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.cpp?cvsroot=gnash&r1=1.88&r2=1.89
http://cvs.savannah.gnu.org/viewcvs/gnash/backend/render_handler_agg.h?cvsroot=gnash&r1=1.17&r2=1.18

Patches:
Index: render_handler_agg.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.cpp,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -b -r1.88 -r1.89
--- render_handler_agg.cpp      6 Jun 2007 16:15:00 -0000       1.88
+++ render_handler_agg.cpp      26 Jun 2007 17:40:38 -0000      1.89
@@ -17,7 +17,7 @@
 
  
 
-/* $Id: render_handler_agg.cpp,v 1.88 2007/06/06 16:15:00 udog Exp $ */
+/* $Id: render_handler_agg.cpp,v 1.89 2007/06/26 17:40:38 udog Exp $ */
 
 // Original version by Udo Giacomozzi and Hannes Mayr, 
 // INDUNET GmbH (www.indunet.it)
@@ -2078,6 +2078,8 @@
 DSOEXPORT render_handler_agg_base*  create_render_handler_agg(const char 
*pixelformat)
 {
 
+  if (!pixelformat) return NULL;
+
   log_msg("framebuffer pixel format is %s", pixelformat);
   
 #ifdef PIXELFORMAT_RGB555  
@@ -2121,6 +2123,55 @@
   return NULL; // avoid compiler warning
 }
 
+DSOEXPORT char *agg_detect_pixel_format(unsigned int rofs, unsigned int rsize,
+  unsigned int gofs, unsigned int gsize,
+  unsigned int bofs, unsigned int bsize,
+  unsigned int bpp) {
+  
+  // 15 bits RGB (hicolor)
+  if ((rofs==10) && (rsize==5)
+   && (gofs==5) && (gsize==5)
+   && (bofs==0) && (bsize==5) ) {
+   
+    return "RGB555";
+      
+  } else   
+  // 16 bits RGB (hicolor)
+  if ((rofs==11) && (rsize==5)
+   && (gofs==5) && (gsize==6)
+   && (bofs==0) && (bsize==5) ) {
+   
+    return "RGB565";
+      
+  } else   
+  
+  // 24 bits RGB (truecolor)
+  if ((rofs==16) && (rsize==8)
+   && (gofs==8) && (gsize==8)
+   && (bofs==0) && (bsize==8) ) {
+   
+    if (bpp==24)
+      return "BGR24";
+    else
+      return "BGRA32";
+      
+  } else   
+  // 24 bits BGR (truecolor)
+  if ((rofs==0) && (rsize==8)
+   && (gofs==8) && (gsize==8)
+   && (bofs==16) && (bsize==8)) {
+   
+    if (bpp==24)
+      return "RGB24";
+    else
+      return "RGBA32";
+      
+  }  
+  
+  return NULL; // unknown format
+  
+}
+
 } // end of namespace gnash
 
 

Index: render_handler_agg.h
===================================================================
RCS file: /cvsroot/gnash/gnash/backend/render_handler_agg.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- render_handler_agg.h        4 Jun 2007 16:59:03 -0000       1.17
+++ render_handler_agg.h        26 Jun 2007 17:40:38 -0000      1.18
@@ -68,6 +68,16 @@
 DSOEXPORT render_handler_agg_base*
   create_render_handler_agg(const char *pixelformat);
 
+/// Detect pixel format based on bit mask. If the pixel format is unknown,
+/// NULL is returned. Note that a successfully detected pixel format does
+/// not necessarily mean that the pixel format is available (compiled in).
+DSOEXPORT char* agg_detect_pixel_format(unsigned int rofs, unsigned int rsize,
+  unsigned int gofs, unsigned int gsize,
+  unsigned int bofs, unsigned int bsize,
+  unsigned int bpp);
+  
+
 } // namespace gnash
 
+
 #endif // BACKEND_RENDER_HANDLER_CAIRO_H




reply via email to

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