Darren Dale wrote: > I discovered another blitting bug in backend_qt4agg.py. Qt expects a pixmap > stringBuffer formatted in ARGB, but mpl formats in RGBA. The qt4 backend > usually uses the _renderer.tostring_bgra method to return a properly > formatted buffer: > > if QtCore.QSysInfo.ByteOrder == QtCore.QSysInfo.LittleEndian: > stringBuffer = self.renderer._renderer.tostring_bgra() > else: > stringBuffer = self.renderer._renderer.tostring_argb() > > The problem I am seeing is when we are blitting, and the tostring_bgra is not > available. > The blitting code in backend_qt4agg.py, starting around line 112, > gets a buffer from a region copied from a bbox: > > reg = self.copy_from_bbox(bbox) > stringBuffer = reg.to_string() > qImage = QtGui.QImage(stringBuffer, w, h, QtGui.QImage.Format_ARGB32) > > reg does not have a method to swap the byte order, and Qt does not have a > Format_RGBA32. Could anyone suggest how to swap the byte order? > There might be some numpy "trick" to massage the data. However, it looks to me like BufferRegion (in _backend_agg.cpp) needs to grow a byte-swapped version of to_string()... but maybe someone with more experience with the Qt backend has a better idea whether this used to work and why it may have stopped working.
Cheers, Mike > Thanks, > Darren > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Matplotlib-devel mailing list > Matplotlib-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel