public class BaseController extends java.lang.Object implements RenderController.TaskManager, RenderControllerInterface
Most of the functionality is shared between the 2D and 3D maps and so it is implemented here.
Modifier and Type | Class and Description |
---|---|
static interface |
BaseController.ScreenshotListener
Listener to receive the screenshot in an asynchronous way.
|
static class |
BaseController.Settings
These are settings passed on construction.
|
RenderControllerInterface.ContextInfo, RenderControllerInterface.TextureSettings, RenderControllerInterface.ThreadMode
Modifier and Type | Field and Description |
---|---|
android.app.Activity |
activity |
protected com.mousebird.maply.CoordSystemDisplayAdapter |
coordAdapter |
int |
frameInterval
This is how often we'll kick off a render when the frame sync comes in.
|
okhttp3.OkHttpClient |
httpClient |
protected MetroThread |
metroThread |
RenderController |
renderControl
The render controller handles marshalling objects and the actual run loop.
|
protected com.mousebird.maply.RendererWrapper |
renderWrapper |
protected boolean |
running |
Scene |
scene |
protected View |
view |
Constructor and Description |
---|
BaseController(android.app.Activity mainActivity,
BaseController.Settings settings)
Construct the maply controller with an Activity.
|
Modifier and Type | Method and Description |
---|---|
void |
addActiveObject(ActiveObject activeObject)
Add an active object that will be called right before the render (on the render thread).
|
void |
addActiveObjectAtStart(ActiveObject activeObject)
Add an active object to the beginning of the list.
|
ComponentObject |
addBillboards(java.util.List<Billboard> bills,
BillboardInfo info,
RenderControllerInterface.ThreadMode threadMode)
Billboards are rectangles pointed toward the viewer.
|
void |
addClusterGenerator(ClusterGenerator generator)
When the layout system clusters a bunch of markers or labels together, it needs new images to represent the cluster.
|
void |
addLayer(Layer layer)
Add a single layer.
|
void |
addLight(Light light)
Add the given light to the list of active lights.
|
ComponentObject |
addLoftedPoly(VectorObject vec,
LoftedPolyInfo loftInfo,
RenderControllerInterface.ThreadMode mode)
Add a single Lofted Polygon.
|
ComponentObject |
addLoftedPolys(java.util.List<VectorObject> vecs,
LoftedPolyInfo loftInfo,
RenderControllerInterface.ThreadMode mode)
Add Lofted Polygons to the MaplyController to display.
|
void |
addMainThreadTask(java.lang.Runnable run)
Utility routine to run a task on the main thread.
|
void |
addMainThreadTaskAfter(double when,
java.lang.Runnable run)
Utility routine to run a task on the main thread after
a period of time.
|
ComponentObject |
addMarker(Marker marker,
MarkerInfo markerInfo,
RenderControllerInterface.ThreadMode mode)
Add a single screen marker.
|
ComponentObject |
addMarkers(java.util.List<Marker> markers,
MarkerInfo markerInfo,
RenderControllerInterface.ThreadMode mode)
Add screen markers to the visual display.
|
void |
addParticleBatch(ParticleBatch particleBatch,
RenderControllerInterface.ThreadMode mode)
Particles are short term objects, typically very small.
|
ComponentObject |
addParticleSystem(ParticleSystem particleSystem,
RenderControllerInterface.ThreadMode mode)
This adds a particle system to the scene, but does not kick off any particles.
|
ComponentObject |
addPoints(java.util.List<Points> ptList,
GeometryInfo geomInfo,
RenderControllerInterface.ThreadMode mode)
Add the geometry points.
|
ComponentObject |
addPoints(Points pts,
GeometryInfo geomInfo,
RenderControllerInterface.ThreadMode mode)
Add the geometry points.
|
void |
addPostSurfaceRunnable(java.lang.Runnable run)
Add a runnable to be executed after the OpenGL surface is created.
|
void |
addRenderTarget(RenderTarget renderTarget)
Add a render target to the system
Sets up a render target and will start rendering to it on the next frame. |
ComponentObject |
addScreenLabel(ScreenLabel label,
LabelInfo labelInfo,
RenderControllerInterface.ThreadMode mode)
Add a single screen label.
|
ComponentObject |
addScreenLabels(java.util.List<ScreenLabel> labels,
LabelInfo labelInfo,
RenderControllerInterface.ThreadMode mode)
Add screen labels to the display.
|
ComponentObject |
addScreenMarker(ScreenMarker marker,
MarkerInfo markerInfo,
RenderControllerInterface.ThreadMode mode)
Add a single screen marker.
|
ComponentObject |
addScreenMarkers(java.util.List<ScreenMarker> markers,
MarkerInfo markerInfo,
RenderControllerInterface.ThreadMode mode)
Add screen markers to the visual display.
|
ComponentObject |
addScreenMovingLabels(java.util.List<ScreenMovingLabel> labels,
LabelInfo labelInfo,
RenderControllerInterface.ThreadMode mode)
Add screen labels to the display.
|
ComponentObject |
addScreenMovingMarkers(java.util.List<ScreenMovingMarker> markers,
MarkerInfo markerInfo,
RenderControllerInterface.ThreadMode mode)
Add moving screen markers to the visual display.
|
void |
addShaderProgram(Shader shader)
Associate a shader with the given scene name.
|
ComponentObject |
addShapes(java.util.List<Shape> shapes,
ShapeInfo shapeInfo,
RenderControllerInterface.ThreadMode mode)
This method will add the given MaplyShape derived objects to the current scene.
|
ComponentObject |
addStickers(java.util.List<Sticker> stickers,
StickerInfo stickerInfo,
RenderControllerInterface.ThreadMode mode)
Add stickers on top of the globe or map.
|
void |
addTask(java.lang.Runnable run,
RenderControllerInterface.ThreadMode mode)
Add a task according to the thread mode.
|
MaplyTexture |
addTexture(android.graphics.Bitmap image,
RenderControllerInterface.TextureSettings settings,
RenderControllerInterface.ThreadMode mode)
Add texture to the system with the given settings.
|
MaplyTexture |
addTexture(com.mousebird.maply.Texture rawTex,
RenderControllerInterface.TextureSettings settings,
RenderControllerInterface.ThreadMode mode)
Add texture to the system with the given settings.
|
RemoteTileFetcher |
addTileFetcher(java.lang.String name)
Either returns a RemoteTileFetcher with the given name or
it creates one and then returns the same.
|
ComponentObject |
addVector(VectorObject vec,
VectorInfo vecInfo,
RenderControllerInterface.ThreadMode mode)
Add a single VectorObject.
|
ComponentObject |
addVectors(java.util.List<VectorObject> vecs,
VectorInfo vecInfo,
RenderControllerInterface.ThreadMode mode)
Add vectors to the MaplyController to display.
|
ComponentObject |
addWideVector(VectorObject vec,
WideVectorInfo wideVecInfo,
RenderControllerInterface.ThreadMode mode)
Add wide vectors to the MaplyController to display.
|
ComponentObject |
addWideVectors(java.util.List<VectorObject> vecs,
WideVectorInfo wideVecInfo,
RenderControllerInterface.ThreadMode mode)
Add wide vectors to the MaplyController to display.
|
void |
changeRenderTarget(RenderTarget renderTarget,
MaplyTexture tex)
Point the render target at a different texture.
|
ComponentObject |
changeSticker(ComponentObject stickerObj,
StickerInfo stickerInfo,
RenderControllerInterface.ThreadMode mode)
Change the visual representation for the given sticker.
|
void |
changeVector(ComponentObject vecObj,
VectorInfo vecInfo,
RenderControllerInterface.ThreadMode mode)
Change the visual representation of the given vectors.
|
void |
clearLights()
Clear all the currently active lights.
|
void |
clearRenderTarget(RenderTarget renderTarget,
RenderControllerInterface.ThreadMode mode)
Ask the render target to clear itself.
|
void |
clearTempContext(RenderControllerInterface.ContextInfo cInfo) |
MaplyTexture |
createTexture(int width,
int height,
RenderControllerInterface.TextureSettings settings,
RenderControllerInterface.ThreadMode mode)
Create an empty texture of the given size.
|
double |
currentMapScale()
Return the current scale denominator (Mapnik).
|
double |
currentMapZoom(Point2d geoCoord)
Return the current map zoom from the viewpoint.
|
void |
disableObject(ComponentObject compObj,
RenderControllerInterface.ThreadMode mode)
Disable the display for the given object.
|
void |
disableObjects(java.util.List<ComponentObject> compObjs,
RenderControllerInterface.ThreadMode mode)
Disable the given objects.
|
Point3d |
displayCoord(Point3d localCoord,
CoordSystem fromSystem) |
void |
enableObject(ComponentObject compObj,
RenderControllerInterface.ThreadMode mode)
Enable the display for the given object.
|
void |
enableObjects(java.util.List<ComponentObject> compObjs,
RenderControllerInterface.ThreadMode mode)
Enable the display for the given objects.
|
QuadSamplingLayer |
findSamplingLayer(SamplingParams params,
QuadSamplingLayer.ClientInterface user)
Look for a sampling layer that matches the parameters given.
|
Point2d |
geoPointFromScreen(Point2d screenPt) |
boolean |
geoPointFromScreenBatch(double[] inX,
double[] inY,
double[] outX,
double[] outY)
Batch version of the geoPointFromScreen method.
|
android.app.Activity |
getActivity()
Activity for the whole app.
|
android.view.View |
getContentView()
Return the main content view used to represent the Maply Control.
|
CoordSystem |
getCoordSystem()
Return the current coordinate system.
|
int[] |
getFrameBufferSize()
Return the current framebuffer size as ints.
|
Point2d |
getFrameSize()
Return the frame size we're rendering to.
|
okhttp3.OkHttpClient |
getHttpClient()
Return an HTTP Client for use in fetching data, probably tiles.
|
LayerThread |
getLayerThread()
Returns the layer thread we used for processing requests.
|
float |
getMaxLineWidth()
Returns the maximum line width on the current device.
|
protected java.lang.Object |
getObjectAtScreenLoc(Point2d screenLoc)
Returns an object (if any) at a given screen location
|
protected SelectedObject[] |
getObjectsAtScreenLoc(Point2d screenLoc) |
boolean |
getOfflineMode()
True if the renderer was set up as offline.
|
RenderController |
getRenderController()
The underlying render controller.
|
Scene |
getScene()
Return the current scene.
|
Shader |
getShader(java.lang.String name)
Find a shader by name
|
Point2d |
getViewSize()
Return the Android view size, rather than the frame size.
|
LayerThread |
getWorkingThread()
Returns a layer thread you can do whatever you like on.
|
double |
heightForMapScale(double scale)
Calculate the height that corresponds to a given Mapnik-style map scale.
|
protected void |
Init() |
ComponentObject |
instanceVectors(ComponentObject inCompObj,
VectorInfo vecInfo,
RenderControllerInterface.ThreadMode mode)
Instance an existing set of vectors and modify various parameters for reuse.
|
ComponentObject |
instanceWideVectors(ComponentObject inCompObj,
WideVectorInfo wideVecInfo,
RenderControllerInterface.ThreadMode mode)
Instance an existing set of wide vectors but change their parameters.
|
LayerThread |
makeLayerThread(boolean handlesViewUpdates)
Makes a new layer thread for toolkit related tasks.
|
void |
processChangeSet(ChangeSet changes) |
void |
releaseSamplingLayer(QuadSamplingLayer samplingLayer,
QuadSamplingLayer.ClientInterface user)
Release the given sampling layer
|
void |
removeActiveObject(ActiveObject activeObject)
Remove an active object added earlier.
|
void |
removeLayer(Layer layer)
Remove a single layer.
|
void |
removeLayerThread(LayerThread layerThread)
Remove a layer thread you had created earlier.
|
void |
removeLight(Light light)
Remove the given light (assuming it's active) from the list of lights.
|
void |
removeObject(ComponentObject compObj,
RenderControllerInterface.ThreadMode mode)
Remove a single objects from the display.
|
void |
removeObjects(java.util.List<ComponentObject> compObjs,
RenderControllerInterface.ThreadMode mode)
Remove the given component objects from the display.
|
void |
removeRenderTarget(RenderTarget renderTarget)
Remove the given render target from the system.
|
void |
removeShader(Shader shader)
Take the given shader out of active use.
|
void |
removeTexture(MaplyTexture tex,
RenderControllerInterface.ThreadMode mode)
Remove a texture from the scene.
|
void |
removeTextures(java.util.List<MaplyTexture> texs,
RenderControllerInterface.ThreadMode mode)
Remove a whole group of textures from the scene.
|
void |
removeTexturesByID(java.util.List<java.lang.Long> texIDs,
RenderControllerInterface.ThreadMode mode)
This version of removeTexture takes texture IDs.
|
boolean |
rendererIsAttached()
Set if the renderer is set up and running.
|
void |
requestRender()
Force a render on the next frame.
|
void |
resetLights()
Reset the lighting back to its default state at startup.
|
Point2d |
screenPointFromGeo(Point2d geoCoord) |
boolean |
screenPointFromGeoBatch(double[] inX,
double[] inY,
double[] inZ,
double[] outX,
double[] outY)
Batch version of the screenPointFromGeo method.
|
void |
setClearColor(int color)
Set the color for the OpenGL ES background.
|
void |
setDisplayRate(int inRate)
Set the display rate for the GL render.
|
boolean |
setEGLContext(RenderControllerInterface.ContextInfo cInfo)
Set the EGL Context we created for the main thread, if we can.
|
void |
setPerfInterval(int inPerfInterval)
Report performance stats in the console ever few frames.
|
RenderControllerInterface.ContextInfo |
setupTempContext(RenderControllerInterface.ThreadMode threadMode) |
void |
setViewExtents(Point2d ll,
Point2d ur)
Set the viewport the user is allowed to move within.
|
void |
shutdown()
Call shutdown when you're done with the MaplyController.
|
void |
takeScreenshot(BaseController.ScreenshotListener listener) |
boolean |
usesTextureView()
Returns true if we set up a TextureView rather than a SurfaceView.
|
public android.app.Activity activity
public okhttp3.OkHttpClient httpClient
public int frameInterval
protected boolean running
protected com.mousebird.maply.RendererWrapper renderWrapper
protected com.mousebird.maply.CoordSystemDisplayAdapter coordAdapter
public Scene scene
protected View view
public RenderController renderControl
protected MetroThread metroThread
public BaseController(android.app.Activity mainActivity, BaseController.Settings settings)
On construction the Controller will create the scene, the view, kick off the OpenGL ES surface, and construct a layer thread for handling data requests.
The controller also sets up some default gestures and handles those callbacks.
mainActivity
- Your main activity that we'll attach ourselves to.public Scene getScene()
getScene
in interface RenderControllerInterface
public CoordSystem getCoordSystem()
getCoordSystem
in interface RenderControllerInterface
public void takeScreenshot(BaseController.ScreenshotListener listener)
public okhttp3.OkHttpClient getHttpClient()
public LayerThread getLayerThread()
public void addMainThreadTask(java.lang.Runnable run)
public void addMainThreadTaskAfter(double when, java.lang.Runnable run)
public android.app.Activity getActivity()
public LayerThread getWorkingThread()
public boolean usesTextureView()
public RenderController getRenderController()
protected void Init()
public LayerThread makeLayerThread(boolean handlesViewUpdates)
handlesViewUpdates
- If set, the layer thread will deal with view updates.
If not set, it's a simpler layer thread.public void removeLayerThread(LayerThread layerThread)
public Point3d displayCoord(Point3d localCoord, CoordSystem fromSystem)
public android.view.View getContentView()
public Point2d getViewSize()
public void shutdown()
public RenderControllerInterface.ContextInfo setupTempContext(RenderControllerInterface.ThreadMode threadMode)
setupTempContext
in interface RenderControllerInterface
public void clearTempContext(RenderControllerInterface.ContextInfo cInfo)
clearTempContext
in interface RenderControllerInterface
public boolean rendererIsAttached()
public void addPostSurfaceRunnable(java.lang.Runnable run)
public void setDisplayRate(int inRate)
public void requestRender()
requestRender
in interface RenderControllerInterface
public boolean setEGLContext(RenderControllerInterface.ContextInfo cInfo)
setEGLContext
in interface RenderControllerInterface
public void setClearColor(int color)
setClearColor
in interface RenderControllerInterface
public void setViewExtents(Point2d ll, Point2d ur)
ll
- Lower left corner.ur
- Upper right corner.public boolean screenPointFromGeoBatch(double[] inX, double[] inY, double[] inZ, double[] outX, double[] outY)
inX
- Longitude in radians.inY
- Latitude in radians.inZ
- Z value. Set this to zero most of the time.outX
- X point on screen. MAXFLOAT if this is behind the globe.outY
- Y point on screen. MAXFLOAT if this is behind the globe.public boolean geoPointFromScreenBatch(double[] inX, double[] inY, double[] outX, double[] outY)
public void setPerfInterval(int inPerfInterval)
inPerfInterval
- public double heightForMapScale(double scale)
heightForMapScale
in interface RenderControllerInterface
public double currentMapZoom(Point2d geoCoord)
currentMapZoom
in interface RenderControllerInterface
geoCoord
- the location to calculate for. This is needed because zoom is dependant on latitude.public double currentMapScale()
currentMapScale
in interface RenderControllerInterface
public void addLayer(Layer layer)
public void removeLayer(Layer layer)
public QuadSamplingLayer findSamplingLayer(SamplingParams params, QuadSamplingLayer.ClientInterface user)
public void releaseSamplingLayer(QuadSamplingLayer samplingLayer, QuadSamplingLayer.ClientInterface user)
samplingLayer
- user
- public RemoteTileFetcher addTileFetcher(java.lang.String name)
public void addTask(java.lang.Runnable run, RenderControllerInterface.ThreadMode mode)
addTask
in interface RenderController.TaskManager
run
- Runnable to execute.mode
- Where to execute it.public ComponentObject addVector(VectorObject vec, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
public ComponentObject addVectors(java.util.List<VectorObject> vecs, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
addVectors
in interface RenderControllerInterface
vecs
- A list of VectorObject's created by the user or read in from various sources.vecInfo
- A description of how the vectors should look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject instanceVectors(ComponentObject inCompObj, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
instanceVectors
in interface RenderControllerInterface
public void changeVector(ComponentObject vecObj, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
changeVector
in interface RenderControllerInterface
vecObj
- The component object returned by the original addVectors() call.vecInfo
- Visual representation to use for the changes.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addWideVectors(java.util.List<VectorObject> vecs, WideVectorInfo wideVecInfo, RenderControllerInterface.ThreadMode mode)
addWideVectors
in interface RenderControllerInterface
vecs
- A list of VectorObject's created by the user or read in from various sources.wideVecInfo
- A description of how the vectors should look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addWideVector(VectorObject vec, WideVectorInfo wideVecInfo, RenderControllerInterface.ThreadMode mode)
vec
- The vector object to turn into wide vectors.wideVecInfo
- A description of how the vectors should look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject instanceWideVectors(ComponentObject inCompObj, WideVectorInfo wideVecInfo, RenderControllerInterface.ThreadMode mode)
instanceWideVectors
in interface RenderControllerInterface
inCompObj
- The Component Object returned by an addWideVectors call.wideVecInfo
- How we want the vectors to look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addLoftedPoly(VectorObject vec, LoftedPolyInfo loftInfo, RenderControllerInterface.ThreadMode mode)
public ComponentObject addLoftedPolys(java.util.List<VectorObject> vecs, LoftedPolyInfo loftInfo, RenderControllerInterface.ThreadMode mode)
addLoftedPolys
in interface RenderControllerInterface
vecs
- A list of VectorObject's created by the user or read in from various sources.loftInfo
- A description of how the lofted polygons should look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addScreenMarker(ScreenMarker marker, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
public ComponentObject addScreenMarkers(java.util.List<ScreenMarker> markers, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
addScreenMarkers
in interface RenderControllerInterface
markers
- The markers to add to the displaymarkerInfo
- How the markers should look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addScreenMovingMarkers(java.util.List<ScreenMovingMarker> markers, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
addScreenMovingMarkers
in interface RenderControllerInterface
public ComponentObject addMarker(Marker marker, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
public ComponentObject addMarkers(java.util.List<Marker> markers, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
addMarkers
in interface RenderControllerInterface
markers
- The markers to add to the displaymarkerInfo
- How the markers should look.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addStickers(java.util.List<Sticker> stickers, StickerInfo stickerInfo, RenderControllerInterface.ThreadMode mode)
addStickers
in interface RenderControllerInterface
stickers
- The list of stickers to apply.stickerInfo
- Parameters that cover all the stickers in question.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject changeSticker(ComponentObject stickerObj, StickerInfo stickerInfo, RenderControllerInterface.ThreadMode mode)
changeSticker
in interface RenderControllerInterface
stickerObj
- The sticker to change.stickerInfo
- Parameters to change.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addPoints(java.util.List<Points> ptList, GeometryInfo geomInfo, RenderControllerInterface.ThreadMode mode)
addPoints
in interface RenderControllerInterface
ptList
- The points to add.geomInfo
- Parameters to set things up with.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addPoints(Points pts, GeometryInfo geomInfo, RenderControllerInterface.ThreadMode mode)
pts
- The points to add.geomInfo
- Parameters to set things up with.mode
- Where to execute the add. Choose ThreadAny by default.protected SelectedObject[] getObjectsAtScreenLoc(Point2d screenLoc)
protected java.lang.Object getObjectAtScreenLoc(Point2d screenLoc)
screenLoc
- the screen location to be consideredpublic ComponentObject addScreenLabel(ScreenLabel label, LabelInfo labelInfo, RenderControllerInterface.ThreadMode mode)
public ComponentObject addScreenLabels(java.util.List<ScreenLabel> labels, LabelInfo labelInfo, RenderControllerInterface.ThreadMode mode)
addScreenLabels
in interface RenderControllerInterface
labels
- Labels to add to the display.labelInfo
- The visual appearance of the labels.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addScreenMovingLabels(java.util.List<ScreenMovingLabel> labels, LabelInfo labelInfo, RenderControllerInterface.ThreadMode mode)
addScreenMovingLabels
in interface RenderControllerInterface
labels
- Labels to add to the display.labelInfo
- The visual appearance of the labels.mode
- Where to execute the add. Choose ThreadAny by default.public MaplyTexture addTexture(android.graphics.Bitmap image, RenderControllerInterface.TextureSettings settings, RenderControllerInterface.ThreadMode mode)
addTexture
in interface RenderControllerInterface
image
- Image to add.settings
- Settings to use.mode
- Add on the current thread or elsewhere.public MaplyTexture createTexture(int width, int height, RenderControllerInterface.TextureSettings settings, RenderControllerInterface.ThreadMode mode)
createTexture
in interface RenderControllerInterface
width
- Width of the resulting textureheight
- Height of the resulting texturesettings
- Other texture related settingsmode
- Which thread to do the work onpublic MaplyTexture addTexture(com.mousebird.maply.Texture rawTex, RenderControllerInterface.TextureSettings settings, RenderControllerInterface.ThreadMode mode)
addTexture
in interface RenderControllerInterface
rawTex
- Texture to add.settings
- Settings to use.mode
- Add on the current thread or elsewhere.public void removeTexture(MaplyTexture tex, RenderControllerInterface.ThreadMode mode)
removeTexture
in interface RenderControllerInterface
tex
- Texture to remove.mode
- Remove immediately (current thread) or elsewhere.public void removeTextures(java.util.List<MaplyTexture> texs, RenderControllerInterface.ThreadMode mode)
removeTextures
in interface RenderControllerInterface
texs
- Textures to remove.mode
- Remove immediately (current thread) or elsewhere.public void removeTexturesByID(java.util.List<java.lang.Long> texIDs, RenderControllerInterface.ThreadMode mode)
removeTexturesByID
in interface RenderControllerInterface
texIDs
- Textures to removemode
- Remove immediately (current thread) or elsewhere.public void addRenderTarget(RenderTarget renderTarget)
addRenderTarget
in interface RenderControllerInterface
public void changeRenderTarget(RenderTarget renderTarget, MaplyTexture tex)
changeRenderTarget
in interface RenderControllerInterface
public void clearRenderTarget(RenderTarget renderTarget, RenderControllerInterface.ThreadMode mode)
public void removeRenderTarget(RenderTarget renderTarget)
removeRenderTarget
in interface RenderControllerInterface
public void addShaderProgram(Shader shader)
addShaderProgram
in interface RenderControllerInterface
shader
- The shader to add.public Shader getShader(java.lang.String name)
getShader
in interface RenderControllerInterface
name
- Name of the shader to returnpublic void removeShader(Shader shader)
removeShader
in interface RenderControllerInterface
public void addActiveObject(ActiveObject activeObject)
public void addActiveObjectAtStart(ActiveObject activeObject)
public void removeActiveObject(ActiveObject activeObject)
public void disableObjects(java.util.List<ComponentObject> compObjs, RenderControllerInterface.ThreadMode mode)
disableObjects
in interface RenderControllerInterface
compObjs
- Objects to disable in the display.mode
- Where to execute the add. Choose ThreadAny by default.public void disableObject(ComponentObject compObj, RenderControllerInterface.ThreadMode mode)
compObj
- Object to disablemode
- Where to execute the enable. Choose ThreadAny by default.public void enableObjects(java.util.List<ComponentObject> compObjs, RenderControllerInterface.ThreadMode mode)
enableObjects
in interface RenderControllerInterface
compObjs
- Objects to enable disable.mode
- Where to execute the enable. Choose ThreadAny by default.public void enableObject(ComponentObject compObj, RenderControllerInterface.ThreadMode mode)
compObj
- Object to enable.mode
- Where to execute the enable. Choose ThreadAny by default.public void removeObject(ComponentObject compObj, RenderControllerInterface.ThreadMode mode)
removeObject
in interface RenderControllerInterface
public void removeObjects(java.util.List<ComponentObject> compObjs, RenderControllerInterface.ThreadMode mode)
removeObjects
in interface RenderControllerInterface
compObjs
- Component Objects to remove.mode
- Where to execute the add. Choose ThreadAny by default.public ComponentObject addParticleSystem(ParticleSystem particleSystem, RenderControllerInterface.ThreadMode mode)
particleSystem
- The particle system to start.mode
- Where to execute the add. Choose ThreadAny by default.public void addParticleBatch(ParticleBatch particleBatch, RenderControllerInterface.ThreadMode mode)
particleBatch
- The batch of particles to add to an active particle system.mode
- Where to execute the add. Choose ThreadAny by default.public void addClusterGenerator(ClusterGenerator generator)
public ComponentObject addShapes(java.util.List<Shape> shapes, ShapeInfo shapeInfo, RenderControllerInterface.ThreadMode mode)
addShapes
in interface RenderControllerInterface
shapes
- An array of Shape derived objectsshapeInfo
- Info controlling how the shapes lookmode
- Where to execute the add. Choose ThreadAny by default.public void addLight(Light light)
addLight
in interface RenderControllerInterface
light
- Light to add.public void removeLight(Light light)
removeLight
in interface RenderControllerInterface
light
- Light to remove.public void clearLights()
clearLights
in interface RenderControllerInterface
public void resetLights()
resetLights
in interface RenderControllerInterface
public ComponentObject addBillboards(java.util.List<Billboard> bills, BillboardInfo info, RenderControllerInterface.ThreadMode threadMode)
addBillboards
in interface RenderControllerInterface
public float getMaxLineWidth()
public Point2d getFrameSize()
public int[] getFrameBufferSize()
getFrameBufferSize
in interface RenderControllerInterface
public void processChangeSet(ChangeSet changes)
processChangeSet
in interface RenderControllerInterface
public boolean getOfflineMode()
getOfflineMode
in interface RenderControllerInterface