public class RenderController extends java.lang.Object implements RenderControllerInterface
| Modifier and Type | Class and Description |
|---|---|
static class |
RenderController.ImageFormat
Enumerated values for image types.
|
static interface |
RenderController.TaskManager
We don't want to deal with threads and such down here, so
the controller one level up gives us an addTask method
to hand over the runnables.
|
RenderControllerInterface.ContextInfo, RenderControllerInterface.TextureSettings, RenderControllerInterface.ThreadMode| Modifier and Type | Field and Description |
|---|---|
protected BillboardManager |
billboardManager |
protected ComponentManager |
componentManager |
javax.microedition.khronos.egl.EGLConfig |
config |
javax.microedition.khronos.egl.EGLContext |
context |
com.mousebird.maply.CoordSystemDisplayAdapter |
coordAdapter |
javax.microedition.khronos.egl.EGLDisplay |
display |
boolean |
disposeAfterRemoval
If set, we'll explicitly call dispose on any objects that were
being kept around for selection.
|
static long |
EmptyIdentity |
static int |
FeatureDrawPriorityBase |
protected GeometryManager |
geomManager |
static int |
ImageLayerDrawPriorityDefault |
static java.lang.String |
kToolkitDefaultTriangleNoLightingProgram |
static int |
LabelDrawPriorityDefault |
protected com.mousebird.maply.LabelManager |
labelManager |
protected com.mousebird.maply.LayoutLayer |
layoutLayer |
protected com.mousebird.maply.LayoutManager |
layoutManager |
protected com.mousebird.maply.LoftedPolyManager |
loftManager |
static int |
MarkerDrawPriorityDefault |
protected com.mousebird.maply.MarkerManager |
markerManager |
protected boolean |
offlineMode |
static int |
ParticleDrawPriorityDefault |
protected ParticleSystemManager |
particleSystemManager |
Scene |
scene |
protected com.mousebird.maply.SelectionManager |
selectionManager |
protected ShapeManager |
shapeManager |
protected StickerManager |
stickerManager |
protected com.mousebird.maply.VectorManager |
vecManager |
protected WideVectorManager |
wideVecManager |
| Constructor and Description |
|---|
RenderController(int width,
int height)
This constructor sets up its own render target.
|
RenderController(RenderController baseControl,
int width,
int height) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
activeObjectsHaveChanges()
Check if any of the active objects have changes for the next frame.
|
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 |
addLight(com.mousebird.maply.DirectionalLight light) |
void |
addLight(Light light)
Add the given light to the list of active lights.
|
ComponentObject |
addLoftedPolys(java.util.List<VectorObject> vecs,
LoftedPolyInfo loftInfo,
RenderControllerInterface.ThreadMode mode)
Add Lofted Polygons to the MaplyController to display.
|
ComponentObject |
addMarkers(java.util.List<Marker> markers,
MarkerInfo markerInfo,
RenderControllerInterface.ThreadMode mode)
Add screen markers to the visual display.
|
ComponentObject |
addPoints(java.util.List<Points> ptList,
GeometryInfo geomInfo,
RenderControllerInterface.ThreadMode mode)
Add the geometry points.
|
protected void |
addPreBuiltShader(Shader shader)
In the render controller setup, we stand up the full set of default
shaders used by the system.
|
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 |
addScreenLabels(java.util.List<ScreenLabel> labels,
LabelInfo labelInfo,
RenderControllerInterface.ThreadMode mode)
Add screen labels to the display.
|
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.
|
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.
|
ComponentObject |
addVectors(java.util.List<VectorObject> vecs,
VectorInfo vecInfo,
RenderControllerInterface.ThreadMode mode)
Add 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 |
clearContext()
In offline render mode, clear the context
Only do this if you're working in offline mode
|
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() |
double |
currentMapZoom(Point2d geoCoord) |
void |
disableObjects(java.util.List<ComponentObject> compObjs,
RenderControllerInterface.ThreadMode mode)
Disable the given objects.
|
void |
doRender() |
void |
enableObjects(ComponentObject[] compObjs,
RenderControllerInterface.ThreadMode mode)
Enable the display for the given objects.
|
void |
enableObjects(java.util.List<ComponentObject> compObjs,
RenderControllerInterface.ThreadMode mode)
Enable the display for the given objects.
|
void |
finalize() |
CoordSystem |
getCoordSystem()
Return the current coordinate system.
|
static RenderControllerInterface.ContextInfo |
getEGLContext() |
int[] |
getFrameBufferSize()
Returns the framebuffer size as ints.
|
boolean |
getOfflineMode()
If true, the renderer was set up as offline.
|
Scene |
getScene()
Return the current scene.
|
Shader |
getShader(java.lang.String name)
Find a shader by name
|
protected boolean |
hasChanges() |
double |
heightForMapScale(double scale) |
void |
Init(Scene inScene,
com.mousebird.maply.CoordSystemDisplayAdapter inCoordAdapter,
RenderController.TaskManager inTaskMan) |
ComponentObject |
instanceVectors(ComponentObject vecObj,
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.
|
void |
processChangeSet(ChangeSet changes) |
void |
removeActiveObject(ActiveObject activeObject)
Remove an active object added 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 simple object from the display.
|
void |
removeObjects(ComponentObject[] compObjs,
RenderControllerInterface.ThreadMode mode)
Remove the given component 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)
Remove the given shader from active use.
|
void |
removeTexture(MaplyTexture tex,
RenderControllerInterface.ThreadMode mode) |
void |
removeTextures(java.util.List<MaplyTexture> texs,
RenderControllerInterface.ThreadMode mode)
Remove a texture from the scene.
|
void |
removeTexturesByID(java.util.List<java.lang.Long> texIDs,
RenderControllerInterface.ThreadMode mode)
This version of removeTexture takes texture IDs.
|
protected void |
render() |
android.graphics.Bitmap |
renderToBitmap()
Render to and return a Bitmap
You should have already set the context at this point
|
protected void |
renderToBitmapNative(android.graphics.Bitmap outBitmap) |
void |
replaceLights(com.mousebird.maply.DirectionalLight[] lights) |
void |
requestRender() |
void |
resetLights()
Reset the lighting back to its default state at startup.
|
protected boolean |
resize(int width,
int height) |
void |
setClearColor(float r,
float g,
float b,
float a) |
void |
setClearColor(int color)
Set the color for the OpenGL ES background.
|
void |
setConfig(RenderController otherControl,
javax.microedition.khronos.egl.EGLConfig inConfig) |
boolean |
setEGLContext(RenderControllerInterface.ContextInfo cInfo) |
void |
setPerfInterval(int perfInterval) |
void |
setScene(Scene scene) |
void |
setupShadersNative() |
RenderControllerInterface.ContextInfo |
setupTempContext(RenderControllerInterface.ThreadMode threadMode) |
void |
setView(View inView) |
void |
setViewNative(View view) |
void |
shutdown() |
boolean |
surfaceChanged(int width,
int height) |
protected boolean |
teardown() |
public static final java.lang.String kToolkitDefaultTriangleNoLightingProgram
public static final int ImageLayerDrawPriorityDefault
public static final int FeatureDrawPriorityBase
public static final int MarkerDrawPriorityDefault
public static final int LabelDrawPriorityDefault
public static final int ParticleDrawPriorityDefault
public static long EmptyIdentity
public boolean disposeAfterRemoval
public Scene scene
public com.mousebird.maply.CoordSystemDisplayAdapter coordAdapter
protected boolean offlineMode
public javax.microedition.khronos.egl.EGLDisplay display
public javax.microedition.khronos.egl.EGLConfig config
public javax.microedition.khronos.egl.EGLContext context
protected com.mousebird.maply.VectorManager vecManager
protected com.mousebird.maply.LoftedPolyManager loftManager
protected WideVectorManager wideVecManager
protected com.mousebird.maply.MarkerManager markerManager
protected StickerManager stickerManager
protected com.mousebird.maply.LabelManager labelManager
protected com.mousebird.maply.SelectionManager selectionManager
protected ComponentManager componentManager
protected com.mousebird.maply.LayoutManager layoutManager
protected ParticleSystemManager particleSystemManager
protected com.mousebird.maply.LayoutLayer layoutLayer
protected ShapeManager shapeManager
protected BillboardManager billboardManager
protected GeometryManager geomManager
public RenderController(RenderController baseControl, int width, int height)
public RenderController(int width,
int height)
public Scene getScene()
getScene in interface RenderControllerInterfacepublic CoordSystem getCoordSystem()
getCoordSystem in interface RenderControllerInterfacepublic boolean getOfflineMode()
getOfflineMode in interface RenderControllerInterfacepublic void Init(Scene inScene, com.mousebird.maply.CoordSystemDisplayAdapter inCoordAdapter, RenderController.TaskManager inTaskMan)
public void setView(View inView)
public void addActiveObject(ActiveObject activeObject)
public void addActiveObjectAtStart(ActiveObject activeObject)
public void removeActiveObject(ActiveObject activeObject)
public boolean activeObjectsHaveChanges()
public boolean surfaceChanged(int width,
int height)
public void doRender()
public void setConfig(RenderController otherControl, javax.microedition.khronos.egl.EGLConfig inConfig)
public void shutdown()
public void addLight(Light light)
addLight in interface RenderControllerInterfacelight - Light to add.public void removeLight(Light light)
removeLight in interface RenderControllerInterfacelight - Light to remove.public void clearLights()
clearLights in interface RenderControllerInterfacepublic void resetLights()
resetLights in interface RenderControllerInterfacepublic ComponentObject addScreenMarkers(java.util.List<ScreenMarker> markers, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
addScreenMarkers in interface RenderControllerInterfacemarkers - 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 RenderControllerInterfacepublic ComponentObject addMarkers(java.util.List<Marker> markers, MarkerInfo markerInfo, RenderControllerInterface.ThreadMode mode)
addMarkers in interface RenderControllerInterfacemarkers - The markers to add to the displaymarkerInfo - How the markers should look.mode - Where to execute the add. Choose ThreadAny by default.public ComponentObject addScreenLabels(java.util.List<ScreenLabel> labels, LabelInfo labelInfo, RenderControllerInterface.ThreadMode mode)
addScreenLabels in interface RenderControllerInterfacelabels - 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 RenderControllerInterfacelabels - 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 addVectors(java.util.List<VectorObject> vecs, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
addVectors in interface RenderControllerInterfacevecs - 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 addLoftedPolys(java.util.List<VectorObject> vecs, LoftedPolyInfo loftInfo, RenderControllerInterface.ThreadMode mode)
addLoftedPolys in interface RenderControllerInterfacevecs - 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 void changeVector(ComponentObject vecObj, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
changeVector in interface RenderControllerInterfacevecObj - 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 instanceVectors(ComponentObject vecObj, VectorInfo vecInfo, RenderControllerInterface.ThreadMode mode)
instanceVectors in interface RenderControllerInterfacepublic ComponentObject addWideVectors(java.util.List<VectorObject> vecs, WideVectorInfo wideVecInfo, RenderControllerInterface.ThreadMode mode)
addWideVectors in interface RenderControllerInterfacevecs - 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 instanceWideVectors(ComponentObject inCompObj, WideVectorInfo wideVecInfo, RenderControllerInterface.ThreadMode mode)
instanceWideVectors in interface RenderControllerInterfaceinCompObj - 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 addShapes(java.util.List<Shape> shapes, ShapeInfo shapeInfo, RenderControllerInterface.ThreadMode mode)
addShapes in interface RenderControllerInterfaceshapes - An array of Shape derived objectsshapeInfo - Info controlling how the shapes lookmode - 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 RenderControllerInterfacestickers - 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 RenderControllerInterfacestickerObj - The sticker to change.stickerInfo - Parameters to change.mode - Where to execute the add. Choose ThreadAny by default.public ComponentObject addBillboards(java.util.List<Billboard> bills, BillboardInfo info, RenderControllerInterface.ThreadMode threadMode)
addBillboards in interface RenderControllerInterfacepublic ComponentObject addPoints(java.util.List<Points> ptList, GeometryInfo geomInfo, RenderControllerInterface.ThreadMode mode)
addPoints in interface RenderControllerInterfaceptList - The points to add.geomInfo - Parameters to set things up with.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 RenderControllerInterfaceimage - Image to add.settings - Settings to use.mode - Add on the current thread or elsewhere.public MaplyTexture addTexture(com.mousebird.maply.Texture rawTex, RenderControllerInterface.TextureSettings settings, RenderControllerInterface.ThreadMode mode)
addTexture in interface RenderControllerInterfacerawTex - Texture 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 RenderControllerInterfacewidth - Width of the resulting textureheight - Height of the resulting texturesettings - Other texture related settingsmode - Which thread to do the work onpublic void removeTextures(java.util.List<MaplyTexture> texs, RenderControllerInterface.ThreadMode mode)
removeTextures in interface RenderControllerInterfacetexs - Textures to remove.mode - Remove immediately (current thread) or elsewhere.public void removeTexture(MaplyTexture tex, RenderControllerInterface.ThreadMode mode)
removeTexture in interface RenderControllerInterfacepublic void removeTexturesByID(java.util.List<java.lang.Long> texIDs,
RenderControllerInterface.ThreadMode mode)
removeTexturesByID in interface RenderControllerInterfacetexIDs - Textures to removemode - Remove immediately (current thread) or elsewhere.public void addRenderTarget(RenderTarget renderTarget)
addRenderTarget in interface RenderControllerInterfacepublic void changeRenderTarget(RenderTarget renderTarget, MaplyTexture tex)
changeRenderTarget in interface RenderControllerInterfacepublic void removeRenderTarget(RenderTarget renderTarget)
removeRenderTarget in interface RenderControllerInterfacepublic void clearRenderTarget(RenderTarget renderTarget, RenderControllerInterface.ThreadMode mode)
public void disableObjects(java.util.List<ComponentObject> compObjs, RenderControllerInterface.ThreadMode mode)
disableObjects in interface RenderControllerInterfacecompObjs - Objects to disable in the display.mode - Where to execute the add. Choose ThreadAny by default.public void enableObjects(java.util.List<ComponentObject> compObjs, RenderControllerInterface.ThreadMode mode)
enableObjects in interface RenderControllerInterfacecompObjs - Objects to enable disable.mode - Where to execute the enable. Choose ThreadAny by default.public void enableObjects(ComponentObject[] compObjs, RenderControllerInterface.ThreadMode mode)
compObjs - Objects to enable disable.mode - Where to execute the enable. Choose ThreadAny by default.public void removeObjects(java.util.List<ComponentObject> compObjs, RenderControllerInterface.ThreadMode mode)
removeObjects in interface RenderControllerInterfacecompObjs - Component Objects to remove.mode - Where to execute the remove. Choose ThreadAny by default.public void removeObjects(ComponentObject[] compObjs, RenderControllerInterface.ThreadMode mode)
compObjs - Component Objects to remove.mode - Where to execute the remove. Choose ThreadAny by default.public void removeObject(ComponentObject compObj, RenderControllerInterface.ThreadMode mode)
removeObject in interface RenderControllerInterfacecompObj - Component Object to remove.mode - Where to execute the remove. Choose ThreadAny by default.public void addShaderProgram(Shader shader)
addShaderProgram in interface RenderControllerInterfaceshader - The shader to add.protected void addPreBuiltShader(Shader shader)
public Shader getShader(java.lang.String name)
getShader in interface RenderControllerInterfacename - Name of the shader to returnpublic void removeShader(Shader shader)
removeShader in interface RenderControllerInterfacepublic void setClearColor(int color)
setClearColor in interface RenderControllerInterfacepublic double heightForMapScale(double scale)
heightForMapScale in interface RenderControllerInterfacepublic double currentMapZoom(Point2d geoCoord)
currentMapZoom in interface RenderControllerInterfacepublic double currentMapScale()
currentMapScale in interface RenderControllerInterfacepublic int[] getFrameBufferSize()
getFrameBufferSize in interface RenderControllerInterfacepublic void requestRender()
requestRender in interface RenderControllerInterfacepublic boolean setEGLContext(RenderControllerInterface.ContextInfo cInfo)
setEGLContext in interface RenderControllerInterfacepublic static RenderControllerInterface.ContextInfo getEGLContext()
public void processChangeSet(ChangeSet changes)
processChangeSet in interface RenderControllerInterfacepublic RenderControllerInterface.ContextInfo setupTempContext(RenderControllerInterface.ThreadMode threadMode)
setupTempContext in interface RenderControllerInterfacepublic void clearTempContext(RenderControllerInterface.ContextInfo cInfo)
clearTempContext in interface RenderControllerInterfacepublic void clearContext()
public android.graphics.Bitmap renderToBitmap()
public void setScene(Scene scene)
public void setupShadersNative()
public void setViewNative(View view)
public void setClearColor(float r,
float g,
float b,
float a)
protected boolean teardown()
protected boolean resize(int width,
int height)
protected void render()
protected boolean hasChanges()
public void setPerfInterval(int perfInterval)
public void addLight(com.mousebird.maply.DirectionalLight light)
public void replaceLights(com.mousebird.maply.DirectionalLight[] lights)
protected void renderToBitmapNative(android.graphics.Bitmap outBitmap)
public void finalize()
finalize in class java.lang.Object