![]() |
MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
|
Platform interface class for the OpenGL drawing surface that uses OpenGL ES 2.0 and EGL. Users can either have this class create an OpenGL context for them or provide an existing context for the drawing surface to use.
This class should be set up as follows:
This drawing surface requires graphics hardware that is OpenGL ES 2.0 compliant.
Hardware with support for the following OpenGL extensions is recommended, but not required:
Non-native rendering is not supported with this drawing surface.
Public Member Functions | |
TSLNativeEGLSurface (EGLNativeDisplayType nativeDisplay, EGLNativeWindowType nativeWindow, EGLint configID, const TSLOpenGLSurfaceCreationParameters &creationProperties) | |
TSLNativeEGLSurface (EGLDisplay display, EGLSurface window, EGLContext context, const TSLOpenGLSurfaceCreationParameters &creationProperties) | |
virtual | ~TSLNativeEGLSurface () |
bool | attach (EGLDisplay display, EGLSurface window, EGLContext context) |
EGLContext | context () |
bool | makeContextCurrent () |
void | terminateDisplayOnDestruction (bool shouldTerminate) |
virtual TSLOpenGLSurface * | caw () |
![]() | |
TSLEGLSurface () | |
virtual | ~TSLEGLSurface () |
bool | attach () |
void | detach (bool contextLost=false) |
bool | requiresDisplayMetrics () const |
void | setContextCallbacks (TSLEGLContextCallbacks *callbacks) |
![]() | |
virtual | ~TSLOpenGLSurface () |
float | acquireDepthSlice () |
virtual TSLDrawingSurface * | clone (bool copyUserData=false) |
double | coordinateCentreX () const |
double | coordinateCentreY () const |
TSLOpenGLSurface * | createChildSurface () |
float | currentDepthSlice () const |
float | depthSliceIncrement () const |
void | flushPendingDraws () |
void | enableRealtimeReprojection (const char *name, bool enable) |
double | getSwitchRangeForFP64 () const |
bool | getLayerStorageStrategy (const char *layerName, TSLOpenGLStorageStrategyEnum &strategy) const |
bool | getLayerTransparencyHint (const char *layerName, TSLOpenGLTransparencyHintEnum &hint) const |
float | incrementDepthSlice (uint32_t numDrawItems) |
const float * | modelViewMatrix () const |
const float * | projectionMatrix () const |
bool | setAntialiasingMode (TSLOpenGLAntialiasModeEnum mode) |
bool | targetFrameBuffer (GLuint fbo) |
GLuint | targetFrameBuffer () const |
float | setDepthSlice (uint32_t numDrawItems) |
bool | setDisplayMetrics (double dpiX, double dpiY, int horizontalSizePixels, int verticalSizePixels) |
void | setSwitchRangeForFP64 (double range) |
bool | setLayerStorageStrategy (const char *layerName, TSLOpenGLStorageStrategyEnum strategy) |
bool | setLayerTransparencyHint (const char *layerName, TSLOpenGLTransparencyHintEnum hint) |
void | setRGBABackgroundColour (unsigned char r, unsigned char g, unsigned char b, unsigned char a) |
TSLOpenGLStateTracker * | stateTracker () |
void | shaderPreloadEnabled (bool enabled) |
bool | shaderPreloadEnabled () const |
bool | preloadProjectionShaders (const TSLCoordinateSystem *cs, bool loadfp64Variant) |
void | flushLoadedShaders () |
void | rasterProjectionControlPointParameters (unsigned int minPointsPerRaster, unsigned int maxPointsPerRaster, unsigned int gridSizePixels) |
void | textRoundingEnabled (bool enabled) |
bool | textRoundingEnabled () const |
void | textRoundingAmount (unsigned int px) |
unsigned int | textRoundingAmount () const |
![]() | |
bool | clearAllRendering () |
bool | clearDynamicColours () |
TSLRasterBuffer * | createRasterBuffer (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 |
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 |
TSLEntity * | findEntityDU (TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth, const char *feature_name=NULL) |
TSLEntity * | findEntityUU (double x, double y, double aperture, int depth, const char *feature_name=NULL) |
TSLEntity * | findSelectedEntityDU (TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth=-1, bool ignoreMapDataLayers=false) |
TSLEntity * | findSelectedEntityUU (double x, double y, double aperture, int depth=-1, bool ignoreMapDataLayers=false) |
bool | getColourIndices (int **indices, int *num) |
TSLDataLayer * | getCoordinateProvidingLayer () |
const TSLDataLayer * | getCoordinateProvidingLayer () 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) |
TSLDrawingSurfaceTiledBufferControl * | getTiledBufferController () |
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) |
TSLMapQuery * | query (const char *layerName, TSLTMC x1, TSLTMC y1, TSLTMC x2, TSLTMC y2, int depth=-1, const char *feature_name=NULL) const |
TSLMapQuery * | query (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 | 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 |
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) |
![]() | |
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 | 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) |
TSLDataLayer * | getDataLayer (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) |
TSLDynamicRenderer * | getDynamicRenderer (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) |
TSLPickResultSet * | pick (TSLDeviceUnits x, TSLDeviceUnits y, TSLDeviceUnits aperture, int depth, TSLPickSelector *selector=0) |
TSLPickResultSet * | pick (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 () |
Static Public Member Functions | |
static EGLint | preferredConfigID (EGLNativeDisplayType nativeDisplay, const TSLOpenGLSurfaceCreationParameters &creationProperties) |
![]() | |
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 void | disableAntiAliasFonts () |
static void | enableAntiAliasFonts () |
![]() | |
static bool | addLoader (TSLFileLoader *loader) |
static bool | addPathList (TSLPathList *path_list) |
static bool | findFile (const char *filename, TSLSimpleString &foundPath) |
static TSLFileLoader * | getLoader () |
Protected Member Functions | |
TSLNativeEGLSurface () | |
![]() | |
TSLEGLSurface (bool b) | |
![]() | |
TSLOpenGLSurface () | |
![]() | |
TSLDrawingSurfaceBase () | |
Additional Inherited Members | |
![]() | |
void * | m_classID |
TSLNativeEGLSurface::TSLNativeEGLSurface | ( | EGLNativeDisplayType | nativeDisplay, |
EGLNativeWindowType | nativeWindow, | ||
EGLint | configID, | ||
const TSLOpenGLSurfaceCreationParameters & | creationProperties ) |
Constructs a new drawing surface, creating a new OpenGL context for the given window. The drawing surface owns the context created.
To check if the drawing surface has successfully attached, check that the context() method returns non-zero.
nativeDisplay | The host type native display connection for the drawing surface to use. |
nativeWindow | The host type native window to attach the drawing surface to. |
configID | The EGL framebuffer configuration ID that the drawing surface should use. This can be retrieved from the preferredConfigID() method. |
creationProperties | Options that affect the creation of the drawing surface. See the documentation for TSLOpenGLSurfaceCreationParameters for the available options. |
TSLNativeEGLSurface::TSLNativeEGLSurface | ( | EGLDisplay | display, |
EGLSurface | window, | ||
EGLContext | context, | ||
const TSLOpenGLSurfaceCreationParameters & | creationProperties ) |
Constructs a new drawing surface, using the existing OpenGL ES context passed in. The drawing surface does not assume ownership of this context.
To check if the drawing surface has successfully attached, check that the context() method returns non-zero.
display | The EGL display connection for the drawing surface to use. |
window | The EGL surface to attach the drawing surface to. |
context | The existing OpenGL ES context. This context should have already been made current in the current thread. |
creationProperties | Options that affect the creation of the drawing surface. See the documentation for TSLOpenGLSurfaceCreationParameters for the available options. |
|
virtual |
|
protected |
bool TSLNativeEGLSurface::attach | ( | EGLDisplay | display, |
EGLSurface | window, | ||
EGLContext | context ) |
Attaches the drawing surface to the given window using the given OpenGL context. This will detach the drawing surface from any window it is currently attached to.
display | The EGL display connection for the drawing surface to use. |
window | The EGL surface to attach the drawing surface to. |
context | The existing OpenGL ES context. This context should have already been made current in the current thread. |
|
virtual |
Reimplemented from TSLEGLSurface.
EGLContext TSLNativeEGLSurface::context | ( | ) |
Returns the OpenGL context used by the drawing surface. If this returns EGL_NO_CONTEXT, the drawing surface did not attach successfully and cannot be used.
bool TSLNativeEGLSurface::makeContextCurrent | ( | ) |
Binds the OpenGL context held by the drawing surface to the current thread. This method can be used to change the thread used for drawing to the drawing surface.
Returns true if the context was made current in this thread, or false if there was an error or the drawing surface was not attached.
|
static |
Returns the ID of the EGL framebuffer configuration that the drawing surface would prefer to use given the requested settings.
Only configurations that support the following will be considered:
Regardless of any optional parameters, framebuffer configurations with the following are always preferred:
Configurations with a sample buffer will be preferred over configurations without one.
Returns the EGL config ID of the framebuffer configuration that the drawing surface would prefer to use.
void TSLNativeEGLSurface::terminateDisplayOnDestruction | ( | bool | shouldTerminate | ) |
Controls whether eglTerminate will be called on the EGLDisplay when this drawing surface is destroyed. If multiple drawing surfaces or OpenGL contexts are in use at the same time from the same native display, this method should be invoked on all surfaces to avoid the deletion of one drawing surface invalidating all OpenGL contexts created from the display.