PSet

Plots a single pixel

Syntax
   PSet [target ,] [STEP] (x, y) [,color]

Parameters
   target
      specifies buffer to draw on.  
   STEP
      indicates that coordinates are relative
   (x, y)
      coordinates of the pixel.
   color
      the color attribute.

Description
   target specifies buffer to draw on.  target may be an image created with 
   ImageCreate or Get (Graphics).  If omitted, target defaults to the 
   screen's current work page.

   (x, y) are the coordinates of the pixel.  STEP if present, indicates 
   that (x, y) coordinates are relative to the graphics cursor position.  
   If omitted, (x, y) are relative to the upper left-hand corner of target. 
   The x and y coordinates are affected by the last call to the 
   View (Graphics) and Window statements, and respect the current clipping 
   region as set by the View (Graphics) statement.

   color specifies the color attribute, as an 8-bit palette index in 8 bpp 
   indexed modes, a 24-bit RGB value in 16 bpp modes (upper 8 bits of the 
   integer unused, limited precision of R,G,B), and a 32-bit RGB or RGBA 
   value in 32 bpp modes (upper 8 bits unused or holding Alpha). Note that 
   it does NOT accept a 16-bit value (5 bits R + 6 bits G + 5 bits B).  If 
   omitted, color defaults to the current foreground color.

   Speed note: while PSet provides valid results, it is quite slow to call 
   repeatedly due to the overhead of additional calculations and checks. 
   Much better performance can be achieved by using direct memory access 
   using the results obtained from ImageInfo and ScreenInfo/ScreenPtr.

Example
   ' Set an appropriate screen mode - 320 x 240 x 8bpp indexed color
   ScreenRes 320, 240, 8

   ' Plot a pixel at the coordinates 100, 100, Color 15. (white)
   PSet (100, 100), 15
   ' Confirm the operation.
   Locate 1: Print "Pixel plotted at 100, 100"
   ' Wait for a keypress.
   Sleep
    
   ' Plot another pixel at the coordinates 150, 150, Color 4. (red) 
   PSet (150, 150), 4
   ' Confirm the operation.
   Locate 1: Print "Pixel plotted at 150, 150"
   ' Wait for a keypress.
   Sleep
    
   ' Plot a third pixel relative to the second, Color 15. (white)
   ' This pixel is given the coordinates 60, 60. It will be placed
   ' at 60, 60 plus the previous coordinates (150, 150), thus plotting at 210, 210.
   PSet Step (60, 60), 15
   ' Confirm the operation.
   Locate 1: Print "Pixel plotted at 150 + 60, 150 + 60"
   ' Wait for a keypress
   Sleep

   ' Explicit end of program
   End

Differences from QB
   * target is new to FreeBASIC
   * In 16 bpp and 32 bpp modes, a 32-bit value is required instead of an 
     8-bit palette index

See also
   * Point - read out pixels
   * PReset
   * View (Graphics)
   * Window
   * Internal pixel formats

