diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-01-14 13:57:18 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-16 13:18:30 +0100 |
commit | 0f291b37ca5dd0b86fc2324756761a163727e355 (patch) | |
tree | 9b9b529b201edf6dea2ad50298638ee1e760e897 /android | |
parent | c4cdb699e427c71617daff9ca780b0b13a9fc3e6 (diff) |
android: remove CheckerboardImage class as it is not needed
Change-Id: I937eac9e613695490c8617aac85575f5e6fe290b
Diffstat (limited to 'android')
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CheckerboardImage.java | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CheckerboardImage.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CheckerboardImage.java deleted file mode 100644 index 13437330818c..000000000000 --- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/CheckerboardImage.java +++ /dev/null @@ -1,146 +0,0 @@ -/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*- - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.gecko.gfx; - -import android.graphics.Color; - -import org.libreoffice.kit.DirectBufferAllocator; - -import java.nio.ByteBuffer; -import java.nio.ShortBuffer; -import java.util.Arrays; - -/** A Cairo image that displays a tinted checkerboard. */ -public class CheckerboardImage extends CairoImage { - // The width and height of the checkerboard tile. - private static final int SIZE = 16; - // The pixel format of the checkerboard tile. - private static final int FORMAT = CairoImage.FORMAT_RGB16_565; - // The color to mix in to tint the background color. - private static final int TINT_COLOR = Color.GRAY; - // The amount to mix in. - private static final float TINT_OPACITY = 0.4f; - - private ByteBuffer mBuffer; - private int mMainColor; - private boolean mShowChecks; - - /** Creates a new checkerboard image. */ - public CheckerboardImage() { - int bpp = CairoUtils.bitsPerPixelForCairoFormat(FORMAT); - mBuffer = DirectBufferAllocator.allocate(SIZE * SIZE * bpp / 8); - update(true, Color.WHITE); - } - - /** Returns the current color of the checkerboard. */ - public int getColor() { - return mMainColor; - } - - /** Returns whether or not we are currently showing checks on the checkerboard. */ - public boolean getShowChecks() { - return mShowChecks; - } - - /** Updates the checkerboard image. If showChecks is true, then create a - checkerboard image that is tinted to the color. Otherwise just return a flat - image of the color. */ - public void update(boolean showChecks, int color) { - mMainColor = color; - mShowChecks = showChecks; - - short mainColor16 = convertTo16Bit(mMainColor); - - mBuffer.rewind(); - ShortBuffer shortBuffer = mBuffer.asShortBuffer(); - - if (!mShowChecks) { - short color16 = convertTo16Bit(mMainColor); - short[] fillBuffer = new short[SIZE]; - Arrays.fill(fillBuffer, color16); - - for (int i = 0; i < SIZE; i++) { - shortBuffer.put(fillBuffer); - } - - return; - } - - short tintColor16 = convertTo16Bit(tint(mMainColor)); - - short[] mainPattern = new short[SIZE / 2], tintPattern = new short[SIZE / 2]; - Arrays.fill(mainPattern, mainColor16); - Arrays.fill(tintPattern, tintColor16); - - // The checkerboard pattern looks like this: - // - // +---+---+ - // | N | T | N = normal - // +---+---+ T = tinted - // | T | N | - // +---+---+ - - for (int i = 0; i < SIZE / 2; i++) { - shortBuffer.put(mainPattern); - shortBuffer.put(tintPattern); - } - for (int i = SIZE / 2; i < SIZE; i++) { - shortBuffer.put(tintPattern); - shortBuffer.put(mainPattern); - } - } - - // Tints the given color appropriately and returns the tinted color. - private int tint(int color) { - float negTintOpacity = 1.0f - TINT_OPACITY; - float r = Color.red(color) * negTintOpacity + Color.red(TINT_COLOR) * TINT_OPACITY; - float g = Color.green(color) * negTintOpacity + Color.green(TINT_COLOR) * TINT_OPACITY; - float b = Color.blue(color) * negTintOpacity + Color.blue(TINT_COLOR) * TINT_OPACITY; - return Color.rgb(Math.round(r), Math.round(g), Math.round(b)); - } - - // Converts a 32-bit ARGB color to 16-bit R5G6B5, truncating values and discarding the alpha - // channel. - private short convertTo16Bit(int color) { - int r = Color.red(color) >> 3, g = Color.green(color) >> 2, b = Color.blue(color) >> 3; - int c = ((r << 11) | (g << 5) | b); - // Swap endianness. - return (short)((c >> 8) | ((c & 0xff) << 8)); - } - - @Override - protected void finalize() throws Throwable { - try { - if (mBuffer != null) { - DirectBufferAllocator.free(mBuffer); - mBuffer = null; - } - } finally { - super.finalize(); - } - } - - @Override - public ByteBuffer getBuffer() { - return mBuffer; - } - - @Override - public void destroy() { - - } - - @Override - public IntSize getSize() { - return new IntSize(SIZE, SIZE); - } - - @Override - public int getFormat() { - return FORMAT; - } -} - |