MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
Inheritance diagram for TSLNativeEGLSurface:

Detailed Description

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:

// Set desired options on framebufferSettings
EGLint eglConfigID = TSLNativeEGLSurface::preferredConfigID( nativeDisplay, framebufferSettings )
if( eglConfigID == -1 )
{
// Error - no suitable framebuffer configuration found
}
EGLDisplay display = eglGetDisplay( nativeDisplay );
EGLint attrs[] = { EGL_CONFIG_ID, eglConfigID,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, // We require ES2 support
EGL_NONE };
EGLConfig desiredConfig;
EGLint numConfigs = 0;
if( !eglChooseConfig( m_display, attrs, &desiredConfig, 1, &numConfigs )
|| numConfigs == 0 )
{
// Error - could not look up config details
}
EGLint visualID = 0;
eglGetConfigAttrib( m_display, m_config, EGL_NATIVE_VISUAL_ID, &visualID );
// Create window using native visual ID if applicable for the windowing system
TSLNativeEGLSurface *surface = new TSLNativeEGLSurface( nativeDisplay, nativeWindow, eglConfigID, framebufferSettings );
if( surface->requiresDeviceCapabilities() )
{
surface->setDeviceCapabilities( ... );
}
bool setDeviceCapabilities(const int horizontalSizeMM=0, const int verticalSizeMM=0, const int horizontalSizePixels=0, const int verticalSizePixels=0)
TSLNativeEGLSurface(EGLNativeDisplayType nativeDisplay, EGLNativeWindowType nativeWindow, EGLint configID, const TSLOpenGLSurfaceCreationParameters &creationProperties)
static EGLint preferredConfigID(EGLNativeDisplayType nativeDisplay, const TSLOpenGLSurfaceCreationParameters &creationProperties)
Definition tslopenglsurfacecreationparamete.h:14

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:

  • GL_OES_element_index_uint
  • GL_OES_standard_derivatives

Non-Native Rendering

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 TSLOpenGLSurfacecaw ()
 
- Public Member Functions inherited from TSLEGLSurface
 TSLEGLSurface ()
 
virtual ~TSLEGLSurface ()
 
bool attach ()
 
void detach (bool contextLost=false)
 
bool requiresDisplayMetrics () const
 
void setContextCallbacks (TSLEGLContextCallbacks *callbacks)
 
- Public Member Functions inherited from TSLOpenGLSurface
virtual ~TSLOpenGLSurface ()
 
float acquireDepthSlice ()
 
virtual TSLDrawingSurfaceclone (bool copyUserData=false)
 
double coordinateCentreX () const
 
double coordinateCentreY () const
 
TSLOpenGLSurfacecreateChildSurface ()
 
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)
 
TSLOpenGLStateTrackerstateTracker ()
 
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
 
- 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
 
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 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)
 
- 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 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 ()
 

Static Public Member Functions

static EGLint preferredConfigID (EGLNativeDisplayType nativeDisplay, const TSLOpenGLSurfaceCreationParameters &creationProperties)
 
- 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 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

 TSLNativeEGLSurface ()
 
- Protected Member Functions inherited from TSLEGLSurface
 TSLEGLSurface (bool b)
 
- Protected Member Functions inherited from TSLOpenGLSurface
 TSLOpenGLSurface ()
 
- Protected Member Functions inherited from TSLDrawingSurfaceBase
 TSLDrawingSurfaceBase ()
 

Additional Inherited Members

- Protected Attributes inherited from TSLDrawingSurfaceBase
void * m_classID
 

Constructor & Destructor Documentation

◆ TSLNativeEGLSurface() [1/3]

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.

Parameters
nativeDisplayThe host type native display connection for the drawing surface to use.
nativeWindowThe host type native window to attach the drawing surface to.
configIDThe EGL framebuffer configuration ID that the drawing surface should use. This can be retrieved from the preferredConfigID() method.
creationPropertiesOptions that affect the creation of the drawing surface. See the documentation for TSLOpenGLSurfaceCreationParameters for the available options.

◆ TSLNativeEGLSurface() [2/3]

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.

Parameters
displayThe EGL display connection for the drawing surface to use.
windowThe EGL surface to attach the drawing surface to.
contextThe existing OpenGL ES context. This context should have already been made current in the current thread.
creationPropertiesOptions that affect the creation of the drawing surface. See the documentation for TSLOpenGLSurfaceCreationParameters for the available options.

◆ ~TSLNativeEGLSurface()

virtual TSLNativeEGLSurface::~TSLNativeEGLSurface ( )
virtual

◆ TSLNativeEGLSurface() [3/3]

TSLNativeEGLSurface::TSLNativeEGLSurface ( )
protected

Member Function Documentation

◆ attach()

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.

Parameters
displayThe EGL display connection for the drawing surface to use.
windowThe EGL surface to attach the drawing surface to.
contextThe existing OpenGL ES context. This context should have already been made current in the current thread.
Returns
true if the surface was attached successfully, false otherwise. If this method returns false the drawing surface cannot be used until it is successfully reattached.

◆ caw()

virtual TSLOpenGLSurface * TSLNativeEGLSurface::caw ( )
virtual

Reimplemented from TSLEGLSurface.

◆ context()

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.

◆ makeContextCurrent()

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.

◆ preferredConfigID()

static EGLint TSLNativeEGLSurface::preferredConfigID ( EGLNativeDisplayType nativeDisplay,
const TSLOpenGLSurfaceCreationParameters & creationProperties )
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:

  • Configurations that support OpenGL ES 2.0 as specified by EGL_OPENGL_ES2_BIT
  • Configurations that have RGB colour buffers
  • Configurations that have a depth buffer of at least 16 bits.

Regardless of any optional parameters, framebuffer configurations with the following are always preferred:

  1. Configurations with the highest red/green/blue colour channel size, with no minimum size.
  2. Configurations with the highest depth buffer size, with a minimum size of 16 bits.
  3. Configurations with the greatest number of samples, up to the requested number of samples.

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.

◆ terminateDisplayOnDestruction()

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.