PALETTE: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:


{{PageSyntax}}
{{PageSyntax}}
 
; Screens 11, 12, 13, 256: [[PALETTE]] [{{Parameter|attribute%}}, ''red%'' + (''green%'' * 256) + (''blue%'' * 65536)]
: [[PALETTE]] [{{Parameter|attribute%}}, ''red%'' + (''green%'' * 256) + (''blue%'' * 65536)]
; Screen 10:              [[PALETTE]] [{{Parameter|existingAttribute%}}, {{Parameter|newAttribute%}} (value from 0 to 7)]
: [[PALETTE]] [{{Parameter|existingAttribute%}}, {{Parameter|newAttribute%}}]
; Screens 0 and 9:        [[PALETTE]] [{{Parameter|existingAttribute%}}, {{Parameter|newAttribute%}} (value from 0 to 63)]
; Screens 1, 2, 7, and 8: [[PALETTE]] [{{Parameter|existingAttribute%}}, {{Parameter|newAttribute%}} (value from 0 to 15)]
; Screen 32:              No Palette available as all 32-bit colors are available.




{{PageDescription}}
{{PageDescription}}
* {{Parameter|red%}}, {{Parameter|green%}} and {{Parameter|blue%}} values can range from 0 to 63. Many color shades are possible in non-[[DAC]] color attributes.
* {{Parameter|red%}}, {{Parameter|green%}} and {{Parameter|blue%}} values can range from 0 to 63. Many color shades are possible in non-[[DAC]] color attributes. (Valid for screens 11, 12, 13, and 256 only.)
* If the {{Parameter|red%}}, {{Parameter|green%}} and {{Parameter|blue%}} color intensity settings are all the same value the resulting color is a shade of grey.
* If the {{Parameter|red%}}, {{Parameter|green%}} and {{Parameter|blue%}} color intensity settings are all the same value the resulting color is a shade of grey. (Valid for screens 11, 12, 13, and 256 only.)
* A swap is often used with [[DAC]] color attributes that cannot change RGB settings. Only the RGB color settings are swapped from original {{Parameter|existingAttribute%}} to {{Parameter|newAttribute%}}. Screens 0 thru 9 support swaps. Screen 10 supports up to attribute 8 only.
* A swap is often used with [[DAC]] color attributes that cannot change RGB settings. Only the RGB color settings are swapped from original {{Parameter|existingAttribute%}} to {{Parameter|newAttribute%}}. Screens 0 thru 9 support swaps.
* PALETTE without any value sets any changed RGB settings back to the default color settings, including [[DAC]] colors.
* PALETTE without any value sets any changed RGB settings back to the default color settings, including [[DAC]] colors.
* [[PALETTE USING]] can be used when color intensity values are stored in an [[Arrays|array]].
* [[PALETTE USING]] can be used when color intensity values are stored in an [[Arrays|array]].
* QB64 implements the [[_PALETTECOLOR]] statement to provide extended palette functionality.
* QB64 implements the [[_PALETTECOLOR]] statement to provide extended palette functionality.


 
=== QBasic/QuickBASIC ===
==QBasic/QuickBASIC==
* Screens 0, 7 and 9 ([[DAC]]) colors could not be changed using the first syntax, but the program could use [[OUT]] to change intensity settings of attributes 1 thru 5.
* Screens 0, 7 and 9 ([[DAC]]) colors could not be changed using the first syntax, but the program could use [[OUT]] to change intensity settings of attributes 1 thru 5.


Line 23: Line 24:
{{PageExamples}}
{{PageExamples}}
''Example:'' Displaying all 64 DAC color hues as backgrounds in SCREEN 9 using a PALETTE swap.
''Example:'' Displaying all 64 DAC color hues as backgrounds in SCREEN 9 using a PALETTE swap.
{{CodeStart}}
{{CodeStart}}
   {{Cl|SCREEN}} 9 ' background is default black
   {{Cl|SCREEN}} 9 ' background is default black

Latest revision as of 21:15, 6 November 2023

The PALETTE statement can swap color settings, set colors to default or set the red, green and blue color components of palette colors.


Syntax

Screens 11, 12, 13, 256
PALETTE [attribute%, red% + (green% * 256) + (blue% * 65536)]
Screen 10
PALETTE [existingAttribute%, newAttribute% (value from 0 to 7)]
Screens 0 and 9
PALETTE [existingAttribute%, newAttribute% (value from 0 to 63)]
Screens 1, 2, 7, and 8
PALETTE [existingAttribute%, newAttribute% (value from 0 to 15)]
Screen 32
No Palette available as all 32-bit colors are available.


Description

  • red%, green% and blue% values can range from 0 to 63. Many color shades are possible in non-DAC color attributes. (Valid for screens 11, 12, 13, and 256 only.)
  • If the red%, green% and blue% color intensity settings are all the same value the resulting color is a shade of grey. (Valid for screens 11, 12, 13, and 256 only.)
  • A swap is often used with DAC color attributes that cannot change RGB settings. Only the RGB color settings are swapped from original existingAttribute% to newAttribute%. Screens 0 thru 9 support swaps.
  • PALETTE without any value sets any changed RGB settings back to the default color settings, including DAC colors.
  • PALETTE USING can be used when color intensity values are stored in an array.
  • QB64 implements the _PALETTECOLOR statement to provide extended palette functionality.

QBasic/QuickBASIC

  • Screens 0, 7 and 9 (DAC) colors could not be changed using the first syntax, but the program could use OUT to change intensity settings of attributes 1 thru 5.


Examples

Example: Displaying all 64 DAC color hues as backgrounds in SCREEN 9 using a PALETTE swap.

  SCREEN 9 ' background is default black
  LOCATE 20, 33: PRINT "Press any Key!"
  FOR i = 0 TO 63
   a$ = INPUT$(1) ' wait for a keypress
   PALETTE 0, i
  NEXT
Note: Other attributes (1 to 15) can also be swapped for DAC foreground colors.


See also



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