package org.osm2world.viewer.view.debug;
import java.awt.Color;
import javax.media.opengl.GL;
import org.osm2world.core.GlobalValues;
import org.osm2world.core.target.common.rendering.Camera;
import org.osm2world.core.target.common.rendering.Projection;
import org.osm2world.core.target.jogl.JOGLTarget;
import org.osm2world.viewer.view.TextRenderer;
import org.osm2world.viewer.view.TextRendererFixedFunction;
import org.osm2world.viewer.view.TextRendererShader;
/**
* view that prints an explanation how to open OSM data.
* Only visible when no data is available.
*/
public class HelpView extends DebugView {
TextRenderer textRenderer;
@Override
public void reset() {
super.reset();
textRenderer.destroy();
textRenderer = null;
}
@Override
public boolean canBeUsed() {
return map == null;
}
@Override
public void renderTo(GL gl, Camera camera, Projection projection) {
if (!canBeUsed()) { return; }
if (textRenderer == null) {
if ("shader".equals(config.getString("joglImplementation"))) {
textRenderer = new TextRendererShader(gl.getGL2ES2());
} else {
textRenderer = new TextRendererFixedFunction();
}
}
//TODO: needs real panel measures; currently guesses 800x600
textRenderer.drawText("Use \"File\" > \"Open OSM file\" "
+ "to load a file containing OpenStreetMap data.",
50, 550, 800, 600, Color.LIGHT_GRAY);
textRenderer.drawText("This is OSM2World " + GlobalValues.VERSION_STRING,
50, 100, 800, 600, Color.LIGHT_GRAY);
textRenderer.drawText("Website: " + GlobalValues.OSM2WORLD_URI,
50, 75, 800, 600, Color.LIGHT_GRAY);
textRenderer.drawText("Usage instructions: " + GlobalValues.WIKI_URI,
50, 50, 800, 600, Color.LIGHT_GRAY);
}
@Override
protected void fillTarget(JOGLTarget target) {
//do nothing, has its own renderTo implementation
}
}