Revision: 8702
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8702&view=rev
Author:   efiring
Date:     2010-09-16 00:17:09 +0000 (Thu, 16 Sep 2010)

Log Message:
-----------
Removed unused _wxagg extension.

Modified Paths:
--------------
    trunk/matplotlib/CHANGELOG
    trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py
    trunk/matplotlib/setup.cfg.template
    trunk/matplotlib/setup.py
    trunk/matplotlib/setupext.py

Removed Paths:
-------------
    trunk/matplotlib/src/_wxagg.cpp

Modified: trunk/matplotlib/CHANGELOG
===================================================================
--- trunk/matplotlib/CHANGELOG  2010-09-14 15:59:35 UTC (rev 8701)
+++ trunk/matplotlib/CHANGELOG  2010-09-16 00:17:09 UTC (rev 8702)
@@ -1,3 +1,5 @@
+2010-09-15 Remove unused _wxagg extension. - EF
+
 2010-08-25 Add new framework for doing animations with examples.- RM
 
 2010-08-21 Remove unused and inappropriate methods from Tick classes:

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py   2010-09-14 
15:59:35 UTC (rev 8701)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_wxagg.py   2010-09-16 
00:17:09 UTC (rev 8702)
@@ -128,78 +128,12 @@
     return figmgr
 
 
-#
-# agg/wxPython image conversion functions (wxPython <= 2.6)
-#
 
-def _py_convert_agg_to_wx_image(agg, bbox):
-    """
-    Convert the region of the agg buffer bounded by bbox to a wx.Image.  If
-    bbox is None, the entire buffer is converted.
-
-    Note: agg must be a backend_agg.RendererAgg instance.
-    """
-    image = wx.EmptyImage(int(agg.width), int(agg.height))
-    image.SetData(agg.tostring_rgb())
-
-    if bbox is None:
-        # agg => rgb -> image
-        return image
-    else:
-        # agg => rgb -> image => bitmap => clipped bitmap => image
-        return wx.ImageFromBitmap(_clipped_image_as_bitmap(image, bbox))
-
-
-def _py_convert_agg_to_wx_bitmap(agg, bbox):
-    """
-    Convert the region of the agg buffer bounded by bbox to a wx.Bitmap.  If
-    bbox is None, the entire buffer is converted.
-
-    Note: agg must be a backend_agg.RendererAgg instance.
-    """
-    if bbox is None:
-        # agg => rgb -> image => bitmap
-        return wx.BitmapFromImage(_py_convert_agg_to_wx_image(agg, None))
-    else:
-        # agg => rgb -> image => bitmap => clipped bitmap
-        return _clipped_image_as_bitmap(
-            _py_convert_agg_to_wx_image(agg, None),
-            bbox)
-
-
-def _clipped_image_as_bitmap(image, bbox):
-    """
-    Convert the region of a wx.Image bounded by bbox to a wx.Bitmap.
-    """
-    l, b, width, height = bbox.bounds
-    r = l + width
-    t = b + height
-
-    srcBmp = wx.BitmapFromImage(image)
-    srcDC = wx.MemoryDC()
-    srcDC.SelectObject(srcBmp)
-
-    destBmp = wx.EmptyBitmap(int(width), int(height))
-    destDC = wx.MemoryDC()
-    destDC.SelectObject(destBmp)
-
-    destDC.BeginDrawing()
-    x = int(l)
-    y = int(image.GetHeight() - t)
-    destDC.Blit(0, 0, int(width), int(height), srcDC, x, y)
-    destDC.EndDrawing()
-
-    srcDC.SelectObject(wx.NullBitmap)
-    destDC.SelectObject(wx.NullBitmap)
-
-    return destBmp
-
-
 #
 # agg/wxPython image conversion functions (wxPython >= 2.8)
 #
 
-def _py_WX28_convert_agg_to_wx_image(agg, bbox):
+def _convert_agg_to_wx_image(agg, bbox):
     """
     Convert the region of the agg buffer bounded by bbox to a wx.Image.  If
     bbox is None, the entire buffer is converted.
@@ -216,7 +150,7 @@
         return wx.ImageFromBitmap(_WX28_clipped_agg_as_bitmap(agg, bbox))
 
 
-def _py_WX28_convert_agg_to_wx_bitmap(agg, bbox):
+def _convert_agg_to_wx_bitmap(agg, bbox):
     """
     Convert the region of the agg buffer bounded by bbox to a wx.Bitmap.  If
     bbox is None, the entire buffer is converted.
@@ -262,34 +196,3 @@
 
     return destBmp
 
-
-def _use_accelerator(state):
-    """
-    Enable or disable the WXAgg accelerator, if it is present and is also
-    compatible with whatever version of wxPython is in use.
-    """
-    global _convert_agg_to_wx_image
-    global _convert_agg_to_wx_bitmap
-
-    if getattr(wx, '__version__', '0.0')[0:3] < '2.8':
-        # wxPython < 2.8, so use the C++ accelerator or the Python routines
-        if state and _wxagg is not None:
-            _convert_agg_to_wx_image  = _wxagg.convert_agg_to_wx_image
-            _convert_agg_to_wx_bitmap = _wxagg.convert_agg_to_wx_bitmap
-        else:
-            _convert_agg_to_wx_image  = _py_convert_agg_to_wx_image
-            _convert_agg_to_wx_bitmap = _py_convert_agg_to_wx_bitmap
-    else:
-        # wxPython >= 2.8, so use the accelerated Python routines
-        _convert_agg_to_wx_image  = _py_WX28_convert_agg_to_wx_image
-        _convert_agg_to_wx_bitmap = _py_WX28_convert_agg_to_wx_bitmap
-
-
-# try to load the WXAgg accelerator
-try:
-    import _wxagg
-except ImportError:
-    _wxagg = None
-
-# if it's present, use it
-_use_accelerator(True)

Modified: trunk/matplotlib/setup.cfg.template
===================================================================
--- trunk/matplotlib/setup.cfg.template 2010-09-14 15:59:35 UTC (rev 8701)
+++ trunk/matplotlib/setup.cfg.template 2010-09-16 00:17:09 UTC (rev 8702)
@@ -58,7 +58,6 @@
 #gtk = False
 #gtkagg = False
 #tkagg = False
-#wxagg = False
 #macosx = False
 
 [rc_options]
@@ -74,10 +73,3 @@
 #
 #backend = Agg
 #
-# The numerix module was historically used to provide
-# compatibility between the Numeric, numarray, and NumPy array
-# packages. Now that NumPy has emerge as the universal array
-# package for python, numerix is not really necessary and is
-# maintained to provide backward compatibility. Do not change
-# this unless you have a compelling reason to do so.
-#numerix = numpy

Modified: trunk/matplotlib/setup.py
===================================================================
--- trunk/matplotlib/setup.py   2010-09-14 15:59:35 UTC (rev 8701)
+++ trunk/matplotlib/setup.py   2010-09-16 00:17:09 UTC (rev 8702)
@@ -33,12 +33,12 @@
 
 import glob
 from distutils.core import setup
-from setupext import build_agg, build_gtkagg, build_tkagg, build_wxagg,\
+from setupext import build_agg, build_gtkagg, build_tkagg,\
      build_macosx, build_ft2font, build_image, build_windowing, build_path, \
      build_contour, build_delaunay, build_nxutils, build_gdk, \
      build_ttconv, print_line, print_status, print_message, \
      print_raw, check_for_freetype, check_for_libpng, check_for_gtk, \
-     check_for_tk, check_for_wx, check_for_macosx, check_for_numpy, \
+     check_for_tk, check_for_macosx, check_for_numpy, \
      check_for_qt, check_for_qt4, check_for_cairo, \
      check_provide_pytz, check_provide_dateutil,\
      check_for_dvipng, check_for_ghostscript, check_for_latex, \
@@ -156,17 +156,6 @@
         build_tkagg(ext_modules, packages)
         rc['backend'] = 'TkAgg'
 
-if options['build_wxagg']:
-    if check_for_wx() or (options['build_wxagg'] is True):
-        options['build_agg'] = 1
-        import wx
-        if getattr(wx, '__version__', '0.0')[0:3] < '2.8' :
-            build_wxagg(ext_modules, packages)
-            wxagg_backend_status = "yes"
-        else:
-            print_message("WxAgg extension not required for wxPython >= 2.8")
-        rc['backend'] = 'WXAgg'
-
 hasgtk = check_for_gtk()
 if options['build_gtk']:
     if hasgtk or (options['build_gtk'] is True):

Modified: trunk/matplotlib/setupext.py
===================================================================
--- trunk/matplotlib/setupext.py        2010-09-14 15:59:35 UTC (rev 8701)
+++ trunk/matplotlib/setupext.py        2010-09-16 00:17:09 UTC (rev 8702)
@@ -102,7 +102,6 @@
 BUILT_IMAGE     = False
 BUILT_MACOSX    = False
 BUILT_TKAGG     = False
-BUILT_WXAGG     = False
 BUILT_WINDOWING = False
 BUILT_CONTOUR   = False
 BUILT_DELAUNAY  = False
@@ -127,7 +126,6 @@
            'build_gtk': 'auto',
            'build_gtkagg': 'auto',
            'build_tkagg': 'auto',
-           'build_wxagg': 'auto',
            'build_macosx': 'auto',
            'build_image': True,
            'build_windowing': True,
@@ -166,9 +164,6 @@
     try: options['build_tkagg'] = config.getboolean("gui_support", "tkagg")
     except: options['build_tkagg'] = 'auto'
 
-    try: options['build_wxagg'] = config.getboolean("gui_support", "wxagg")
-    except: options['build_wxagg'] = 'auto'
-
     try: options['build_macosx'] = config.getboolean("gui_support", "macosx")
     except: options['build_macosx'] = 'auto'
 
@@ -710,97 +705,6 @@
     if sys.platform == 'win32' and win32_compiler == 'msvc' and 'm' in 
module.libraries:
         module.libraries.remove('m')
 
-
-def check_for_wx():
-    gotit = False
-    explanation = None
-    try:
-        import wx
-    except ImportError:
-        explanation = 'wxPython not found'
-    else:
-        if getattr(wx, '__version__', '0.0')[0:3] >= '2.8':
-            print_status("wxPython", wx.__version__)
-            return True
-        elif sys.platform == 'win32' and win32_compiler == 'mingw32':
-            explanation = "The wxAgg extension can not be built using the 
mingw32 compiler on Windows, since the default wxPython binary is built using 
MS Visual Studio"
-        else:
-            wxconfig = find_wx_config()
-            if wxconfig is None:
-                explanation = """
-WXAgg's accelerator requires `wx-config'.
-
-The `wx-config\' executable could not be located in any directory of the
-PATH environment variable. If you want to build WXAgg, and wx-config is
-in some other location or has some other name, set the WX_CONFIG
-environment variable to the full path of the executable like so:
-
-export WX_CONFIG=/usr/lib/wxPython-2.6.1.0-gtk2-unicode/bin/wx-config
-"""
-            elif not check_wxpython_broken_macosx104_version(wxconfig):
-                explanation = 'WXAgg\'s accelerator not building because a 
broken wxPython (installed by Apple\'s Mac OS X) was found.'
-            else:
-                gotit = True
-
-    if gotit:
-        module = Extension("test", [])
-        add_wx_flags(module, wxconfig)
-        if not find_include_file(
-            module.include_dirs,
-            os.path.join("wx", "wxPython", "wxPython.h")):
-            explanation = ("Could not find wxPython headers in any of %s" %
-                               ", ".join(["'%s'" % x for x in 
module.include_dirs]))
-
-    if gotit:
-        print_status("wxPython", wx.__version__)
-    else:
-        print_status("wxPython", "no")
-    if explanation is not None:
-        print_message(explanation)
-    return gotit
-
-def find_wx_config():
-    """If the WX_CONFIG environment variable has been set, returns it value.
-    Otherwise, search for `wx-config' in the PATH directories and return the
-    first match found.  Failing that, return None.
-    """
-
-    wxconfig = os.getenv('WX_CONFIG')
-    if wxconfig is not None:
-        return wxconfig
-
-    path = os.getenv('PATH') or ''
-    for dir in path.split(':'):
-        wxconfig = os.path.join(dir, 'wx-config')
-        if os.path.exists(wxconfig):
-            return wxconfig
-
-    return None
-
-def check_wxpython_broken_macosx104_version(wxconfig):
-    """Determines if we're using a broken wxPython installed by Mac OS X 
10.4"""
-    if sys.platform == 'darwin':
-        if wxconfig == '/usr/bin/wx-config':
-            version_full = getoutput(wxconfig + ' --version-full')
-            if version_full == '2.5.3.1':
-                return False
-    return True
-
-def add_wx_flags(module, wxconfig):
-    """
-    Add the module flags to build extensions which use wxPython.
-    """
-
-    if sys.platform == 'win32': # just added manually
-        wxlibs = ['wxexpath', 'wxjpegh', 'wxmsw26uh',
-                  'wxmsw26uh_animate', 'wxmsw26uh_gizmos', 
'wxmsw26uh_gizmos_xrc',
-                  'wxmsw26uh_gl', 'wxmsw26uh_stc', 'wxpngh', 'wxregexuh', 
'wxtiffh', 'wxzlibh']
-        module.libraries.extend(wxlibs)
-        module.libraries.extend(wxlibs)
-        return
-
-    get_pkgconfig(module, '', flags='--cppflags --libs', 
pkg_config_exec='wx-config')
-
 # Make sure you use the Tk version given by Tkinter.TkVersion
 # or else you'll build for a wrong version of the Tcl
 # interpreter (leading to nasty segfaults).
@@ -1200,25 +1104,6 @@
     BUILT_TKAGG = True
 
 
-def build_wxagg(ext_modules, packages):
-     global BUILT_WXAGG
-     if BUILT_WXAGG:
-         return
-
-     deps = ['src/_wxagg.cpp', 'src/mplutils.cpp']
-     deps.extend(glob.glob('CXX/*.cxx'))
-     deps.extend(glob.glob('CXX/*.c'))
-
-     module = Extension('matplotlib.backends._wxagg', deps)
-
-     add_agg_flags(module)
-     add_ft2font_flags(module)
-     wxconfig = find_wx_config()
-     add_wx_flags(module, wxconfig)
-
-     ext_modules.append(module)
-     BUILT_WXAGG = True
-
 def build_macosx(ext_modules, packages):
     global BUILT_MACOSX
     if BUILT_MACOSX: return # only build it if you you haven't already

Deleted: trunk/matplotlib/src/_wxagg.cpp
===================================================================
--- trunk/matplotlib/src/_wxagg.cpp     2010-09-14 15:59:35 UTC (rev 8701)
+++ trunk/matplotlib/src/_wxagg.cpp     2010-09-16 00:17:09 UTC (rev 8702)
@@ -1,273 +0,0 @@
-// File: _wxagg.cpp
-// Purpose: Accelerate WXAgg by doing the agg->wxWidgets conversions in C++.
-// Author: Ken McIvor <mci...@iit.edu>
-//
-// Copyright 2005 Illinois Institute of Technology
-// Derived from `_gtkagg.cpp', Copyright 2004-2005 John Hunter
-//
-// See the file "LICENSE" for information on usage and redistribution
-// of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-
-
-// TODO:
-// * Better type checking.
-//
-// * Make the `bbox' argument optional.
-//
-// * Determine if there are any thread-safety issues with this implementation.
-//
-// * Perform some AGG kung-fu to let us slice a region out of a
-//   rendering_buffer and convert it from RGBA to RGB on the fly, rather than
-//   making itermediate copies.  This could be of use in _gtkagg and _tkagg as
-//   well.
-//
-// * Write an agg_to_wx_bitmap() that works more like agg_to_gtk_drawable(),
-//   drawing directly to a bitmap.
-//
-//   This was the initial plan, except that I had not idea how to take a
-//   wx.Bitmap Python shadow class and turn it into a wxBitmap pointer.
-//
-//   It appears that this is the way to do it:
-//       bool success = wxPyConvertSwigPtr(pyBitmap, (void**)&bitmap,
-//           _T("wxBitmap"));
-//
-//   I'm not sure this will speed things up much, since wxWidgets requires you
-//   to go AGG->wx.Image->wx.Bitmap before you can blit using a MemoryDC.
-
-
-#include <cstring>
-#include <cerrno>
-#include <cstdio>
-#include <iostream>
-#include <cmath>
-#include <utility>
-#include <fstream>
-#include <stdlib.h>
-
-#include "agg_basics.h"
-#include "_backend_agg.h"
-#include "agg_pixfmt_rgba.h"
-#include "util/agg_color_conv_rgb8.h"
-#include "agg_py_transforms.h"
-
-#include <wx/image.h>
-#include <wx/bitmap.h>
-#include <wx/wxPython/wxPython.h>
-
-
-// forward declarations
-static wxImage  *convert_agg2image(RendererAgg *aggRenderer, Py::Object 
clipbox);
-static wxBitmap *convert_agg2bitmap(RendererAgg *aggRenderer, Py::Object 
clipbox);
-
-
-// the extension module
-class _wxagg_module : public Py::ExtensionModule<_wxagg_module>
-{
-public:
-
-    _wxagg_module()
-            : Py::ExtensionModule<_wxagg_module>("_wxkagg")
-    {
-        add_varargs_method("convert_agg_to_wx_image",
-                           &_wxagg_module::convert_agg_to_wx_image,
-                           "Convert the region of the agg buffer bounded by 
bbox to a wx.Image."
-                           "  If bbox\nis None, the entire buffer is 
converted.\n\nNote: agg must"
-                           " be a backend_agg.RendererAgg instance.");
-
-        add_varargs_method("convert_agg_to_wx_bitmap",
-                           &_wxagg_module::convert_agg_to_wx_bitmap,
-                           "Convert the region of the agg buffer bounded by 
bbox to a wx.Bitmap."
-                           "  If bbox\nis None, the entire buffer is 
converted.\n\nNote: agg must"
-                           " be a backend_agg.RendererAgg instance.");
-
-        initialize("The _wxagg module");
-    }
-
-    virtual ~_wxagg_module() {}
-
-private:
-
-    Py::Object convert_agg_to_wx_image(const Py::Tuple &args)
-    {
-        args.verify_length(2);
-
-        RendererAgg* aggRenderer = static_cast<RendererAgg*>(
-                                       args[0].getAttr("_renderer").ptr());
-
-        Py::Object clipbox = args[1];
-
-        // convert the buffer
-        wxImage *image = convert_agg2image(aggRenderer, clipbox);
-
-        // wrap a wx.Image around the result and return it
-        PyObject *pyWxImage = wxPyConstructObject(image, _T("wxImage"), 1);
-        if (pyWxImage == NULL)
-        {
-            throw Py::MemoryError(
-                "_wxagg.convert_agg_to_wx_image(): could not create the 
wx.Image");
-        }
-
-        return Py::asObject(pyWxImage);
-    }
-
-
-    Py::Object convert_agg_to_wx_bitmap(const Py::Tuple &args)
-    {
-        args.verify_length(2);
-
-        RendererAgg* aggRenderer = static_cast<RendererAgg*>(
-            args[0].getAttr("_renderer").ptr());
-
-        Py::Object clipbox = args[1];
-
-        // convert the buffer
-        wxBitmap *bitmap = convert_agg2bitmap(aggRenderer, clipbox);
-
-        // wrap a wx.Bitmap around the result and return it
-        PyObject *pyWxBitmap = wxPyConstructObject(bitmap, _T("wxBitmap"), 1);
-        if (pyWxBitmap == NULL)
-        {
-            throw Py::MemoryError(
-                "_wxagg.convert_agg_to_wx_bitmap(): could not create the 
wx.Bitmap");
-        }
-
-        return Py::asObject(pyWxBitmap);
-    }
-};
-
-
-//
-// Implementation Functions
-//
-
-static wxImage *convert_agg2image(RendererAgg *aggRenderer, Py::Object clipbox)
-{
-    int srcWidth  = 1;
-    int srcHeight = 1;
-    int srcStride = 1;
-
-    bool deleteSrcBuffer = false;
-    agg::int8u *srcBuffer = NULL;
-
-    double l, b, r, t;
-
-    if (!py_convert_bbox(clipbox.ptr(), l, b, r, t))
-    {
-        // Convert everything: rgba => rgb -> image
-        srcBuffer = aggRenderer->pixBuffer;
-        srcWidth  = (int) aggRenderer->get_width();
-        srcHeight = (int) aggRenderer->get_height();
-        srcStride = (int) aggRenderer->get_width() * 4;
-    }
-    else
-    {
-        // Convert a region: rgba => clipped rgba => rgb -> image
-        srcWidth = (int)(r - l);
-        srcHeight = (int)(t - b);
-        srcStride = srcWidth * 4;
-
-        deleteSrcBuffer = true;
-        srcBuffer = new agg::int8u[srcStride*srcHeight];
-        if (srcBuffer == NULL)
-        {
-            throw Py::MemoryError(
-                "_wxagg::convert_agg2image(): could not allocate `srcBuffer'");
-        }
-
-        int h = (int) aggRenderer->get_height();
-        agg::rect_base<int> region(
-            (int) l,      // x1
-            h - (int) t,  // y1
-            (int) r,      // x2
-            h - (int) b); // y2
-
-        agg::rendering_buffer rbuf;
-        rbuf.attach(srcBuffer, srcWidth, srcHeight, srcStride);
-        pixfmt pf(rbuf);
-        renderer_base rndr(pf);
-        rndr.copy_from(aggRenderer->renderingBuffer, &region,
-                       (int) - l, (int)(t - h));
-    }
-
-    // allocate the RGB data array
-
-    // use malloc(3) because wxImage will use free(3)
-    agg::int8u *destBuffer = (agg::int8u *) malloc(
-                                 sizeof(agg::int8u) * srcWidth * 3 * 
srcHeight);
-
-    if (destBuffer == NULL)
-    {
-        if (deleteSrcBuffer)
-        {
-            delete [] srcBuffer;
-        }
-
-        throw Py::MemoryError(
-            "_wxagg::convert_agg2image(): could not allocate `destBuffer'");
-    }
-
-    // convert from RGBA to RGB
-    agg::rendering_buffer rbSource;
-    rbSource.attach(srcBuffer, srcWidth, srcHeight, srcStride);
-
-    agg::rendering_buffer rbDest;
-    rbDest.attach(destBuffer, srcWidth, srcHeight, srcWidth*3);
-
-    agg::color_conv(&rbDest, &rbSource, agg::color_conv_rgba32_to_rgb24());
-
-    // Create a wxImage using the RGB data
-    wxImage *image = new wxImage(srcWidth, srcHeight, destBuffer);
-    if (image == NULL)
-    {
-        if (deleteSrcBuffer)
-        {
-            delete [] srcBuffer;
-        }
-
-        free(destBuffer);
-        throw Py::MemoryError(
-            "_wxagg::convert_agg2image(): could not allocate `image'");
-    }
-
-    if (deleteSrcBuffer)
-    {
-        delete [] srcBuffer;
-    }
-
-    return image;
-}
-
-
-static wxBitmap *convert_agg2bitmap(RendererAgg *aggRenderer, Py::Object 
clipbox)
-{
-    // Convert everything: rgba => rgb -> image => bitmap
-    // Convert a region:   rgba => clipped rgba => rgb -> image => bitmap
-    wxImage *image = convert_agg2image(aggRenderer, clipbox);
-    wxBitmap *bitmap = new wxBitmap(*image);
-
-    image->Destroy();
-    delete image;
-
-    if (bitmap == NULL)
-    {
-        throw Py::MemoryError(
-            "_wxagg::convert_agg2bitmap(): could not allocate `bitmap'");
-    }
-
-    return bitmap;
-}
-
-
-//
-// Module Initialization
-//
-
-extern "C"
-    DL_EXPORT(void)
-    init_wxagg(void)
-{
-    wxPyCoreAPI_IMPORT();
-    //suppress an unused variable warning by creating _wxagg_module in two 
lines
-    static _wxagg_module* _wxagg = NULL;
-    _wxagg = new _wxagg_module;
-};


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to