#include <gr_CairoImage.h>
Public Member Functions | |
GR_RSVGVectorImage (const char *name) | |
virtual | ~GR_RSVGVectorImage () |
virtual bool | convertToBuffer (UT_ConstByteBufPtr &ppBB) const |
virtual bool | convertFromBuffer (const UT_ConstByteBufPtr &pBB, const std::string &mimetype, UT_sint32 iDisplayWidth, UT_sint32 iDisplayHeight) |
virtual void | cairoSetSource (cairo_t *cr) |
virtual void | scaleImageTo (GR_Graphics *pG, const UT_Rect &rec) |
virtual bool | hasAlpha (void) const |
virtual bool | isTransparentAt (UT_sint32 x, UT_sint32 y) |
virtual GR_Image * | createImageSegment (GR_Graphics *pG, const UT_Rect &rec) |
Private Member Functions | |
void | reset () |
void | setupScale (UT_sint32 w, UT_sint32 h) |
void | createSurface (cairo_t *cairo) |
void | createImageSurface () |
void | renderToSurface (cairo_surface_t *surf) |
void | renderToCairo (cairo_t *cr) |
Private Attributes | |
UT_ByteBufPtr | m_data |
RsvgDimensionData | m_size |
cairo_t * | m_graphics |
cairo_surface_t * | m_surface |
cairo_surface_t * | m_image_surface |
RsvgHandle * | m_svg |
double | m_scaleX |
double | m_scaleY |
bool | m_needsNewSurface |
GR_UnixImage * | m_rasterImage |
GR_RSVGVectorImage::GR_RSVGVectorImage | ( | const char * | name | ) |
References GR_Image::setName().
GR_RSVGVectorImage::~GR_RSVGVectorImage | ( | ) | [virtual] |
References reset().
void GR_RSVGVectorImage::cairoSetSource | ( | cairo_t * | cr | ) | [virtual] |
Implements GR_CairoVectorImage.
References createSurface(), and m_surface.
bool GR_RSVGVectorImage::convertFromBuffer | ( | const UT_ConstByteBufPtr & | pBB, | |
const std::string & | mimetype, | |||
UT_sint32 | iDisplayWidth, | |||
UT_sint32 | iDisplayHeight | |||
) | [virtual] |
Reimplemented from GR_VectorImage.
References m_data, m_size, m_svg, reset(), and setupScale().
bool GR_RSVGVectorImage::convertToBuffer | ( | UT_ConstByteBufPtr & | ppBB | ) | const [virtual] |
Reimplemented from GR_VectorImage.
References m_data.
GR_Image * GR_RSVGVectorImage::createImageSegment | ( | GR_Graphics * | pG, | |
const UT_Rect & | rec | |||
) | [virtual] |
Reimplemented from GR_VectorImage.
References GR_CairoRasterImage::createImageSegment(), createImageSurface(), m_needsNewSurface, and m_rasterImage.
void GR_RSVGVectorImage::createImageSurface | ( | ) | [private] |
References GR_Image::getDisplayHeight(), GR_Image::getDisplayWidth(), m_image_surface, m_needsNewSurface, and renderToSurface().
Referenced by createImageSegment(), createSurface(), and isTransparentAt().
void GR_RSVGVectorImage::createSurface | ( | cairo_t * | cairo | ) | [private] |
References createImageSurface(), GR_Image::getDisplayHeight(), GR_Image::getDisplayWidth(), m_graphics, m_needsNewSurface, m_surface, and renderToSurface().
Referenced by cairoSetSource().
bool GR_RSVGVectorImage::hasAlpha | ( | void | ) | const [virtual] |
Reimplemented from GR_VectorImage.
Referenced by isTransparentAt().
Reimplemented from GR_VectorImage.
References createImageSurface(), hasAlpha(), m_image_surface, UT_ASSERT, and UT_return_val_if_fail.
void GR_RSVGVectorImage::renderToCairo | ( | cairo_t * | cr | ) | [private, virtual] |
Implements GR_CairoVectorImage.
void GR_RSVGVectorImage::renderToSurface | ( | cairo_surface_t * | surf | ) | [private] |
References UT_String::c_str(), DELETEP, GR_Image::getDisplayHeight(), GR_Image::getDisplayWidth(), GR_Image::getName(), GR_UnixImage::GR_UnixImage(), m_rasterImage, m_scaleX, m_scaleY, m_svg, and GR_UnixImage::scale().
Referenced by createImageSurface(), and createSurface().
void GR_RSVGVectorImage::reset | ( | void | ) | [private] |
References DELETEP, m_data, m_graphics, m_image_surface, m_needsNewSurface, m_rasterImage, m_scaleX, m_scaleY, m_size, m_surface, and m_svg.
Referenced by convertFromBuffer(), and ~GR_RSVGVectorImage().
void GR_RSVGVectorImage::scaleImageTo | ( | GR_Graphics * | pG, | |
const UT_Rect & | rec | |||
) | [virtual] |
Reimplemented from GR_Image.
References UT_Rect::height, setupScale(), GR_Graphics::tdu(), and UT_Rect::width.
References m_needsNewSurface, m_scaleX, m_scaleY, m_size, and GR_Image::setDisplaySize().
Referenced by convertFromBuffer(), and scaleImageTo().
UT_ByteBufPtr GR_RSVGVectorImage::m_data [private] |
Referenced by convertFromBuffer(), convertToBuffer(), and reset().
cairo_t* GR_RSVGVectorImage::m_graphics [private] |
Referenced by createSurface(), and reset().
cairo_surface_t* GR_RSVGVectorImage::m_image_surface [private] |
Referenced by createImageSurface(), isTransparentAt(), and reset().
bool GR_RSVGVectorImage::m_needsNewSurface [private] |
Referenced by createImageSegment(), createImageSurface(), createSurface(), reset(), and setupScale().
GR_UnixImage* GR_RSVGVectorImage::m_rasterImage [private] |
Referenced by createImageSegment(), renderToSurface(), and reset().
double GR_RSVGVectorImage::m_scaleX [private] |
Referenced by renderToCairo(), renderToSurface(), reset(), and setupScale().
double GR_RSVGVectorImage::m_scaleY [private] |
Referenced by renderToCairo(), renderToSurface(), reset(), and setupScale().
RsvgDimensionData GR_RSVGVectorImage::m_size [private] |
Referenced by convertFromBuffer(), reset(), and setupScale().
cairo_surface_t* GR_RSVGVectorImage::m_surface [private] |
Referenced by cairoSetSource(), createSurface(), and reset().
RsvgHandle* GR_RSVGVectorImage::m_svg [private] |
Referenced by convertFromBuffer(), renderToCairo(), renderToSurface(), and reset().