diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-07-11 14:31:05 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-07-17 12:20:03 -0700 |
commit | 8ae70105463db78699ef3743fb24503ed8feb054 (patch) | |
tree | e5a8479f22d1beb097f43bd4e36922d2cf4bd56e /platform/android | |
parent | 1d15ed64dcf78daa9459247127857513608c18ad (diff) | |
download | qtlocation-mapboxgl-8ae70105463db78699ef3743fb24503ed8feb054.tar.gz |
[core][ios][android][macos] Use premultiplied image directly for RasterTile and ImageSource, un-premultiply in the shader for blending
Diffstat (limited to 'platform/android')
2 files changed, 23 insertions, 8 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java index aeb6751b99..1beba632b0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java @@ -1,10 +1,16 @@ package com.mapbox.mapboxsdk.testapp.activity.style; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; +import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngQuad; import com.mapbox.mapboxsdk.maps.MapView; @@ -106,17 +112,27 @@ public class AnimatedImageSourceActivity extends AppCompatActivity implements On private MapboxMap mapboxMap; private Handler handler; - private int[] drawables; + private Bitmap[] drawables; private int drawableIndex; + Bitmap getBitmap(int resourceId) { + Context context = Mapbox.getApplicationContext(); + Drawable drawable = ContextCompat.getDrawable(context, resourceId); + if (drawable instanceof BitmapDrawable) { + BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; + return bitmapDrawable.getBitmap(); + } + return null; + } + RefreshImageRunnable(MapboxMap mapboxMap, Handler handler) { this.mapboxMap = mapboxMap; this.handler = handler; - drawables = new int[4]; - drawables[0] = R.drawable.southeast_radar_0; - drawables[1] = R.drawable.southeast_radar_1; - drawables[2] = R.drawable.southeast_radar_2; - drawables[3] = R.drawable.southeast_radar_3; + drawables = new Bitmap[4]; + drawables[0] = getBitmap(R.drawable.southeast_radar_0); + drawables[1] = getBitmap(R.drawable.southeast_radar_1); + drawables[2] = getBitmap(R.drawable.southeast_radar_2); + drawables[3] = getBitmap(R.drawable.southeast_radar_3); drawableIndex = 1; } diff --git a/platform/android/src/style/sources/image_source.cpp b/platform/android/src/style/sources/image_source.cpp index cc7e1e7404..9c37d63d4b 100644 --- a/platform/android/src/style/sources/image_source.cpp +++ b/platform/android/src/style/sources/image_source.cpp @@ -40,8 +40,7 @@ namespace android { } void ImageSource::setImage(jni::JNIEnv& env, jni::Object<Bitmap> bitmap) { - UnassociatedImage image = util::unpremultiply(Bitmap::GetImage(env, bitmap)); - source.as<mbgl::style::ImageSource>()->setImage(std:: move(image)); + source.as<mbgl::style::ImageSource>()->setImage(Bitmap::GetImage(env, bitmap)); } jni::Class<ImageSource> ImageSource::javaClass; |