import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.support.v8.renderscript.Allocation;
-import android.support.v8.renderscript.RenderScript;
+import android.renderscript.Allocation;
+import android.renderscript.RenderScript;
import android.util.Log;
+import com.android.gallery3d.filtershow.cache.BitmapCache;
import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.filters.FiltersManager;
if (bitmap == null) {
return;
}
- bitmap = mEnvironment.getBitmapCopy(bitmap);
+ bitmap = mEnvironment.getBitmapCopy(bitmap, BitmapCache.HIGHRES);
bitmap = preset.applyGeometry(bitmap, mEnvironment);
mEnvironment.setQuality(FilterEnvironment.QUALITY_PREVIEW);
if (bitmap == null) {
return;
}
- bitmap = mEnvironment.getBitmapCopy(bitmap);
+ bitmap = mEnvironment.getBitmapCopy(bitmap, BitmapCache.GEOMETRY);
bitmap = preset.applyGeometry(bitmap, mEnvironment);
if (!mEnvironment.needsStop()) {
request.setBitmap(bitmap);
if (bitmap == null) {
return;
}
- bitmap = mEnvironment.getBitmapCopy(bitmap);
+ bitmap = mEnvironment.getBitmapCopy(bitmap, BitmapCache.FILTERS);
bitmap = preset.apply(bitmap, mEnvironment);
if (!mEnvironment.needsStop()) {
request.setBitmap(bitmap);
if (request.getType() == RenderingRequest.PARTIAL_RENDERING) {
MasterImage master = MasterImage.getImage();
bitmap = ImageLoader.getScaleOneImageForPreset(master.getActivity(),
- mEnvironment,
+ mEnvironment.getBimapCache(),
master.getUri(), request.getBounds(),
request.getDestination());
if (bitmap == null) {
source = MasterImage.getImage().getLargeThumbnailBitmap();
}
if (iconBounds != null) {
- bitmap = mEnvironment.getBitmap(iconBounds.width(), iconBounds.height());
+ bitmap = mEnvironment.getBitmap(iconBounds.width(),
+ iconBounds.height(), BitmapCache.ICON);
Canvas canvas = new Canvas(bitmap);
Matrix m = new Matrix();
float minSize = Math.min(source.getWidth(), source.getHeight());
m.postTranslate(dx, dy);
canvas.drawBitmap(source, m, new Paint(Paint.FILTER_BITMAP_FLAG));
} else {
- bitmap = mEnvironment.getBitmapCopy(source);
+ bitmap = mEnvironment.getBitmapCopy(source, BitmapCache.ICON);
}
}
Bitmap bmp = preset.apply(bitmap, mEnvironment);
Vector<FilterRepresentation> filters = preset.getFilters();
Bitmap result = mCachedProcessing.process(mOriginalBitmap, filters, mEnvironment);
buffer.setProducer(result);
- }
-
- public synchronized void computeOld(SharedBuffer buffer, ImagePreset preset, int type) {
- synchronized (CachingPipeline.class) {
- if (getRenderScriptContext() == null) {
- return;
- }
- if (DEBUG) {
- Log.v(LOGTAG, "compute preset " + preset);
- preset.showFilters();
- }
-
- String thread = Thread.currentThread().getName();
- long time = System.currentTimeMillis();
- setupEnvironment(preset, false);
- mFiltersManager.freeFilterResources(preset);
-
- Bitmap resizedOriginalBitmap = mResizedOriginalBitmap;
- if (updateOriginalAllocation(preset) || buffer.getProducer() == null) {
- resizedOriginalBitmap = mResizedOriginalBitmap;
- buffer.setProducer(resizedOriginalBitmap);
- mEnvironment.cache(buffer.getProducer());
- }
-
- Bitmap bitmap = buffer.getProducer().getBitmap();
- long time2 = System.currentTimeMillis();
-
- if (bitmap == null || (bitmap.getWidth() != resizedOriginalBitmap.getWidth())
- || (bitmap.getHeight() != resizedOriginalBitmap.getHeight())) {
- mEnvironment.cache(buffer.getProducer());
- buffer.setProducer(resizedOriginalBitmap);
- bitmap = buffer.getProducer().getBitmap();
- }
- mOriginalAllocation.copyTo(bitmap);
-
- Bitmap tmpbitmap = preset.apply(bitmap, mEnvironment);
- if (tmpbitmap != bitmap) {
- mEnvironment.cache(buffer.getProducer());
- buffer.setProducer(tmpbitmap);
- }
-
- mFiltersManager.freeFilterResources(preset);
-
- time = System.currentTimeMillis() - time;
- time2 = System.currentTimeMillis() - time2;
- if (DEBUG) {
- Log.v(LOGTAG, "Applying type " + type + " filters to bitmap "
- + bitmap + " (" + bitmap.getWidth() + " x " + bitmap.getHeight()
- + ") took " + time + " ms, " + time2 + " ms for the filter, on thread " + thread);
- }
- }
+ mEnvironment.cache(result);
}
public boolean needsRepaint() {