Versatile Java game engine with pluggable backends (this was used in Rogue, I think)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.3 KiB

10 years ago
package mightypork.gamecore.gui.components.painters;
import mightypork.gamecore.core.App;
import mightypork.gamecore.gui.components.BaseComponent;
import mightypork.utils.annotations.FactoryMethod;
import mightypork.utils.math.color.Color;
import mightypork.utils.math.color.Grad;
/**
* Draws image in given rect
*
10 years ago
* @author Ondřej Hruška (MightyPork)
*/
public class QuadPainter extends BaseComponent {
10 years ago
@FactoryMethod
public static QuadPainter gradH(Color colorLeft, Color colorRight)
{
return new QuadPainter(colorLeft, colorRight, colorRight, colorLeft);
}
10 years ago
@FactoryMethod
public static QuadPainter gradV(Color colorTop, Color colorBottom)
{
return new QuadPainter(colorTop, colorTop, colorBottom, colorBottom);
}
10 years ago
private final Grad grad;
10 years ago
/**
* Painter with solid color
*
10 years ago
* @param color
*/
public QuadPainter(Color color)
{
10 years ago
this.grad = new Grad(color, color, color, color);
}
10 years ago
/**
* Painter with coloured vertices.
*
10 years ago
* @param leftTop
* @param rightTop
* @param leftBottom
* @param rightBottom
*/
public QuadPainter(Color leftTop, Color rightTop, Color leftBottom, Color rightBottom)
{
10 years ago
this.grad = new Grad(leftTop, rightTop, rightBottom, leftBottom);
}
10 years ago
@Override
public void renderComponent()
{
App.gfx().quad(getRect(), grad);
}
}