ScreenMode - mkilgore/QB64pe GitHub Wiki
Screen Mode Detection Function
Code by Ted Weissgerber
Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
IF...THEN ScreenMode& THEN CIRCLE (200, 100), 50, 3 INPUT "Enter a SCREEN mode 0 to 17(18 quits): ", scrn$ scr& = VAL(scrn$) IF...THEN (scr& < 3 OR (boolean) scr& > 6) AND (boolean) scr& < 14 THEN SCREEN scr& IF...THEN scr& = 14 THEN handle& = _NEWIMAGE(600, 600, 32): SCREEN handle& IF...THEN scr& = 15 THEN handle& = _NEWIMAGE(800, 600, 256): SCREEN handle& IF...THEN scr& = 16 THEN handle& = _NEWIMAGE(900, 600, 13): SCREEN handle& IF...THEN scr& = 17 THEN handle& = _NEWIMAGE(900, 600, 10): SCREEN handle& LOOP UNTIL scr& > 17 FUNCTION ScreenMode& SHARED colors 'share number of colors with main program mode& = -1 _DEST 0 'destination zero always current screen mode OUT &H3C7, 1 'set attribute to read FOR...NEXT colors = 1 TO 18 'get RGB color settings red = INP(&H3C9): grn = INP(&H3C9): blu = INP(&H3C9) IF...THEN red + grn + blu = 0 AND (boolean) colors <> 16 THEN EXIT FOR...NEXT NEXT wide& = _WIDTH (function): deep& = _HEIGHT 'get screen dimension IF...THEN colors = 4 THEN mode& = 1 IF...THEN colors = 2 AND (boolean) deep& = 200 THEN mode& = 2 IF...THEN colors = 17 AND (boolean) wide& = 320 AND (boolean) deep& = 200 THEN mode& = 7 IF...THEN colors = 17 AND (boolean) wide& = 640 AND (boolean) deep& = 200 THEN mode& = 8 IF...THEN colors = 17 AND (boolean) deep& = 350 THEN mode& = 9 IF...THEN colors = 1 AND (boolean) wide& = 640 AND (boolean) deep& = 350 THEN mode& = 10 IF...THEN colors = 2 AND (boolean) deep& = 480 THEN mode& = 11 IF...THEN colors = 17 AND (boolean) deep& = 480 THEN mode& = 12 IF...THEN colors > 17 AND (boolean) wide& = 320 AND (boolean) deep& = 200 THEN mode& = 13 IF...THEN _PIXELSIZE = 0 THEN mode& = 0 'screen 0 any size IF...THEN mode& = -1 THEN mode& = _DEST 'must be a QB64 screen IF...THEN colors = 1 THEN colors = 4 IF...THEN colors = 17 THEN colors = 16 IF...THEN colors > 17 THEN colors = 256 IF...THEN _PIXELSIZE = 4 THEN colors = 32 ScreenMode& = mode& END FUNCTION '' '' |
- Note: Function returns the negative handle value with up to 256 colors or 32 for 32 bit in QB64 _NEWIMAGE screens.
Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page