MapLink Pro .
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
TSLSkiaSurface Class Reference
Inheritance diagram for TSLSkiaSurface:

Detailed Description

Implementation of the abstract TSLDrawingSurface class that uses the skia drawing library for rendering. This surface is designed for off-screen rendering to a pixel buffer, and does not support native platform drawing contexts (HDC, Display*, etc...).

Public Member Functions

 TSLSkiaSurface ()
 TSLSkiaSurface (void **pixelBuffer, int width, int height, size_t rowBytes=0)
virtual ~TSLSkiaSurface ()
virtual TSLDrawingSurfaceclone (bool copyUserData=false)
TSLStyleID colourValue (int index)
bool attach (void **pixelBuffer, int width, int height, size_t rowBytes=0)
const void * getPixels () const
size_t getRowBytes () const
int getWidth () const
int getHeight () const
void * operator new (size_t size) TSL_NO_THROW
void * operator new (size_t size, const std::nothrow_t &) TSL_NO_THROW
void operator delete (void *self)
void operator delete (void *self, const std::nothrow_t &)
Public Member Functions inherited from TSLDrawingSurface
bool clearAllRendering ()
bool clearDynamicColours ()
TSLRasterBuffercreateRasterBuffer (unsigned int width, unsigned int height, TSLRasterBuffer::Format format, TSLRasterBuffer::FilterMode filterMode=TSLRasterBuffer::Linear)
bool declutterIsVisible (const char *feature_name, double resolution=0.0, const char *layer_name=0) const
void deleteSvgBufferData (char *buffer) const
bool drawDU (TSLDeviceUnits x1, TSLDeviceUnits y1, TSLDeviceUnits x2, TSLDeviceUnits y2, bool clear, bool updateExtentOnly=false)
bool drawUU (double x1, double y1, double x2, double y2, bool clear, bool updateExtentOnly=false)
bool DUToLatLong (TSLDeviceUnits x, TSLDeviceUnits y, double *latitude, double *longitude, bool local=false, bool boundCheck=true) const
bool DUToMU (TSLDeviceUnits x1, TSLDeviceUnits y1, double *x2, double *y2) const
bool DUToTMC (TSLDeviceUnits x1, TSLDeviceUnits y1, TSLTMC *x2, TSLTMC *y2) const
bool DUToUU (TSLDeviceUnits x1, TSLDeviceUnits y1, double *x2, double *y2) const
TSLEntityfindEntityDU (TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth, const char *feature_name=NULL)
TSLEntityfindEntityUU (double x, double y, double aperture, int depth, const char *feature_name=NULL)
TSLEntityfindSelectedEntityDU (TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth=-1, bool ignoreMapDataLayers=false)
TSLEntityfindSelectedEntityUU (double x, double y, double aperture, int depth=-1, bool ignoreMapDataLayers=false)
bool getColourIndices (int **indices, int *num)
TSLDataLayergetCoordinateProvidingLayer ()
const TSLDataLayergetCoordinateProvidingLayer () const
bool getDeclutterRange (const char *featureName, double *innerLimit, double *outerLimit, const char *dataLayerName=0, const char *detailLayerName=0)
bool getDeviceCapabilities (int &horizontalSizeMM, int &verticalSizeMM, int &horizontalSizePixels, int &verticalSizePixels) const
bool getDeviceCapabilities (TSLDeviceCapabilities &capabilities) const
void getDUExtent (TSLDeviceUnits *x1, TSLDeviceUnits *y1, TSLDeviceUnits *x2, TSLDeviceUnits *y2) const
bool getFillStyleIndices (int **indices, int *num)
bool getFontStyleIndices (int **indices, int *num)
bool getLineStyleIndices (int **indices, int *num)
void getMUExtent (double *x1, double *y1, double *x2, double *y2) const
bool getSymbolStyleIndices (int **indices, int *num)
TSLDrawingSurfaceTiledBufferControlgetTiledBufferController ()
void getTMCExtent (TSLEnvelope &extent) const
void getUUExtent (double *x1, double *y1, double *x2, double *y2) const
bool getViewedLatLongRange (double *latitude, double *longitude, double *range, bool local=false, bool boundCheck=true) const
bool latLongToDU (double latitude, double longitude, TSLDeviceUnits *x, TSLDeviceUnits *y, bool local=false) const
bool latLongToMU (double latitude, double longitude, double *x, double *y, bool local=false) const
bool latLongToTMC (double latitude, double longitude, TSLTMC *x, TSLTMC *y, bool local=false) const
bool latLongToUU (double latitude, double longitude, double *x, double *y, bool local=false) const
bool MUToDU (double x1, double y1, TSLDeviceUnits *x2, TSLDeviceUnits *y2) const
bool MUToLatLong (double x, double y, double *latitude, double *longitude, bool local=false, bool boundCheck=true) const
bool MUToTMC (double x1, double y1, TSLTMC *x2, TSLTMC *y2) const
bool MUToUU (double x1, double y1, double *x2, double *y2) const
bool pan (double x1, double y1, bool auto_redraw=true)
bool pan (double x1, double y1, TSLDeviceUnits xDU, TSLDeviceUnits yDU, bool auto_redraw=true)
TSLMapQueryquery (const char *layerName, TSLTMC x1, TSLTMC y1, TSLTMC x2, TSLTMC y2, int depth=-1, const char *feature_name=NULL) const
TSLMapQueryquery (const char *layerName, TSLTMC x1, TSLTMC y1, TSLTMC x2, TSLTMC y2, TSLSelector *selector) const
bool redraw ()
bool reset (bool auto_redraw=true)
bool resize (double x1, double y1, double x2, double y2, bool auto_redraw=true, bool keep_aspect=false)
bool rotate (double angle)
double rotation () const
bool saveToSvg (const char *filePath, double svgPixelPerDU, TSLTMC bottomLeftX=TSL_LONG_MAX, TSLTMC bottomLeftY=TSL_LONG_MAX)
char * saveToSvgBuffer (double svgPixelPerDU, TSLTMC bottomLeftX=TSL_LONG_MAX, TSLTMC bottomLeftY=TSL_LONG_MAX)
bool setDeclutterRange (const char *featureName, double innerLimit, double outerLimit, const char *dataLayerName=0, const char *detailLayerName=0)
bool setDeviceCapabilities (const int horizontalSizeMM=0, const int verticalSizeMM=0, const int horizontalSizePixels=0, const int verticalSizePixels=0)
bool setDeviceCapabilities (const TSLDeviceCapabilities &capabilities)
void setRedrawCallback (TSLDrawingSurfaceDrawCallback *callback)
bool setupDynamicColours (const char *filename)
bool setViewedLatLongRange (double latitude, double longitude, double range, bool local=false, bool auto_redraw=true, bool keep_aspect=false)
void TMCperDU (double &xr, double &yr)
double TMCperUU ()
bool TMCToDU (TSLTMC x1, TSLTMC y1, TSLDeviceUnits *x2, TSLDeviceUnits *y2) const
bool TMCToLatLong (TSLTMC x, TSLTMC y, double *latitude, double *longitude, bool local=false, bool boundCheck=true) const
bool TMCToMU (TSLTMC x1, TSLTMC y1, double *x2, double *y2) const
bool TMCToUU (TSLTMC x1, TSLTMC y1, double *x2, double *y2) const
bool updateEntityExtent (TSLEntity *entity, const char *layerName)
void userUnitOrigin (double x_origin, double y_origin)
void userUnitOrigin (TSLUUEnum origin_enum)
void userUnits (double factor)
double userUnits ()
bool UUToDU (double x1, double y1, TSLDeviceUnits *x2, TSLDeviceUnits *y2) const
bool UUToLatLong (double x, double y, double *latitude, double *longitude, bool local=false, bool boundCheck=true) const
bool UUToMU (double x1, double y1, double *x2, double *y2) const
bool UUToTMC (double x1, double y1, TSLTMC *x2, TSLTMC *y2) const
void wrapAroundMode (WrapAroundMode mode)
WrapAroundMode wrapAroundMode () const
bool wndResize (TSLDeviceUnits x1, TSLDeviceUnits y1, TSLDeviceUnits x2, TSLDeviceUnits y2, bool auto_redraw=true, TSLResizeActionEnum action=TSLResizeActionNone)
bool zoom (double percent, bool zoom_in, bool auto_redraw=true)
 TSLDrawingSurface ()
virtual ~TSLDrawingSurface ()
void clearSymbolList ()
void clearFontList ()
void clearLineList ()
void clearFillList ()
bool removeFillStyle (TSLStyleID style)
bool removeLineStyle (TSLStyleID style)
bool removeSymbolStyle (TSLStyleID style)
bool removeFontStyle (TSLStyleID style)
TSLStyleID createFontID (const TSLSimpleString &name, TSLFontType meaningOfName, int fontWeight, bool italic=false, bool underline=false, bool antiAliased=false, const unsigned char *memoryBlock=NULL, TSLSize memoryBlockSize=0)
TSLStyleID createStandardLineID (const unsigned char *pattern, TSLSize patternLength, int initialOffset, TSLLineScalingType scaleType)
TSLStyleID createSymbolLineID (int symbolID, double size=0.0, TSLDimensionUnits sizeUnits=TSLDimensionUnitsUndefined, float rotation=0.0f, double anchorPointX=0.0, double anchorPointY=0.0, TSLDimensionUnits anchorPointUnits=TSLDimensionUnitsUndefined)
TSLStyleID createStandardFillID (const unsigned char *pattern=NULL, TSLSize patternSizeInBytes=0, int patternXSize=0, int patternYSize=0)
TSLStyleID createSymbolFillID (int symbolID, double size=0.0, TSLDimensionUnits sizeUnits=TSLDimensionUnitsUndefined, float rotation=0.0f, double anchorPointX=0.0, double anchorPointY=0.0, TSLDimensionUnits anchorPointUnits=TSLDimensionUnitsUndefined)
TSLStyleID createSVGSymbolID (const TSLSimpleString &name, const unsigned char *memoryBlock=NULL, TSLSize memoryBlockSize=0)
TSLStyleID createFontSymbolID (const TSLSimpleString &name, TSLFontType meaningOfName, const unsigned char *memoryBlock=NULL, TSLSize memoryBlockSize=0)
TSLStyleID createRasterSymbolID (const TSLSimpleString &name, int xorigin, int yorigin, bool scaleable, const unsigned char *memoryBlock=NULL, TSLSize memoryBlockSize=0)
TSLStyleID createSymbolIDFromSymbol (TSLStyleID symbolID, int numberofColourPairs, const int *colourFrom, const int *colourTo)
Public Member Functions inherited from TSLDrawingSurfaceBase
bool addDataLayer (TSLDataLayer *data_layer_interface, const char *data_id)
bool addDynamicRenderer (TSLDynamicRenderer *renderer, TSLFeatureID featureID=-1, const char *layerName=0)
bool addFeatureRendering (const char *featureName, TSLFeatureID featureID)
void attach (TSLDeviceContext handle)
void attach (TSLWindowHandle handle)
void attach (TSLDrawableHandle handle)
bool attach (void *pixelBuffer, int width, int height, size_t rowBytes=0)
bool bringInFrontof (const char *move_data_layer, const char *target_data_layer)
bool bringToFront (const char *move_data_layer)
bool clearAllDeclutterData (const char *layer_name=0)
void clearAllDynamicRenderers ()
bool clearBackgroundColour ()
bool clearDeclutterData (const char *feature_name, const char *layer_name=0)
bool clearDynamicRenderer (TSLFeatureID featureID=-1, const char *layerName=0)
bool clearFeatureRendering (const char *featureName, TSLFeatureID featureID)
bool clearFrame ()
bool copyDeclutterData (const char *src_feature_name, const char *dest_feature_name, const char *src_layer_name=0, const char *dest_layer_name=0)
void detach ()
void detachAllDynamicRenderers ()
bool detachDynamicRenderer (TSLFeatureID featureID=-1, const char *layerName=0)
const char * featureClass (TSLFeatureID feature_id)
bool forceLayer (const char *data_id, const char *detail_layer_name)
bool getBackgroundColour (TSLStyleID *value)
bool getColourValue (int colour, unsigned char &r, unsigned char &g, unsigned char &b)
TSLDataLayergetDataLayer (const char *data_id)
bool getDataLayerInfo (int N, TSLDataLayer **dataLayer, const char **layerName) const
bool getDataLayerProps (const char *data_id, TSLPropertyEnum property_id, TSLPropertyValue *old_value)
bool getDeclutterStatus (const char *feature_name, TSLDeclutterStatusResultEnum *value, const char *dataLayerName=0, const char *detailLayerName=0)
bool getDeclutterStatus (TSLFeatureID feature_id, TSLDeclutterStatusResultEnum *value, const char *dataLayerName, const char *detailLayerName=0)
TSLDynamicRenderergetDynamicRenderer (TSLFeatureID featureID=-1, const char *layerName=0)
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeInt attribute, int *result) const
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeDouble attribute, double *result) const
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeBool attribute, bool *result) const
bool getFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributes *result) const
int getNumDataLayers () const
bool getOption (TSLOptionEnum option)
void id (int id_)
int id () const
bool idleProcess ()
bool loadDeclutter (const char *filename)
bool loadRendering (const char *filename)
TSLPickResultSetpick (TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth, TSLPickSelector *selector=0)
TSLPickResultSetpick (const char *data_id, TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth=-1, TSLPickSelector *selector=0)
bool queryActiveLayer (const char *data_id, char *detail_layer_name, int detail_layer_name_size)
bool removeDataLayer (const char *data_id)
bool saveDeclutter (const char *filename, TSLMapLinkVersion ver=TSL_CURRENT_MAPLINK_VERSION)
bool saveRendering (const char *filename, TSLMapLinkVersion ver=TSL_CURRENT_MAPLINK_VERSION)
bool sendToBack (const char *move_data_layer)
bool sendToBackOf (const char *move_data_layer, const char *target_data_layer)
bool setBackgroundColour (int value)
bool setCoordinateProvidingLayer (const char *layer_name)
bool setDataLayerProps (const char *data_id, TSLPropertyEnum property_id, TSLPropertyValue new_value)
bool setDeclutterStatus (const char *feature_name, TSLDeclutterStatusEnum value, const char *dataLayerName=0, const char *detailLayerName=0)
bool setDeclutterStatus (TSLFeatureID feature_id, TSLDeclutterStatusEnum value, const char *dataLayerName=0, const char *detailLayerName=0)
bool setDeclutterStatusOnAllFeatures (TSLDeclutterStatusEnum value, const char *dataLayerName=0, const char *detailLayerName=0)
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeInt attribute, int value)
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeDouble attribute, double value)
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributeBool attribute, bool value)
bool setFeatureRendering (const char *featureName, TSLFeatureID featureID, TSLRenderingAttributes *value)
bool setFrame (int style, int colour, int thickness)
virtual void setOption (TSLOptionEnum option, bool value)
double TMCperMU ()
TSLDrawingSurfaceTypeEnum type () const
void userWord (void *ptr) const
void * userWord () const
bool cloneDynamicRenderersFrom (const TSLDrawingSurfaceBase *otherSurface)
void addDuplicateLayers (bool value)
virtual ~TSLDrawingSurfaceBase ()

Additional Inherited Members

Public Types inherited from TSLDrawingSurface
enum  WrapAroundMode { WrapAroundDisabled , WrapAroundLongitudinal , WrapAroundDefault = WrapAroundDisabled }
Static Public Member Functions inherited from TSLDrawingSurface
static void cleanup ()
static bool copy (TSLDrawingSurface *copyTo, TSLDrawingSurface *copyFrom, bool copyUserData=false)
static TSLStyleID getIDOfNearestColour (int r, int g, int b)
static bool loadStandardConfig (const char *path=0, bool delayLoadIncludes=false)
static bool setupColours (const char *filename)
static bool setupFillStyles (const char *filename, bool delayLoadIncludes=false)
static bool setupFonts (const char *filename, bool delayLoadIncludes=false)
static bool setupLineStyles (const char *filename, bool delayLoadIncludes=false)
static bool setupSymbols (const char *filename, bool delayLoadIncludes=false)
static bool setupSaveToSvg (const char *iniFilename)
static void disableAntiAliasFonts ()
static void enableAntiAliasFonts ()
Static Public Member Functions inherited from TSLDrawingSurfaceBase
static bool addLoader (TSLFileLoader *loader)
static bool addPathList (TSLPathList *path_list)
static bool findFile (const char *filename, TSLSimpleString &foundPath)
static TSLFileLoadergetLoader ()
Protected Member Functions inherited from TSLDrawingSurfaceBase
 TSLDrawingSurfaceBase ()
Protected Attributes inherited from TSLDrawingSurfaceBase
void * m_classID

Constructor & Destructor Documentation

◆ TSLSkiaSurface() [1/2]

TSLSkiaSurface::TSLSkiaSurface ( )

Construct an unattached Windows specific TSLDrawingSurface.

◆ TSLSkiaSurface() [2/2]

TSLSkiaSurface::TSLSkiaSurface ( void ** pixelBuffer,
int width,
int height,
size_t rowBytes = 0 )

Construct an attached Windows specific TSLDrawingSurface.

◆ ~TSLSkiaSurface()

virtual TSLSkiaSurface::~TSLSkiaSurface ( )
virtual

Destructor.

Member Function Documentation

◆ attach()

bool TSLSkiaSurface::attach ( void ** pixelBuffer,
int width,
int height,
size_t rowBytes = 0 )

Attach to a user-provided pixel buffer for platform-independent rendering. The surface will render directly into this memory. After calling drawDU(), the buffer will contain the rendered BGRA 32-bit premultiplied pixels (top-down).

Parameters
pixelBufferPointer to caller-owned pixel memory (must be at least width * height * 4 bytes)
widthWidth in pixels
heightHeight in pixels
rowBytesBytes per row (0 = default = width * 4)
Returns
true on success

◆ clone()

virtual TSLDrawingSurface * TSLSkiaSurface::clone ( bool copyUserData = false)
virtual

This method clones the drawing surface and creates another drawing surface which reference the same data layers, data layer properties, options and coordinate system configuration.

Parameters
copyUserDataIf true, the userID and userWord will be copied to the new surface.
Returns
new cloned drawing surface, NULL on error.

Implements TSLDrawingSurface.

◆ colourValue()

TSLStyleID TSLSkiaSurface::colourValue ( int index)

Query colour value used by TSLDrawingSurface.

This method retrieves the colour definition used by the drawing surface for a given index. On Windows NT, the returned value contains the red, green and blue values of the colour used when creating the pen or brushes.

Parameters
indexIndex of the colour to retrieve.
Returns
colour value, or 0 on error.

◆ getHeight()

int TSLSkiaSurface::getHeight ( ) const

Get the height of the attached pixel buffer.

Returns
Height in pixels, or 0 if not attached

◆ getPixels()

const void * TSLSkiaSurface::getPixels ( ) const

Get pointer to the rendered pixel data (valid after drawDU()). Format is BGRA 32-bit premultiplied, top-down scanline order. The pointer is valid until the surface is destroyed or re-attached.

Returns
Pointer to pixel data, or NULL if not attached

◆ getRowBytes()

size_t TSLSkiaSurface::getRowBytes ( ) const

Get the row stride in bytes of the pixel buffer.

Returns
Row bytes, or 0 if not attached

◆ getWidth()

int TSLSkiaSurface::getWidth ( ) const

Get the width of the attached pixel buffer.

Returns
Width in pixels, or 0 if not attached

◆ operator delete() [1/2]

void TSLSkiaSurface::operator delete ( void * self)

◆ operator delete() [2/2]

void TSLSkiaSurface::operator delete ( void * self,
const std::nothrow_t &  )

◆ operator new() [1/2]

void * TSLSkiaSurface::operator new ( size_t size)

◆ operator new() [2/2]

void * TSLSkiaSurface::operator new ( size_t size,
const std::nothrow_t &  )