/*
ICanvas.java
(c) 2011-2014 Edward Swartz
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
*/
package v9t9.common.video;
/**
* @author ejs
*
*/
public interface ICanvas {
void setSize(int x, int y);
/** Get the full screen width (this includes any overscan and possibly extra pixels
* not intended to be seen). */
int getWidth();
/** Get the full screen width (this includes any overscan and possibly extra pixels
* not intended to be seen). */
int getVisibleWidth();
/** Get the nominal screen height. This does not count interlacing. */
int getHeight();
int getVisibleHeight();
/** Get minimum Y drawn for this canvas */
int getMinY();
/** Get maximum (exclusive) Y for this canvas */
int getMaxY();
/** Set minimum Y drawn for this canvas */
void setMinY(int minY);
/** Set maximum (exclusive) Y for this canvas */
void setMaxY(int maxY);
/** Get the delta for one pixel, in terms of the offset.
* @see #getBitmapOffset(int, int)
*/
int getPixelStride();
/** Get the delta for one row, in terms of the offset.
* @see #getBitmapOffset(int, int)
*/
int getLineStride();
int getBlockCount();
void markDirty();
void markDirty(RedrawBlock[] blocks, int count);
void markDirtyRows(int prevScanline, int currentScanline);
}