Always use "High Quality Filters" when filter is B&W or Inverted....

This commit is contained in:
Zukero
2018-09-29 10:11:06 +02:00
parent 8dcf2df43b
commit cdd59b5615
3 changed files with 31 additions and 17 deletions

View File

@@ -20,7 +20,7 @@ import android.view.WindowManager;
public final class AndorsTrailApplication extends Application {
public static final boolean DEVELOPMENT_DEBUGRESOURCES = true;
public static final boolean DEVELOPMENT_DEBUGRESOURCES = false;
public static final boolean DEVELOPMENT_FORCE_STARTNEWGAME = false;
public static final boolean DEVELOPMENT_FORCE_CONTINUEGAME = false;
public static final boolean DEVELOPMENT_DEBUGBUTTONS = true;

View File

@@ -88,9 +88,19 @@ public final class LayeredTileMap {
return false;
}
public void setColorFilter(Paint mPaint, Paint alternateColorFilterPaint, boolean highQuality) {
if (highQuality) mPaint.setColorFilter(getColorFilter());
else setColor(alternateColorFilterPaint);
public boolean setColorFilter(Paint mPaint, Paint alternateColorFilterPaint, boolean highQuality) {
if (highQuality) {
mPaint.setColorFilter(getColorFilter());
return false;
}
else {
if (setColor(alternateColorFilterPaint)) {
return true;
} else {
mPaint.setColorFilter(getColorFilter());
return false;
}
}
}
public ColorFilter getColorFilter() {
@@ -122,28 +132,31 @@ public final class LayeredTileMap {
}
public void setColor(Paint p) {
public boolean setColor(Paint p) {
if (colorFilter == null) {
p.setARGB(0, 0, 0, 0);
return;
return true;
}
switch (colorFilter) {
case black20:
p.setARGB(51, 0, 0, 0); return;
p.setARGB(51, 0, 0, 0); return true;
case black40:
p.setARGB(102, 0, 0, 0); return;
p.setARGB(102, 0, 0, 0); return true;
case black60:
p.setARGB(153, 0, 0, 0); return;
p.setARGB(153, 0, 0, 0); return true;
case black80:
p.setARGB(204, 0, 0, 0); return;
p.setARGB(204, 0, 0, 0); return true;
case redtint:
p.setARGB(50, 200, 0, 0); return;
p.setARGB(50, 200, 0, 0); return true;
case greentint:
p.setARGB(50, 0, 200, 0); return;
p.setARGB(50, 0, 200, 0); return true;
case bluetint:
p.setARGB(50, 0, 0, 200); return;
p.setARGB(50, 0, 0, 200); return true;
case bw:
case invert:
return false;
default:
p.setARGB(0, 0, 0, 0); return;
p.setARGB(0, 0, 0, 0); return true;
}

View File

@@ -105,6 +105,7 @@ public final class MainView extends SurfaceView
private int movingSprites = 0;
private SpriteMoveAnimationHandler movingSpritesRedrawTick = new SpriteMoveAnimationHandler(this);
private Paint alternateColorFilterPaint = new Paint();
private boolean useAlternateColorFilterPaint = false;
public MainView(Context context, AttributeSet attr) {
super(context, attr);
@@ -386,7 +387,7 @@ public final class MainView extends SurfaceView
doDrawRect_Ground(canvas, area);
doDrawRect_Objects(canvas, area);
doDrawRect_Above(canvas, area);
if (!preferences.highQualityFilters) {
if (!useAlternateColorFilterPaint) {
applyAlternateFilter(canvas, area);
}
}
@@ -526,7 +527,7 @@ public final class MainView extends SurfaceView
,(surfaceSize.height - tileSize * visibleNumberOfTiles.height) / 2
);
currentTileMap.setColorFilter(this.mPaint, this.alternateColorFilterPaint, preferences.highQualityFilters);
useAlternateColorFilterPaint = currentTileMap.setColorFilter(this.mPaint, this.alternateColorFilterPaint, preferences.highQualityFilters);
}
// touchedTile = null;
@@ -770,7 +771,7 @@ public final class MainView extends SurfaceView
@Override
public void onMapTilesChanged(PredefinedMap map, LayeredTileMap tileMap) {
if (map != currentMap) return;
currentTileMap.setColorFilter(this.mPaint, this.alternateColorFilterPaint, preferences.highQualityFilters);
useAlternateColorFilterPaint = currentTileMap.setColorFilter(this.mPaint, this.alternateColorFilterPaint, preferences.highQualityFilters);
redrawAll(RedrawAllDebugReason.MapChanged);
}