Difference between revisions of "PixelDisplay"

From MiniScript Wiki
Jump to navigation Jump to search
(Added note about tile size)
m (Synchronize order with another page)
 
(4 intermediate revisions by 2 users not shown)
Line 6: Line 6:
  
 
== Methods and Properties ==
 
== Methods and Properties ==
 
 
{| class="wikitable"
 
{| class="wikitable"
 +
! Method or Property !! Purpose !! Type
 
|-
 
|-
! Method or Property !! Purpose
+
|-|
 +
| colspan=3 style="text-align: center;" | '''Edit and read'''
 
|-
 
|-
| [[PixelDisplay.color]] || get or set the default drawing color, used when color is not otherwise specified
 
 
|-
 
|-
| [[PixelDisplay.width]] || number of columns in the the pixel buffer
+
| [[PixelDisplay.color]] || get or set the default drawing color, used when color is not otherwise specified || string (color)
 
|-
 
|-
| [[PixelDisplay.height]] || number of rows in the the pixel buffer
+
| [[PixelDisplay.scale]] || scaling factor used to magnify (or shrink) the pixel display on screen || number
 
|-
 
|-
| [[PixelDisplay.scale]] || scaling factor used to magnify (or shrink) the pixel display on screen
+
| [[PixelDisplay.scrollX]] || get or set a horizontal shift applied to the entire display || number
 
|-
 
|-
| [[PixelDisplay.clear]] ''[color]'', ''[width]'', ''[height]'' || clear/reset the pixel buffer
+
| [[PixelDisplay.scrollY]] || get or set a vertical shift applied to the entire display ||  number
 
|-
 
|-
| [[PixelDisplay.pixel]] ''x '', ''y'' || get the color of a particular pixel
+
| colspan=3 style="text-align: center;" | '''Read only'''
 +
|-
 +
| [[PixelDisplay.width]] || number of columns in the the pixel buffer || number
 +
|-
 +
| [[PixelDisplay.height]] || number of rows in the the pixel buffer || number
 +
|-
 +
| [[PixelDisplay.pixel]] ''x '', ''y'' || get the color of a particular pixel || string (color)
 +
|-
 +
| [[PixelDisplay.getImage]](''left'', ''bottom'', ''width'', ''height'') || get a portion of the pixel buffer as an [[Image]] || [[Image]]
 +
|-
 +
|-|
 +
| colspan=3  style="text-align: center;"| '''Run'''
 
|-
 
|-
| [[PixelDisplay.setPixel]] ''x'', ''y'', ''[color]'' || set the color of a particular pixel
 
 
|-
 
|-
| [[PixelDisplay.scrollX]] || get or set a horizontal shift applied to the entire display
+
| [[PixelDisplay.clear]] ''[color]'', ''[width]'', ''[height]'' || clear/reset the pixel buffer width: number; height: number
 
|-
 
|-
| [[PixelDisplay.scrollY]] || get or set a vertical shift applied to the entire display
+
| [[PixelDisplay.setPixel]] ''x'', ''y'', ''[color]'' || set the color of a particular pixel
 
|-
 
|-
 
| [[PixelDisplay.line]] ''x1'', ''y1'', ''x2'', ''y2'', ''[color]'', ''[penSize]'' || draw a line
 
| [[PixelDisplay.line]] ''x1'', ''y1'', ''x2'', ''y2'', ''[color]'', ''[penSize]'' || draw a line
Line 43: Line 53:
 
| [[PixelDisplay.fillPoly]] ''points'', ''[color]'' || draw a filled polygon
 
| [[PixelDisplay.fillPoly]] ''points'', ''[color]'' || draw a filled polygon
 
|-
 
|-
| [[PixelDisplay.drawImage]] ''img'', ''left'', ''bottom'', ''[width]'', ''[height]'', ''[srcLeft]'', ''[srcBottom]'', ''[srcWidth]'', ''[srcHeight]'' || draw an [[Image]] (or portion thereof)
+
| [[PixelDisplay.drawImage]] ''img'', ''left'', ''bottom'', ''[width]'', ''[height]'', ''[srcLeft]'', ''[srcBottom]'', ''[srcWidth]'', ''[srcHeight]'' || draw an [[Image]] (or portion thereof)  
|-
 
| [[PixelDisplay.getImage]](''left'', ''bottom'', ''width'', ''height'') || get a portion of the pixel buffer as an [[Image]]
 
 
|-
 
|-
 
| [[PixelDisplay.print]] ''str'', ''x'', ''y'', ''[color]'', ''[font]'' || draw a string
 
| [[PixelDisplay.print]] ''str'', ''x'', ''y'', ''[color]'', ''[font]'' || draw a string

Latest revision as of 10:07, 28 March 2025

The PixelDisplay class in Mini Micro is a display type that represents a rectangular pixel buffer, with methods to efficiently draw lines, shapes, images, and text.

By default, display 5 is configured as a pixel display, and is in fact the pixel display to which the gfx global refers (unless you change it). But you can make any display layer a pixel display by setting its mode to displayMode.pixel.

A PixelDisplay is 960 x 640 pixels by default (see screen coordinates), though this may be changed via the clear method.

Methods and Properties

Method or Property Purpose Type
Edit and read
PixelDisplay.color get or set the default drawing color, used when color is not otherwise specified string (color)
PixelDisplay.scale scaling factor used to magnify (or shrink) the pixel display on screen number
PixelDisplay.scrollX get or set a horizontal shift applied to the entire display number
PixelDisplay.scrollY get or set a vertical shift applied to the entire display number
Read only
PixelDisplay.width number of columns in the the pixel buffer number
PixelDisplay.height number of rows in the the pixel buffer number
PixelDisplay.pixel x , y get the color of a particular pixel string (color)
PixelDisplay.getImage(left, bottom, width, height) get a portion of the pixel buffer as an Image Image
Run
PixelDisplay.clear [color], [width], [height] clear/reset the pixel buffer width: number; height: number
PixelDisplay.setPixel x, y, [color] set the color of a particular pixel
PixelDisplay.line x1, y1, x2, y2, [color], [penSize] draw a line
PixelDisplay.drawRect left, bottom, width, height, [color], [penSize] draw a rectangle outline
PixelDisplay.fillRect left, bottom, width, height, [color] draw a filled rectangle
PixelDisplay.drawEllipse left, bottom, width, height, [color], [penSize] draw an ellipse outline
PixelDisplay.fillEllipse left, bottom, width, height, [color] draw a filled ellipse
PixelDisplay.drawPoly points, [color], [penSize] draw a polygon outline
PixelDisplay.fillPoly points, [color] draw a filled polygon
PixelDisplay.drawImage img, left, bottom, [width], [height], [srcLeft], [srcBottom], [srcWidth], [srcHeight] draw an Image (or portion thereof)
PixelDisplay.print str, x, y, [color], [font] draw a string

Implementation Note

For performance reasons, a PixelDisplay under the hood is made up of 256x256 pixel tiles. These are initialized to the color passed to PixelDisplay.clear. As a result, if your width or height is not an even multiple of 256, then this initial clear color will extend beyond the usable area. As an example, try:

gfx.clear color.red, 200,200
gfx.fillRect 0,0,gfx.width,gfx.height, color.blue

This displays a 200x200 blue square (the official size of the pixel display) with an additional red area extending 256x256 (one full tile) in size.