QB64.com

QB64 is a modern extended BASIC programming language that retains QBasic/QuickBASIC 4.5 compatibility and compiles native binaries for Windows, Linux, and macOS.

The _NEWIMAGE function prepares a window image surface and returns the LONG handle value.

Syntax

handle& = _NEWIMAGE(width&, height&[, {0 1 2 7 8 9 10 11 12 13 256 32}])

Parameter(s)

Description

Use CLS or _DONTBLEND to make a new surface background _ALPHA 255 or opague.

Example(s)

Shrinking a SCREEN 0 text window’s size:


SCREEN _NEWIMAGE(28, 25, 0) 

Creating an 800 by 600 window version of SCREEN 12 with 256 colors (text 37 X 100):


handle& = _NEWIMAGE(800, 600, 256) 
SCREEN handle& 

Setting up a 32 bit SCREEN with _NEWIMAGE for page flipping in QB64.


SCREEN _NEWIMAGE(640, 480, 32), , 1, 0 

Note: _DISPLAY may be used as a substitute for page flipping or PCOPY.

Switching between two different SCREEN modes


_TITLE "Switching SCREEN modes"
SCREEN _NEWIMAGE (800, 600, 256)
mode1& = _DEST               'get current screen mode handle
mode2& = _NEWIMAGE (300, 200, 13)

_DEST mode2&                  'prepare small window
COLOR 10: LOCATE 10, 13: PRINT "mode2& = "; mode2&
COLOR 13: LOCATE 16, 16: PRINT "First"

_DEST mode1&  'work in main window
LOCATE 5
FOR c = 1 TO 248 
   Color c: PRINT c;
NEXT 
COLOR 12: LOCATE 20, 44: PRINT "mode1& = "; mode1&
COLOR 11: LOCATE 30, 34: PRINT "Press a key to goto Pop-up Window"
DO: SLEEP: LOOP UNTIL INKEY$ <> ""

SCREEN mode2&  'switch to small window
DO: SLEEP: LOOP UNTIL INKEY$ <> ""

SCREEN mode1&  'back to main window
COLOR 12: LOCATE 37, 43: PRINT "One more time!"
DO: SLEEP: LOOP UNTIL INKEY$ <> ""

SCREEN mode2&  'back to small window
COLOR 14: LOCATE 16, 16: PRINT "LAST " 

Explanation: The _DEST (function) function can determine the present screen mode destination handle. The second _NEWIMAGE handle is created using a SCREEN 13 palette(256 colors also). Each SCREEN is worked on after changing the destination with _DEST handle& statement. Images can be created before viewing them. When a key is pressed the second SCREEN created is displayed and so on.

Legacy SCREEN modes can also return a _DEST value, but the value will create a handle error. To restore legacy screens get the_COPYIMAGE function value before changing screens. Then restore it using SCREEN oldmode&.

More examples

See Also