gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] [SCM] Gnash branch, openvg, updated. 144f9fcef1cd8a9265d3


From: Rob Savoye
Subject: [Gnash-commit] [SCM] Gnash branch, openvg, updated. 144f9fcef1cd8a9265d3ce2eefdca35a3fbd5dd6
Date: Sun, 23 Jan 2011 05:03:03 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".

The branch, openvg has been updated
       via  144f9fcef1cd8a9265d3ce2eefdca35a3fbd5dd6 (commit)
      from  9e46c3f9bb02cc69fb228c3b4132201ff8005194 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=144f9fcef1cd8a9265d3ce2eefdca35a3fbd5dd6


commit 144f9fcef1cd8a9265d3ce2eefdca35a3fbd5dd6
Author: Rob Savoye <address@hidden>
Date:   Sat Jan 22 22:01:39 2011 -0700

    improve 32/16 bit handling for bitmaps

diff --git a/librender/openvg/OpenVGBitmap.cpp 
b/librender/openvg/OpenVGBitmap.cpp
index 4f33f04..158e03f 100644
--- a/librender/openvg/OpenVGBitmap.cpp
+++ b/librender/openvg/OpenVGBitmap.cpp
@@ -33,14 +33,27 @@ static const int NUM_STOPS = 10;
 
 OpenVGBitmap::OpenVGBitmap(VGPaint paint)
     : _vgimage(VG_INVALID_HANDLE),
-      _pixel_format(VG_sRGB_565), // was VG_sARGB_8888, VG_sRGB_565
+#ifdef BUILD_X11_DEVICE
+      _pixel_format(VG_sARGB_8888),
+      _stride(4),
+#else
+      _pixel_format(VG_sRGB_565),
+      _stride(2),
+#endif
       _vgpaint(paint)
 {
-    GNASH_REPORT_FUNCTION;
+    // GNASH_REPORT_FUNCTION;
 }
 
 OpenVGBitmap::OpenVGBitmap(CachedBitmap *bitmap, VGPaint vgpaint)
-    :  _pixel_format(VG_sRGBA_8888), // was VG_sARGB_8888, VG_sRGB_565
+    : 
+#ifdef BUILD_X11_DEVICE
+      _pixel_format(VG_sARGB_8888),
+      _stride(4),
+#else
+      _pixel_format(VG_sRGB_565),
+      _stride(2),
+#endif
        _vgpaint(vgpaint)
 {
     GNASH_REPORT_FUNCTION;
@@ -52,26 +65,15 @@ OpenVGBitmap::OpenVGBitmap(CachedBitmap *bitmap, VGPaint 
vgpaint)
     //    _image.reset(&im);
 
     // Create a VG image
-#ifdef BUILD_X11_DEVICE
-    _vgimage = vgCreateImage(VG_sRGBA_8888, im.width(), im.height(),
-                             VG_IMAGE_QUALITY_FASTER);
-    // Copy the image data into the VG image container
-    vgImageSubData(_vgimage, im.begin(), 0, VG_sRGBA_8888,
-                   0, 0, im.width(), im.height());
-#else
-    _vgimage = vgCreateImage(VG_sRGB_565, im.width(), im.height(),
+    _vgimage = vgCreateImage(_pixel_format, im.width(), im.height(),
                              VG_IMAGE_QUALITY_FASTER);    
     // Copy the image data into the VG image container
-    vgImageSubData(_vgimage, im.begin(), im.width() * 2, VG_sRGB_565,
+    vgImageSubData(_vgimage, im.begin(), im.width() * _stride, _pixel_format,
                    0, 0, im.width(), im.height());
-#endif
+    
     if (_vgimage == VG_INVALID_HANDLE) {
         log_error("Failed to create VG image! %s", 
Renderer_ovg::getErrorString(vgGetError()));
     }
-
-    // vgPaintPattern(_vgpaint, _vgimage);
-    // vgDrawImage(_vgimage);
-    // vgFlush();
 }
 
 // 
@@ -81,9 +83,14 @@ OpenVGBitmap::OpenVGBitmap(CachedBitmap *bitmap, VGPaint 
vgpaint)
 // VG_A_8
 // VG_A_4
 OpenVGBitmap::OpenVGBitmap(image::GnashImage *image, VGPaint vgpaint)
-    :
-    _image(image),
-    _pixel_format(VG_sRGB_565), // was VG_sARGB_8888, VG_sRGB_565
+    : _image(image),
+#ifdef BUILD_X11_DEVICE
+    _pixel_format(VG_sARGB_8888),
+    _stride(4),
+#else
+    _pixel_format(VG_sRGB_565),
+    _stride(2),
+#endif
     _vgpaint(vgpaint)
 {
     GNASH_REPORT_FUNCTION;
@@ -95,9 +102,9 @@ OpenVGBitmap::OpenVGBitmap(image::GnashImage *image, VGPaint 
vgpaint)
     _vgimage = vgCreateImage(_pixel_format, width, height,
                              VG_IMAGE_QUALITY_FASTER);    
     
-    vgImageSubData(_vgimage, image->begin(), width * 4, _pixel_format,
+    vgImageSubData(_vgimage, image->begin(), width * _stride, _pixel_format,
                    0, 0, width, height);
-    
+
     vgSetParameteri(vgpaint, VG_PAINT_TYPE, VG_PAINT_TYPE_PATTERN);
     vgSetParameteri(vgpaint, VG_PAINT_PATTERN_TILING_MODE, VG_TILE_REPEAT);
     vgPaintPattern(vgpaint, _vgimage);
@@ -114,7 +121,7 @@ OpenVGBitmap::OpenVGBitmap(image::GnashImage *image, 
VGPaint vgpaint)
 
 OpenVGBitmap::~OpenVGBitmap()
 {
-    GNASH_REPORT_FUNCTION;
+    // GNASH_REPORT_FUNCTION;
     
 #if 0
     _tex_size -= _image->width() * _image->height() * 4;
@@ -172,12 +179,16 @@ OpenVGBitmap::apply(const gnash::SWFMatrix& bitmap_matrix,
     vgSeti (VG_MATRIX_MODE, VG_MATRIX_STROKE_PAINT_TO_USER);
     vgLoadMatrix (vmat);
     vgSeti (VG_MATRIX_MODE, VG_MATRIX_PATH_USER_TO_SURFACE);
-    
+
+#if 0
     if (wrap_mode == WRAP_CLAMP) {  
         vgSetParameteri (paint, VG_PAINT_PATTERN_TILING_MODE, VG_TILE_PAD);
     } else {
         vgSetParameteri (paint, VG_PAINT_PATTERN_TILING_MODE, VG_TILE_REPEAT);
     }
+#else
+    vgSetParameteri (paint, VG_PAINT_PATTERN_TILING_MODE, VG_TILE_FILL);
+#endif
 }
 
 /// OpenVG supports creating linear and gradient fills in hardware, so
diff --git a/librender/openvg/OpenVGBitmap.h b/librender/openvg/OpenVGBitmap.h
index fb302ab..6b3c431 100644
--- a/librender/openvg/OpenVGBitmap.h
+++ b/librender/openvg/OpenVGBitmap.h
@@ -72,6 +72,7 @@ private:
     VGImageFormat   _pixel_format;
     mutable VGImage _vgimage;
     VGPaint         _vgpaint;
+    int             _stride;
     int             _tex_size;
 };
 
diff --git a/librender/openvg/OpenVGRenderer.cpp 
b/librender/openvg/OpenVGRenderer.cpp
index 673de1a..b220aa9 100644
--- a/librender/openvg/OpenVGRenderer.cpp
+++ b/librender/openvg/OpenVGRenderer.cpp
@@ -604,7 +604,7 @@ Renderer_ovg::apply_mask()
     vgLoadMatrix(mat);
     
 #ifdef OPENVG_VERSION_1_1    
-    vgMask(_mask, VG_FILL_MASK, 0, 0, _display_width, _display_height); // 
FIXME
+    vgMask(_mask, VG_FILL_MASK, 0, 0, _display_width, _display_height); 
 #endif
 // Call add_paths for each mask.
     std::for_each(_masks.begin(), _masks.end(),

-----------------------------------------------------------------------

Summary of changes:
 librender/openvg/OpenVGBitmap.cpp   |   59 ++++++++++++++++++++--------------
 librender/openvg/OpenVGBitmap.h     |    1 +
 librender/openvg/OpenVGRenderer.cpp |    2 +-
 3 files changed, 37 insertions(+), 25 deletions(-)


hooks/post-receive
-- 
Gnash



reply via email to

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