$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 the same user not shown)
Line 19: Line 19:
:
:
: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 '''N'''o '''P'''refix) in front of them.
: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 '''N'''o '''P'''refix) in front of them.
:
:Note that [[$NOPREFIX]] was {{Text|'''deprecated'''|red}} in '''QB64-PE v4.0.0''' and so also the '''NP_''' color names are gone.





Latest revision as of 20:45, 21 November 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.
Note that $NOPREFIX was deprecated in QB64-PE v4.0.0 and so also the NP_ color names are gone.


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