rename vtm-gdx-*

This commit is contained in:
Hannes Janetzek
2014-03-21 04:21:21 +01:00
parent f224486e70
commit 07b2d57b52
80 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oscim.gdx"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:allowBackup="true" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

1
vtm-android-gdx/assets Symbolic link
View File

@@ -0,0 +1 @@
../vtm/assets

View File

@@ -0,0 +1,107 @@
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.8.+'
}
}
repositories {
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}
apply plugin: 'android'
dependencies {
compile project(':vtm-gdx')
compile project(':vtm-themes')
compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
//natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
//natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
compile files("${rootDir}/vtm-ext-libs/native-libs.jar")
}
// task copyLibs(type: Copy) {
// from "$rootDir/vtm-ext-libs/vtm-gdx-android"
// into "libs"
// include '**/*'
// }
// tasks.withType(JavaCompile) { compileTask ->
// compileTask.dependsOn copyAssets }
android {
compileSdkVersion 19
buildToolsVersion '19.0.1'
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src', 'assets']
resources.srcDirs = ['src', 'assets']
aidl.srcDirs = ['src', 'assets']
renderscript.srcDirs = ['src', 'assets']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
// Including configurations into Eclipse
eclipse.classpath.plusConfigurations += configurations.compile
eclipse.jdt{
sourceCompatibility = 1.6
targetCompatibility = 1.6
}
// Configuring Eclipse classpath
eclipse.classpath {
//customizing the classes output directory:
defaultOutputDir = file('bin/classes')
file {
// Manipulation of the classpath XML before merging local
// and generated copies
beforeMerged { classpath ->
// Remove all source entries to avoid overlap
classpath.entries.removeAll() { c ->
c.kind == 'src'
}
}
// Direct manipulation of the generated classpath XML
withXml {
// Since non-default source directories are used
// they need to be manually added to the classpath XML
def node = it.asNode()
// Main source directory
node.appendNode('classpathentry kind="src" path="src"')
// Generated code directory
node.appendNode('classpathentry kind="src" path="gen"')
}
}
}
eclipse.project {
natures = ['com.android.ide.eclipse.adt.AndroidNature',
'org.eclipse.jdt.core.javanature']
buildCommand 'com.android.ide.eclipse.adt.ResourceManagerBuilder'
buildCommand 'com.android.ide.eclipse.adt.PreCompilerBuilder'
buildCommand 'com.android.ide.eclipse.adt.ApkBuilder'
linkedResource name: 'assets', type: '2',
locationUri: 'PARENT-1-PROJECT_LOC/vtm/assets'
// use extracted jni .so in eclipse
linkedResource name: 'libs', type: '2',
locationUri: 'PARENT-1-PROJECT_LOC/vtm-ext-libs/vtm-gdx-android'
}

View File

@@ -0,0 +1,11 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-19

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">VtmGdx</string>
</resources>

View File

@@ -0,0 +1,93 @@
/*
* Copyright 2013 Hannes Janetzek
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.android.canvas;
import java.io.InputStream;
import org.oscim.backend.GL20;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.opengl.GLUtils;
public class AndroidBitmap implements org.oscim.backend.canvas.Bitmap {
final Bitmap mBitmap;
public AndroidBitmap(InputStream inputStream) {
mBitmap = BitmapFactory.decodeStream(inputStream);
}
/**
* @param format ignored always ARGB8888
*/
public AndroidBitmap(int width, int height, int format) {
mBitmap = android.graphics.Bitmap
.createBitmap(width, height, android.graphics.Bitmap.Config.ARGB_8888);
}
AndroidBitmap(android.graphics.Bitmap bitmap) {
mBitmap = bitmap;
}
@Override
public int getWidth() {
return mBitmap.getWidth();
}
@Override
public int getHeight() {
return mBitmap.getHeight();
}
@Override
public int[] getPixels() {
int width = getWidth();
int height = getHeight();
int[] colors = new int[width * height];
mBitmap.getPixels(colors, 0, width, 0, 0, width, height);
return colors;
}
@Override
public void eraseColor(int color) {
//int a = android.graphics.Color.TRANSPARENT;
mBitmap.eraseColor(color);
}
@Override
public void uploadToTexture(boolean replace) {
int format = GLUtils.getInternalFormat(mBitmap);
int type = GLUtils.getType(mBitmap);
if (replace)
GLUtils.texSubImage2D(GL20.GL_TEXTURE_2D, 0, 0, 0, mBitmap, format,
type);
else
GLUtils.texImage2D(GL20.GL_TEXTURE_2D, 0, format, mBitmap, type, 0);
}
@Override
public void recycle() {
mBitmap.recycle();
}
@Override
public boolean isValid() {
return mBitmap != null;
}
}

View File

@@ -0,0 +1,47 @@
/*
* Copyright 2013 Hannes Janetzek
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.android.canvas;
import org.oscim.backend.canvas.Bitmap;
import org.oscim.backend.canvas.Canvas;
import org.oscim.backend.canvas.Paint;
public class AndroidCanvas implements Canvas {
final android.graphics.Canvas canvas;
public AndroidCanvas() {
this.canvas = new android.graphics.Canvas();
}
@Override
public void setBitmap(Bitmap bitmap) {
this.canvas.setBitmap(((AndroidBitmap) bitmap).mBitmap);
}
@Override
public void drawText(String string, float x, float y, Paint stroke) {
this.canvas.drawText(string, x, y, ((AndroidPaint) stroke).mPaint);
}
@Override
public void drawBitmap(Bitmap bitmap, float x, float y) {
this.canvas.drawBitmap(((AndroidBitmap) bitmap).mBitmap, x, y, null);
}
}

View File

@@ -0,0 +1,107 @@
/*
* Copyright 2010, 2011, 2012 mapsforge.org
* Copyright 2013 Hannes Janetzek
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.android.canvas;
import java.io.IOException;
import java.io.InputStream;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.canvas.Bitmap;
import org.oscim.backend.canvas.Canvas;
import org.oscim.backend.canvas.Paint;
import org.oscim.layers.marker.MarkerItem.HotspotPlace;
import org.oscim.layers.marker.MarkerSymbol;
import android.content.res.Resources;
import android.graphics.Bitmap.Config;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
public final class AndroidGraphics extends CanvasAdapter {
public static final AndroidGraphics INSTANCE = new AndroidGraphics();
// public static android.graphics.Bitmap getAndroidBitmap(Bitmap bitmap) {
// return ((AndroidBitmap) bitmap).bitmap;
// }
public static android.graphics.Paint getAndroidPaint(Paint paint) {
return ((AndroidPaint) paint).mPaint;
}
private AndroidGraphics() {
// do nothing
}
@Override
public Bitmap decodeBitmap(InputStream inputStream) {
return new AndroidBitmap(inputStream);
}
@Override
public Paint getPaint() {
return new AndroidPaint();
}
@Override
public Bitmap getBitmap(int width, int height, int format) {
return new AndroidBitmap(width, height, format);
}
@Override
public Canvas getCanvas() {
return new AndroidCanvas();
}
//-------------------------------------
public static Bitmap drawableToBitmap(Drawable drawable) {
if (drawable instanceof BitmapDrawable) {
return new AndroidBitmap(((BitmapDrawable) drawable).getBitmap());
}
android.graphics.Bitmap bitmap = android.graphics.Bitmap
.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
Config.ARGB_8888);
android.graphics.Canvas canvas = new android.graphics.Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return new AndroidBitmap(bitmap);
}
public static MarkerSymbol makeMarker(Resources res, int id, HotspotPlace place) {
if (place == null)
place = HotspotPlace.CENTER;
Drawable drawable = res.getDrawable(id);
return new MarkerSymbol(drawableToBitmap(drawable), place);
}
@Override
public Bitmap loadBitmapAsset(String fileName) {
try {
return createBitmap(fileName);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

View File

@@ -0,0 +1,167 @@
/*
* Copyright 2010, 2011, 2012 mapsforge.org
* Copyright 2013 Hannes Janetzek
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.android.canvas;
import org.oscim.backend.canvas.Paint;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapShader;
import android.graphics.DashPathEffect;
import android.graphics.Paint.FontMetrics;
import android.graphics.PathEffect;
import android.graphics.Rect;
import android.graphics.Shader;
import android.graphics.Shader.TileMode;
import android.graphics.Typeface;
class AndroidPaint implements Paint {
private static int getStyle(org.oscim.backend.canvas.Paint.FontStyle fontStyle) {
switch (fontStyle) {
case BOLD:
return 1;
case BOLD_ITALIC:
return 3;
case ITALIC:
return 2;
case NORMAL:
return 0;
}
throw new IllegalArgumentException("unknown font style: " + fontStyle);
}
private static Typeface getTypeface(org.oscim.backend.canvas.Paint.FontFamily fontFamily) {
switch (fontFamily) {
case DEFAULT:
return Typeface.DEFAULT;
case DEFAULT_BOLD:
return Typeface.DEFAULT_BOLD;
case MONOSPACE:
return Typeface.MONOSPACE;
case SANS_SERIF:
return Typeface.SANS_SERIF;
case SERIF:
return Typeface.SERIF;
}
throw new IllegalArgumentException("unknown font family: " + fontFamily);
}
final android.graphics.Paint mPaint;
AndroidPaint() {
mPaint = new android.graphics.Paint(android.graphics.Paint.ANTI_ALIAS_FLAG);
}
@Override
public int getColor() {
return mPaint.getColor();
}
@Override
public int getTextHeight(String text) {
Rect rect = new Rect();
mPaint.getTextBounds(text, 0, text.length(), rect);
return rect.height();
}
@Override
public int getTextWidth(String text) {
Rect rect = new Rect();
mPaint.getTextBounds(text, 0, text.length(), rect);
return rect.width();
}
@Override
public void setBitmapShader(org.oscim.backend.canvas.Bitmap bitmap) {
if (bitmap == null) {
return;
}
android.graphics.Bitmap androidBitmap = android.graphics.Bitmap
.createBitmap(bitmap.getPixels(), bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Shader shader = new BitmapShader(androidBitmap, TileMode.REPEAT,
TileMode.REPEAT);
mPaint.setShader(shader);
}
@Override
public void setColor(int color) {
mPaint.setColor(color);
}
@Override
public void setDashPathEffect(float[] strokeDasharray) {
PathEffect pathEffect = new DashPathEffect(strokeDasharray, 0);
mPaint.setPathEffect(pathEffect);
}
@Override
public void setStrokeCap(Cap cap) {
android.graphics.Paint.Cap androidCap = android.graphics.Paint.Cap
.valueOf(cap.name());
mPaint.setStrokeCap(androidCap);
}
@Override
public void setStrokeWidth(float width) {
mPaint.setStrokeWidth(width);
}
@Override
public void setStyle(Style style) {
mPaint.setStyle(android.graphics.Paint.Style.valueOf(style.name()));
}
@Override
public void setTextAlign(Align align) {
//mPaint.setTextAlign(android.graphics.Paint.Align.valueOf(align.name()));
}
@Override
public void setTextSize(float textSize) {
mPaint.setTextSize(textSize);
}
@Override
public void setTypeface(FontFamily fontFamily, FontStyle fontStyle) {
Typeface typeface = Typeface.create(getTypeface(fontFamily),
getStyle(fontStyle));
mPaint.setTypeface(typeface);
}
@Override
public float measureText(String text) {
return mPaint.measureText(text);
}
@Override
public float getFontHeight() {
FontMetrics fm = mPaint.getFontMetrics();
return (float) Math.ceil(Math.abs(fm.bottom) + Math.abs(fm.top));
}
@Override
public float getFontDescent() {
FontMetrics fm = mPaint.getFontMetrics();
// //fontDescent = (float) Math.ceil(Math.abs(fm.descent));
return Math.abs(fm.bottom);
}
}

View File

@@ -0,0 +1,64 @@
/*
* Copyright 2013 Hannes Janetzek
*
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.oscim.gdx;
import org.oscim.android.canvas.AndroidGraphics;
import org.oscim.backend.CanvasAdapter;
import org.oscim.backend.GL20;
import org.oscim.backend.GLAdapter;
import org.oscim.core.Tile;
import org.oscim.tiling.TileSource;
import org.oscim.tiling.source.oscimap4.OSciMap4TileSource;
import android.os.Bundle;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.badlogic.gdx.backends.android.AndroidGL20;
import com.badlogic.gdx.utils.SharedLibraryLoader;
public class MainActivity extends AndroidApplication {
private final class AndroidGLAdapter extends AndroidGL20 implements GL20 {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CanvasAdapter.g = AndroidGraphics.INSTANCE;
GLAdapter.g = new AndroidGLAdapter();
// TODO make this dpi dependent
Tile.SIZE = 400;
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
//cfg.useGL20 = true;
new SharedLibraryLoader().load("vtm-jni");
initialize(new GdxMapAndroid(), cfg);
}
class GdxMapAndroid extends GdxMap {
@Override
public void createLayers() {
TileSource ts = new OSciMap4TileSource();
initDefaultLayers(ts, true, true, true);
}
}
}