summaryrefslogtreecommitdiffstats
path: root/src/openvg/qvg_symbian.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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