package org.herac.tuxguitar.gui.editors.tab;
import java.awt.Color;
import java.awt.Image;
import java.awt.image.BufferedImage;
import org.herac.tuxguitar.gui.editors.TGPainter;
public class TGMeasureBuffer {
private Image buffer;
private TGPainter painter;
private int width;
private int height;
public TGMeasureBuffer(){
super();
}
public void createBuffer(int width,int height,Color background){
this.dispose();
this.buffer = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
this.width = width;
this.height = height;
this.fillBuffer(background);
}
public void disposeBuffer(){
if( this.buffer != null ){
this.buffer = null;
}
}
private void fillBuffer(Color background){
getPainter().setBackground(background);
getPainter().initPath(TGPainter.PATH_FILL);
getPainter().addRectangle(0,0,this.width,this.height);
getPainter().closePath();
}
public void paintBuffer(TGPainter painter,int x,int y,int srcY){
painter.drawImage(this.buffer,0,srcY, this.width, (this.height - srcY), x, (y + srcY), this.width, (this.height - srcY));
}
public void createPainter(){
this.disposePainter();
this.painter = new TGPainter(this.buffer);
}
public void disposePainter(){
if(this.painter != null){
this.painter.dispose();
this.painter = null;
}
}
public TGPainter getPainter(){
if(this.painter == null){
this.createPainter();
}
return this.painter;
}
public Image getImage(){
return this.buffer;
}
public void dispose(){
this.disposePainter();
this.disposeBuffer();
}
public boolean isDisposed(){
return (this.buffer == null);
}
}