/*
* $Id$
*
* Copyright (c) 2000-2003 by Rodney Kinney
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License (LGPL) as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, copies are available
* at http://www.opensource.org.
*/
package VASSAL.counters;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Point;
import java.awt.image.FilteredImageSource;
import VASSAL.build.GameModule;
/**
* A class that draws a GamePiece with a specifyable level of transparency
* @deprecated No longer used by anything.
*/
@Deprecated
public class Transparent {
private double alpha = 0.2;
private PieceImage opaque;
private Image im;
private GamePiece piece;
private Point offset;
public Transparent(GamePiece p) {
setPiece(p);
}
public void setPiece(GamePiece p) {
piece = p;
opaque = new PieceImage(p);
}
public GamePiece getPiece() {
return piece;
}
public void setAlpha(double val) {
alpha = val;
}
public void draw(Graphics g, int x, int y, Component obs, double zoom) {
if (alpha == 1.0) {
piece.draw(g, x, y, obs, zoom);
return;
}
if (opaque.isChanged()) {
int trans = VASSAL.tools.TransparentFilter.getOffscreenEquivalent(obs.getBackground().getRGB(), obs);
VASSAL.tools.TransparentFilter filter = new VASSAL.tools.TransparentFilter();
filter.setAlpha(alpha);
filter.setAlpha(0.0, trans);
im = opaque.getImage(obs);
Image im2 = obs.createImage(im.getWidth(obs), im.getHeight(obs));
Graphics2D gg = (Graphics2D) im2.getGraphics();
gg.drawImage(im, 0, 0, obs);
gg.dispose();
im = obs.createImage(new FilteredImageSource
(im2.getSource(), filter));
offset = new Point(piece.boundingBox().x,
piece.boundingBox().y);
/*
im = opaque.getImage(obs);
final Image im2 = obs.createImage(im.getWidth(obs), im.getHeight(obs));
final Graphics2D gg = (Graphics2D) im2.getGraphics();
gg.setComposite(
AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) alpha));
gg.drawImage(im, 0, 0, obs);
gg.dispose();
offset = new Point(piece.boundingBox().x,
piece.boundingBox().y);
*/
}
Image scaled = im;
if (zoom != 1.0) {
scaled = GameModule.getGameModule().getDataArchive().getScaledImage(im,zoom);
}
g.drawImage(scaled,
x + (int) (zoom * offset.x),
y + (int) (zoom * offset.y),
obs);
}
}