android: Replace old buttons with vectors

This commit is contained in:
german77 2023-03-04 12:29:19 -06:00 committed by bunnei
parent 834d53fbbf
commit 7dd02363a3
149 changed files with 612 additions and 70 deletions

View File

@ -15,7 +15,9 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.graphics.drawable.VectorDrawable;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEvent; import android.hardware.SensorEvent;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
@ -29,6 +31,8 @@ import android.view.SurfaceView;
import android.view.View; import android.view.View;
import android.view.View.OnTouchListener; import android.view.View.OnTouchListener;
import androidx.core.content.ContextCompat;
import org.yuzu.yuzu_emu.NativeLibrary; import org.yuzu.yuzu_emu.NativeLibrary;
import org.yuzu.yuzu_emu.NativeLibrary.ButtonType; import org.yuzu.yuzu_emu.NativeLibrary.ButtonType;
import org.yuzu.yuzu_emu.NativeLibrary.StickType; import org.yuzu.yuzu_emu.NativeLibrary.StickType;
@ -103,21 +107,28 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
/** /**
* Resizes a {@link Bitmap} by a given scale factor * Resizes a {@link Bitmap} by a given scale factor
* *
* @param context The current {@link Context} * @param vectorDrawable The {@link Bitmap} to scale.
* @param bitmap The {@link Bitmap} to scale.
* @param scale The scale factor for the bitmap. * @param scale The scale factor for the bitmap.
* @return The scaled {@link Bitmap} * @return The scaled {@link Bitmap}
*/ */
public static Bitmap resizeBitmap(Context context, Bitmap bitmap, float scale) { private static Bitmap getBitmap(VectorDrawable vectorDrawable, float scale) {
// Determine the button size based on the smaller screen dimension. Bitmap bitmap = Bitmap.createBitmap((int) (vectorDrawable.getIntrinsicWidth() * scale),
// This makes sure the buttons are the same size in both portrait and landscape. (int) (vectorDrawable.getIntrinsicHeight() * scale), Bitmap.Config.ARGB_8888);
DisplayMetrics dm = context.getResources().getDisplayMetrics(); Canvas canvas = new Canvas(bitmap);
int minDimension = Math.min(dm.widthPixels, dm.heightPixels); vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
return bitmap;
}
return Bitmap.createScaledBitmap(bitmap, private static Bitmap getBitmap(Context context, int drawableId, float scale) {
(int) (minDimension * scale), Drawable drawable = ContextCompat.getDrawable(context, drawableId);
(int) (minDimension * scale), if (drawable instanceof BitmapDrawable) {
true); return BitmapFactory.decodeResource(context.getResources(), drawableId);
} else if (drawable instanceof VectorDrawable) {
return getBitmap((VectorDrawable) drawable, scale);
} else {
throw new IllegalArgumentException("unsupported drawable type");
}
} }
/** /**
@ -166,16 +177,16 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
case ButtonType.BUTTON_CAPTURE: case ButtonType.BUTTON_CAPTURE:
case ButtonType.BUTTON_PLUS: case ButtonType.BUTTON_PLUS:
case ButtonType.BUTTON_MINUS: case ButtonType.BUTTON_MINUS:
scale = 0.08f; scale = 0.35f;
break; break;
case ButtonType.TRIGGER_L: case ButtonType.TRIGGER_L:
case ButtonType.TRIGGER_R: case ButtonType.TRIGGER_R:
case ButtonType.TRIGGER_ZL: case ButtonType.TRIGGER_ZL:
case ButtonType.TRIGGER_ZR: case ButtonType.TRIGGER_ZR:
scale = 0.18f; scale = 0.38f;
break; break;
default: default:
scale = 0.11f; scale = 0.40f;
break; break;
} }
@ -183,10 +194,8 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
scale /= 100; scale /= 100;
// Initialize the InputOverlayDrawableButton. // Initialize the InputOverlayDrawableButton.
final Bitmap defaultStateBitmap = final Bitmap defaultStateBitmap = getBitmap(context, defaultResId, scale);
resizeBitmap(context, BitmapFactory.decodeResource(res, defaultResId), scale); final Bitmap pressedStateBitmap = getBitmap(context, pressedResId, scale);
final Bitmap pressedStateBitmap =
resizeBitmap(context, BitmapFactory.decodeResource(res, pressedResId), scale);
final InputOverlayDrawableButton overlayDrawable = final InputOverlayDrawableButton overlayDrawable =
new InputOverlayDrawableButton(res, defaultStateBitmap, pressedStateBitmap, buttonId); new InputOverlayDrawableButton(res, defaultStateBitmap, pressedStateBitmap, buttonId);
@ -243,19 +252,16 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context); final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context);
// Decide scale based on button ID and user preference // Decide scale based on button ID and user preference
float scale = 0.23f; float scale = 0.40f;
scale *= (sPrefs.getInt("controlScale", 50) + 50); scale *= (sPrefs.getInt("controlScale", 50) + 50);
scale /= 100; scale /= 100;
// Initialize the InputOverlayDrawableDpad. // Initialize the InputOverlayDrawableDpad.
final Bitmap defaultStateBitmap = final Bitmap defaultStateBitmap = getBitmap(context, defaultResId, scale);
resizeBitmap(context, BitmapFactory.decodeResource(res, defaultResId), scale); final Bitmap pressedOneDirectionStateBitmap = getBitmap(context, pressedOneDirectionResId,
final Bitmap pressedOneDirectionStateBitmap =
resizeBitmap(context, BitmapFactory.decodeResource(res, pressedOneDirectionResId),
scale); scale);
final Bitmap pressedTwoDirectionsStateBitmap = final Bitmap pressedTwoDirectionsStateBitmap = getBitmap(context, pressedTwoDirectionsResId,
resizeBitmap(context, BitmapFactory.decodeResource(res, pressedTwoDirectionsResId),
scale); scale);
final InputOverlayDrawableDpad overlayDrawable = final InputOverlayDrawableDpad overlayDrawable =
new InputOverlayDrawableDpad(res, defaultStateBitmap, new InputOverlayDrawableDpad(res, defaultStateBitmap,
@ -300,15 +306,14 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context); final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(context);
// Decide scale based on user preference // Decide scale based on user preference
float scale = 0.275f; float scale = 0.35f;
scale *= (sPrefs.getInt("controlScale", 50) + 50); scale *= (sPrefs.getInt("controlScale", 50) + 50);
scale /= 100; scale /= 100;
// Initialize the InputOverlayDrawableJoystick. // Initialize the InputOverlayDrawableJoystick.
final Bitmap bitmapOuter = final Bitmap bitmapOuter = getBitmap(context, resOuter, scale);
resizeBitmap(context, BitmapFactory.decodeResource(res, resOuter), scale); final Bitmap bitmapInnerDefault = getBitmap(context, defaultResInner, 1.0f);
final Bitmap bitmapInnerDefault = BitmapFactory.decodeResource(res, defaultResInner); final Bitmap bitmapInnerPressed = getBitmap(context, pressedResInner, 1.0f);
final Bitmap bitmapInnerPressed = BitmapFactory.decodeResource(res, pressedResInner);
// The X and Y coordinates of the InputOverlayDrawableButton on the InputOverlay. // The X and Y coordinates of the InputOverlayDrawableButton on the InputOverlay.
// These were set in the input overlay configuration menu. // These were set in the input overlay configuration menu.
@ -320,7 +325,7 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
// Now set the bounds for the InputOverlayDrawableJoystick. // Now set the bounds for the InputOverlayDrawableJoystick.
// This will dictate where on the screen (and the what the size) the InputOverlayDrawableJoystick will be. // This will dictate where on the screen (and the what the size) the InputOverlayDrawableJoystick will be.
int outerSize = bitmapOuter.getWidth(); int outerSize = bitmapOuter.getWidth();
Rect outerRect = new Rect(drawableX, drawableY, drawableX + (int) (outerSize / outerScale), drawableY + (int) (outerSize / outerScale)); Rect outerRect = new Rect(drawableX, drawableY, drawableX + outerSize, drawableY + outerSize);
Rect innerRect = new Rect(0, 0, (int) (outerSize / outerScale), (int) (outerSize / outerScale)); Rect innerRect = new Rect(0, 0, (int) (outerSize / outerScale), (int) (outerSize / outerScale));
// Send the drawableId to the joystick so it can be referenced when saving control position. // Send the drawableId to the joystick so it can be referenced when saving control position.
@ -476,68 +481,68 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener,
private void addOverlayControls(String orientation) { private void addOverlayControls(String orientation) {
if (mPreferences.getBoolean("buttonToggle0", true)) { if (mPreferences.getBoolean("buttonToggle0", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_a, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_a,
R.drawable.button_a_pressed, ButtonType.BUTTON_A, orientation)); R.drawable.facebutton_a_depressed, ButtonType.BUTTON_A, orientation));
} }
if (mPreferences.getBoolean("buttonToggle1", true)) { if (mPreferences.getBoolean("buttonToggle1", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_b, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_b,
R.drawable.button_b_pressed, ButtonType.BUTTON_B, orientation)); R.drawable.facebutton_b_depressed, ButtonType.BUTTON_B, orientation));
} }
if (mPreferences.getBoolean("buttonToggle2", true)) { if (mPreferences.getBoolean("buttonToggle2", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_x, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_x,
R.drawable.button_x_pressed, ButtonType.BUTTON_X, orientation)); R.drawable.facebutton_x_depressed, ButtonType.BUTTON_X, orientation));
} }
if (mPreferences.getBoolean("buttonToggle3", true)) { if (mPreferences.getBoolean("buttonToggle3", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_y, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_y,
R.drawable.button_y_pressed, ButtonType.BUTTON_Y, orientation)); R.drawable.facebutton_y_depressed, ButtonType.BUTTON_Y, orientation));
} }
if (mPreferences.getBoolean("buttonToggle4", true)) { if (mPreferences.getBoolean("buttonToggle4", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_l, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.l_shoulder,
R.drawable.button_l_pressed, ButtonType.TRIGGER_L, orientation)); R.drawable.l_shoulder_depressed, ButtonType.TRIGGER_L, orientation));
} }
if (mPreferences.getBoolean("buttonToggle5", true)) { if (mPreferences.getBoolean("buttonToggle5", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_r, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.r_shoulder,
R.drawable.button_r_pressed, ButtonType.TRIGGER_R, orientation)); R.drawable.r_shoulder_depressed, ButtonType.TRIGGER_R, orientation));
} }
if (mPreferences.getBoolean("buttonToggle6", true)) { if (mPreferences.getBoolean("buttonToggle6", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_zl, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.zl_trigger,
R.drawable.button_zl_pressed, ButtonType.TRIGGER_ZL, orientation)); R.drawable.zl_trigger_depressed, ButtonType.TRIGGER_ZL, orientation));
} }
if (mPreferences.getBoolean("buttonToggle7", true)) { if (mPreferences.getBoolean("buttonToggle7", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_zr, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.zr_trigger,
R.drawable.button_zr_pressed, ButtonType.TRIGGER_ZR, orientation)); R.drawable.zr_trigger_depressed, ButtonType.TRIGGER_ZR, orientation));
} }
if (mPreferences.getBoolean("buttonToggle8", true)) { if (mPreferences.getBoolean("buttonToggle8", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_start, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_plus,
R.drawable.button_start_pressed, ButtonType.BUTTON_PLUS, orientation)); R.drawable.facebutton_plus_depressed, ButtonType.BUTTON_PLUS, orientation));
} }
if (mPreferences.getBoolean("buttonToggle9", true)) { if (mPreferences.getBoolean("buttonToggle9", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_select, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_minus,
R.drawable.button_select_pressed, ButtonType.BUTTON_MINUS, orientation)); R.drawable.facebutton_minus_depressed, ButtonType.BUTTON_MINUS, orientation));
} }
if (mPreferences.getBoolean("buttonToggle10", true)) { if (mPreferences.getBoolean("buttonToggle10", true)) {
overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.dpad, overlayDpads.add(initializeOverlayDpad(getContext(), R.drawable.dpad_standard,
R.drawable.dpad_pressed_one_direction, R.drawable.dpad_standard_cardinal_depressed,
R.drawable.dpad_pressed_two_directions, R.drawable.dpad_standard_diagonal_depressed,
ButtonType.DPAD_UP, ButtonType.DPAD_DOWN, ButtonType.DPAD_UP, ButtonType.DPAD_DOWN,
ButtonType.DPAD_LEFT, ButtonType.DPAD_RIGHT, orientation)); ButtonType.DPAD_LEFT, ButtonType.DPAD_RIGHT, orientation));
} }
if (mPreferences.getBoolean("buttonToggle11", true)) { if (mPreferences.getBoolean("buttonToggle11", true)) {
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_main_range, overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.joystick_range,
R.drawable.stick_main, R.drawable.stick_main_pressed, R.drawable.joystick, R.drawable.joystick_depressed,
StickType.STICK_L, ButtonType.STICK_L, orientation)); StickType.STICK_L, ButtonType.STICK_L, orientation));
} }
if (mPreferences.getBoolean("buttonToggle12", true)) { if (mPreferences.getBoolean("buttonToggle12", true)) {
overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.stick_main_range, overlayJoysticks.add(initializeOverlayJoystick(getContext(), R.drawable.joystick_range,
R.drawable.stick_main, R.drawable.stick_main_pressed, StickType.STICK_R, ButtonType.STICK_R, orientation)); R.drawable.joystick, R.drawable.joystick_depressed, StickType.STICK_R, ButtonType.STICK_R, orientation));
} }
if (mPreferences.getBoolean("buttonToggle13", true)) { if (mPreferences.getBoolean("buttonToggle13", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_a, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_home,
R.drawable.button_a, ButtonType.BUTTON_HOME, orientation)); R.drawable.facebutton_home_depressed, ButtonType.BUTTON_HOME, orientation));
} }
if (mPreferences.getBoolean("buttonToggle14", true)) { if (mPreferences.getBoolean("buttonToggle14", true)) {
overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.button_a, overlayButtons.add(initializeOverlayButton(getContext(), R.drawable.facebutton_screenshot,
R.drawable.button_a, ButtonType.BUTTON_CAPTURE, orientation)); R.drawable.facebutton_screenshot_depressed, ButtonType.BUTTON_CAPTURE, orientation));
} }
} }

View File

@ -178,7 +178,7 @@ public final class InputOverlayDrawableDpad {
// Pressed up right // Pressed up right
if (mUpButtonState && !mLeftButtonState && mRightButtonState) { if (mUpButtonState && !mLeftButtonState && mRightButtonState) {
canvas.save(); canvas.save();
canvas.rotate(180, px, py); canvas.rotate(90, px, py);
mPressedTwoDirectionsStateBitmap.draw(canvas); mPressedTwoDirectionsStateBitmap.draw(canvas);
canvas.restore(); canvas.restore();
return; return;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Some files were not shown because too many files have changed in this diff Show More