summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorAsheem Mamoowala <asheem.mamoowala@mapbox.com>2017-07-11 14:31:05 -0700
committerAsheem Mamoowala <asheem.mamoowala@mapbox.com>2017-07-17 12:20:03 -0700
commit8ae70105463db78699ef3743fb24503ed8feb054 (patch)
treee5a8479f22d1beb097f43bd4e36922d2cf4bd56e /platform
parent1d15ed64dcf78daa9459247127857513608c18ad (diff)
downloadqtlocation-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')
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java28
-rw-r--r--platform/android/src/style/sources/image_source.cpp3
-rw-r--r--platform/darwin/src/MGLImageSource.mm5
3 files changed, 25 insertions, 11 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;
diff --git a/platform/darwin/src/MGLImageSource.mm b/platform/darwin/src/MGLImageSource.mm
index 0a2dc2713f..351247e901 100644
--- a/platform/darwin/src/MGLImageSource.mm
+++ b/platform/darwin/src/MGLImageSource.mm
@@ -60,10 +60,9 @@
- (void)setImage:(MGLImage *)image {
if (image != nullptr) {
- mbgl::UnassociatedImage unassociatedImage = mbgl::util::unpremultiply(image.mgl_premultipliedImage);
- self.rawSource->setImage(std::move(unassociatedImage));
+ self.rawSource->setImage(image.mgl_premultipliedImage);
} else {
- self.rawSource->setImage(mbgl::UnassociatedImage({0,0}));
+ self.rawSource->setImage(mbgl::PremultipliedImage({0,0}));
}
_image = image;
}