diff options
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow/MasterImage.java')
-rw-r--r-- | src/com/android/gallery3d/filtershow/imageshow/MasterImage.java | 52 |
1 files changed, 43 insertions, 9 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java index 993f5d5ec..c4d5a0677 100644 --- a/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java +++ b/src/com/android/gallery3d/filtershow/imageshow/MasterImage.java @@ -19,15 +19,12 @@ package com.android.gallery3d.filtershow.imageshow; import android.graphics.*; import android.os.Handler; import android.os.Message; -import android.util.Log; -import android.util.Log; import com.android.gallery3d.filtershow.FilterShowActivity; import com.android.gallery3d.filtershow.HistoryAdapter; import com.android.gallery3d.filtershow.ImageStateAdapter; import com.android.gallery3d.filtershow.cache.*; import com.android.gallery3d.filtershow.filters.FilterRepresentation; -import com.android.gallery3d.filtershow.filters.FiltersManager; import com.android.gallery3d.filtershow.filters.ImageFilter; import com.android.gallery3d.filtershow.presets.ImagePreset; @@ -42,6 +39,8 @@ public class MasterImage implements RenderingRequestCaller { private static int sIconSeedSize = 128; private static float sHistoryPreviewSize = 128.0f; + private boolean mSupportsHighRes = false; + private ImageFilter mCurrentFilter = null; private ImagePreset mPreset = null; private ImagePreset mGeometryOnlyPreset = null; @@ -52,6 +51,7 @@ public class MasterImage implements RenderingRequestCaller { private Bitmap mGeometryOnlyBitmap = null; private Bitmap mFiltersOnlyBitmap = null; private Bitmap mPartialBitmap = null; + private Bitmap mHighresBitmap = null; private ImageLoader mLoader = null; private HistoryAdapter mHistory = null; @@ -96,6 +96,10 @@ public class MasterImage implements RenderingRequestCaller { return sMasterImage; } + public void setSupportsHighRes(boolean value) { + mSupportsHighRes = value; + } + public static void setIconSeedSize(int iconSeedSize) { sIconSeedSize = iconSeedSize; } @@ -253,6 +257,10 @@ public class MasterImage implements RenderingRequestCaller { return mPartialBitmap; } + public Bitmap getHighresImage() { + return mHighresBitmap; + } + public void notifyObservers() { for (ImageShow observer : mObservers) { observer.invalidate(); @@ -283,7 +291,6 @@ public class MasterImage implements RenderingRequestCaller { } } invalidatePreview(); - needsUpdateFullResPreview(); mActivity.enableSave(hasModifications()); } @@ -307,17 +314,27 @@ public class MasterImage implements RenderingRequestCaller { } } + public void invalidateHighresPreview() { + if (mHighresBitmap != null) { + mHighresBitmap = null; + notifyObservers(); + } + } + public void invalidatePreview() { mFilteredPreview.invalidate(); invalidatePartialPreview(); - needsUpdateFullResPreview(); + invalidateHighresPreview(); + needsUpdatePartialPreview(); + needsUpdateHighResPreview(); FilteringPipeline.getPipeline().updatePreviewBuffer(); } public void setImageShowSize(int w, int h) { if (mImageShowSize.x != w || mImageShowSize.y != h) { mImageShowSize.set(w, h); - needsUpdateFullResPreview(); + needsUpdatePartialPreview(); + needsUpdateHighResPreview(); } } @@ -345,7 +362,15 @@ public class MasterImage implements RenderingRequestCaller { return invert; } - public void needsUpdateFullResPreview() { + public void needsUpdateHighResPreview() { + if (!mSupportsHighRes) { + return; + } + RenderingRequest.post(null, mPreset, RenderingRequest.HIGHRES_RENDERING, this); + invalidateHighresPreview(); + } + + public void needsUpdatePartialPreview() { if (!mPreset.canDoPartialRendering()) { invalidatePartialPreview(); return; @@ -376,6 +401,11 @@ public class MasterImage implements RenderingRequestCaller { mPartialBitmap = request.getBitmap(); notifyObservers(); } + if (request.getType() == RenderingRequest.HIGHRES_RENDERING) { + mHighresBitmap = request.getBitmap(); + notifyObservers(); + } + if (request.getType() == RenderingRequest.ICON_RENDERING) { // History preview images ImagePreset preset = request.getOriginalImagePreset(); @@ -426,7 +456,7 @@ public class MasterImage implements RenderingRequestCaller { public void setTranslation(Point translation) { mTranslation.x = translation.x; mTranslation.y = translation.y; - needsUpdateFullResPreview(); + needsUpdatePartialPreview(); } public Point getOriginalTranslation() { @@ -441,7 +471,7 @@ public class MasterImage implements RenderingRequestCaller { public void resetTranslation() { mTranslation.x = 0; mTranslation.y = 0; - needsUpdateFullResPreview(); + needsUpdatePartialPreview(); } public Bitmap getThumbnailBitmap() { @@ -455,4 +485,8 @@ public class MasterImage implements RenderingRequestCaller { public void setMaxScaleFactor(float maxScaleFactor) { mMaxScaleFactor = maxScaleFactor; } + + public boolean supportsHighRes() { + return mSupportsHighRes; + } } |