Package org.sunflow.core
Interface Display
-
- All Known Implementing Classes:
Benchmark
,FastDisplay
,FileDisplay
,FrameDisplay
,ImagePanel
,ImgPipeDisplay
public interface Display
Represents an image output device.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
imageBegin(int w, int h, int bucketSize)
This is called before an image is rendered to indicate how large the rendered image will be.void
imageEnd()
This call is made after the image has been rendered.void
imageFill(int x, int y, int w, int h, Color c, float alpha)
Update the current image with a region of flat color.void
imagePrepare(int x, int y, int w, int h, int id)
Prepare the specified area to be rendered.void
imageUpdate(int x, int y, int w, int h, Color[] data, float[] alpha)
Update the current image with a bucket of data.
-
-
-
Method Detail
-
imageBegin
void imageBegin(int w, int h, int bucketSize)
This is called before an image is rendered to indicate how large the rendered image will be. This allows the display driver to write out image headers or allocate surfaces. Bucket size will be 0 when called from a non-bucket based source.- Parameters:
w
- width of the rendered image in pixelsh
- height of the rendered image in pixelsbucketSize
- size of the buckets in pixels
-
imagePrepare
void imagePrepare(int x, int y, int w, int h, int id)
Prepare the specified area to be rendered. This may be used to highlight the work in progress area or simply to setup the display driver to receive the specified portion of the image- Parameters:
x
- x coordinate of the bucket within the imagey
- y coordinate of the bucket within the imagew
- width of the bucket in pixelsh
- height of the bucket in pixelsid
- unique identifier corresponding to the thread which invoked this call
-
imageUpdate
void imageUpdate(int x, int y, int w, int h, Color[] data, float[] alpha)
Update the current image with a bucket of data. The region is guarenteed to be within the bounds created by the call to imageBegin. No clipping is necessary. Colors are passed in unprocessed. It is up the display driver to do any type of quantization, gamma compensation or tone-mapping needed. The array of colors will be exactlyw * h
long and in row major order.- Parameters:
x
- x coordinate of the bucket within the imagey
- y coordinate of the bucket within the imagew
- width of the bucket in pixelsh
- height of the bucket in pixelsdata
- bucket data, this array will be exactlyw * h
longalpha
- pixel coverage data, this array will be exactlyw * h
long
-
imageFill
void imageFill(int x, int y, int w, int h, Color c, float alpha)
Update the current image with a region of flat color. This is used by progressive rendering to render progressively smaller regions of the screen which will overlap. The region is guarenteed to be within the bounds created by the call to imageBegin. No clipping is necessary. Colors are passed in unprocessed. It is up the display driver to do any type of quantization , gamma compensation or tone-mapping needed.- Parameters:
x
- x coordinate of the region within the imagey
- y coordinate of the region within the imagew
- with of the region in pixelsh
- height of the region in pixelsc
- color to fill the region withalpha
- pixel coverage
-
imageEnd
void imageEnd()
This call is made after the image has been rendered. This allows the display driver to close any open files, write the image to disk or flush any other type of buffers.
-
-