[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash/backend render_handler_agg.cpp render_han...,
Udo Giacomozzi <=