summaryrefslogtreecommitdiffstats
path: root/src/openvg/qvg_symbian.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert function renaming in QtOpenVG.Jani Hautakangas2010-10-291-1/+1
| | | | | | | Functions were accidentally thought to be in private scope. Renaming broke BC. Reviewed-by: Jason Barron
* Fallback to vgWritePixels in drawPixmap.Jani Hautakangas2010-10-281-2/+1
| | | | | | | | | | Use vgWritePixels, if possible, in case where VGImage for QPixmap can't be allocated due to low GPU memory situation. This patch also renames some VG paint engine internal functions to clarify their purpose. Task-number: QT-3589 Reviewed-by: Jason Barron
* Fix for CFbsBitmap to QPixmap conversion.Jani Hautakangas2010-10-121-1/+2
| | | | | | | | | | Symbian bitmap formats may have different scanline length when compared to QImage formats. We need to define scanline length for intermediate QImage when converting from CFbsBitmap to QPixmap. Task-number: QTBUG-14218 Reviewed-by: Jason Barron
* Fix memory leak in QPixmap::toSymbianRSgImage() when an error occurs.Jason Barron2010-10-081-4/+5
| | | | | | | | | | | | | In the cases where an error occured while converting a QPixmap to a VGImage this function would return without deleting the RSgImage pointer that it created. Fix is to use a QScopedPointer instead. Also don't use q_check_ptr() since this isn't a CBase derived class. In case you are wondering why I didn't use a custom deleter here so that Close() was also called, we need to make sure that Close() is called on the RSgImage instance before calling Close() on the driver. Reviewed-by: mread
* Remove redundant code in SgImage -> VGImage conversion on Symbian.Jason Barron2010-09-141-29/+2
| | | | | | | | | | | Calling the various Khronos getError() functions here is inefficient since it involves a round trip to the GPU and gains nothing since the null handle can be used to test for error conditions at no cost. Also no need to open the RSgDriver because we don't actually need to call any functions on RSgImage, just convert it. Reviewed-by: Alessandro Portale Reviewed-by: Jani Hautakangas
* Minor modifications and optimizations to the Symbian HW glyph cache.Jason Barron2010-07-121-49/+60
| | | | | | | | | | | | After the latest round of API reviews, the Symbian glyph cache has now been moved from GDI to FBS and this required some changes in Qt's implementation. Also incorporate an optimization where we first iterate over the glyph vector to eliminate glyphs that are already cached in Qt's glyph cache. This way we only open the glyph iterator on glyphs that we need. Reviewed-by: Alessandro Portale
* Convert to new EGL API.Jason Barron2010-07-121-45/+40
| | | | | | | Recent changes in Qt's EGL layer required some changes in the code used to convert RSgImage to/from VGImage. Reviewed-by: Gunnar Sletta
* Don't invert glyphs for the default VG font cache on Symbian.Jason Barron2010-07-121-0/+2
| | | | | | | If the hardware glyph cache API is not represent and in use, then the glyphs will not be inverted. Reviewed-by: TrustMe
* Ensure glyphs are upright instead of upside-down.Jason Barron2010-07-121-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | The OpenVG paint engine traditionally takes glyph images from the alphaMapForGlyph() function which returns the glyph image in the upright projection. When it constructs a VGImage from this image, it passes a positive data stride which will read the top scanline of the source image into the bottom scanline of the VGImage due to the VG coordinate system. It then uses the path transform where the 'sy' value of the matrix is set to -1 and this re-inverts everything when drawing. With the Symbian based glyph cache, the VGImage is constructed from a RSgImage which is a hardware resource and compensates for the coordinate system used by VG and GL at the time it is created. In the case of the hardware glyph cache, the glyph image is read into the RSgImage using a negative data stride so it does not need to be inverted when drawn. To allow for this, introduce a flag which indicates that the 'sy' entry of the matrix should be flipped such that the glyph is drawn normally. Also in this patch is a change to the glyph origin which now uses the bottom of the glyph metric bounding rect instead of the top due to orientation of the glyph inside the VGImage. Reviewed-by: Alessandro Portale
* Enable cross-process glyph cache for OpenVG graphics system on Symbian.Jason Barron2010-07-121-20/+55
| | | | | | | | | | | This introduces a specialized OpenVG font cache for the Symbian platform. By using RGlyphDataIterator we can create a VGImage to store inside a VGFont without having to upload our own glyph image. This works by utilizing RSgImage which can be used to share handles to graphics memory across processes thus allowing glyph images to be shared by multiple processes and reducing graphics memory usage. Reviewed-by: Alessandro Portale
* Factor out RSgImage -> VGImage conversion to separate function.Jason Barron2010-07-121-73/+75
| | | | | | | | | | This code will now be used by both the fromNativeType() function and the upcoming glyph cache implementation. We also change the #ifdef's location here slightly because even if we do not have support for RSgImage, we still want to be able to support the CFbsBitmap conversion functions for the OpenVG graphics system. Reviewed-by: Alessandro Portale
* Add new file for Symbian specific VG stuff and add Symbian glyph cache.Jason Barron2010-07-121-0/+348
Factor out the Symbian specific bits of QVGPixmapData into a separate file and introduce our subclassed implementation of the VG font cache. Also make our font cache a friend of the S60 font engine because the cache needs to access the CFont member to create the glyph image. Reviewed-by: Alessandro Portale