$COLOR: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
(One intermediate revision by one other user not shown)
Line 30: Line 30:
{{CodeEnd}}
{{CodeEnd}}
{{OutputStartBG0}}
{{OutputStartBG0}}
{{Ot|Bright white on red.|#fcfcfc|#a80000}}
{{Ot|Bright white on red.|#ffffff|#aa0000}}
{{OutputEnd}}
{{OutputEnd}}


Line 43: Line 43:
{{Cl|PRINT}} {{Text|<nowiki>"CrayolaGold on DarkCyan."</nowiki>|#FFB100}}
{{Cl|PRINT}} {{Text|<nowiki>"CrayolaGold on DarkCyan."</nowiki>|#FFB100}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStartBG0}}
{{Ot|CrayolaGold on DarkCyan.|#E7C697|#008B8B}}
{{OutputEnd}}


----
----
Line 57: Line 60:
{{Cl|PRINT}} {{Text|<nowiki>"Red on White."</nowiki>|#FFB100}}
{{Cl|PRINT}} {{Text|<nowiki>"Red on White."</nowiki>|#FFB100}}
{{CodeEnd}}
{{CodeEnd}}
{{OutputStartBG0}}
{{Ot|Red on White.|#ff0000|#ffffff}}
{{OutputEnd}}




Line 65: Line 71:
* [https://qb64phoenix.com/qb64wiki/resources/Color0.html $COLOR:0 Name Table]
* [https://qb64phoenix.com/qb64wiki/resources/Color0.html $COLOR:0 Name Table]
* [https://qb64phoenix.com/qb64wiki/resources/Color32.html $COLOR:32 Name Table]
* [https://qb64phoenix.com/qb64wiki/resources/Color32.html $COLOR:32 Name Table]


{{PageNavigation}}
{{PageNavigation}}

Revision as of 08:37, 14 June 2024

$COLOR is a metacommand that adds named color constants into a program, which then can be used instead of hardcoded literal color values.


Syntax

$COLOR:{0|32}


Parameters

  • The one and only parameter is a literal number designating either to include SCREEN 0 based color indexes, or full _RGB32 color values with full (opaque) alpha.


Description

  • $COLOR:0 adds constants for the colors 0-15 available in SCREEN 0, these do also match for the first 16 colors on 8-Bit (256 colors) graphic screens as long as they are not changed using PALETTE or _PALETTECOLOR. For the actual constant names see $COLOR:0 Name Table.
  • $COLOR:32 adds constants for full 32-Bit color values as used on 32-Bit screens created via _NEWIMAGE, similar to HTML color names. For the actual constant names see $COLOR:32 Name Table.
  • Prior to QB64-PE v0.5.0, $COLOR was not compatible with $NOPREFIX.
  • Since QB64-PE v0.5.0, $COLOR can now be used with $NOPREFIX, with a few notable differences to three conflicting colors -- Red, Green, Blue.
Red would conflict with _RED, Green would conflict with _GREEN, and Blue would conflict with _BLUE, once the underscore was removed from those commands with $NOPREFIX.
To prevent these conflicts, the COLOR values have had NP_ prepended to the front of them, to distinguish them from the non-prefixed command names. All other color names remain the same, with only the three colors in conflict having to use NP_ (for No Prefix) in front of them.


Examples

Example 1
Adding named color constants for SCREEN 0.
$COLOR:0

COLOR BrightWhite, Red
PRINT "Bright white on red."
Bright white on red.

Example 2
Adding named color constants for 32-bit modes.
SCREEN _NEWIMAGE(640, 400, 32)
$COLOR:32

COLOR CrayolaGold, DarkCyan
PRINT "CrayolaGold on DarkCyan."
CrayolaGold on DarkCyan.

Example 3
Adding named color constants for 32-bit modes (with $NOPREFIX in effect).
$NOPREFIX

SCREEN NEWIMAGE(640, 400, 32)
$COLOR:32

COLOR NP_Red, White 'notice the NP_ in front of Red?
'This is to distinguish the color from the command with $NOPREFIX.
PRINT "Red on White."
Red on White.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link