FixedPalette.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 06 Sep 2017 10:04:18 +0200
branchjv
changeset 8180 25149dfd68e0
parent 7202 fc488e2907c8
permissions -rw-r--r--
Build files: removed a bunch of make rules for long-dead unsupported systems ...in order to unify and simplify the build. If a need to support this ancient systems arose, these hacks may ni longer be needed (due to new versions of tools) or the hacks would have to be written again (better) or retrieved from SCM (worse). Time will show.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger
3848
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
     3
	      All Rights Reserved
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    12
"{ Package: 'stx:libview' }"
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    14
"{ NameSpace: Smalltalk }"
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
ColorPalette subclass:#FixedPalette
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:'redShift redMask greenShift greenMask blueShift blueMask'
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
3848
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    20
	category:'Graphics-Images-Support'
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!FixedPalette class methodsFor:'documentation'!
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 1997 by eXept Software AG / Claus Gittinger
3848
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    28
	      All Rights Reserved
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
documentation
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
3848
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    43
    This class will (sooner or later) take over and/or redefine some of the Colormap functionality.
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    44
    This migration will be done both to cleanup the code and for VW compatibility.
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
3848
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    46
    Notice: For now, the whole functionality is still in Colormap
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    47
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    48
    [see also:]
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    49
	Color Image Form
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
"
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
! !
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!FixedPalette class methodsFor:'instance creation'!
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
redShift:reds redMask:redm greenShift:grns greenMask:grnm blueShift:blus blueMask:blum
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    ^ self new 
3848
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    57
	redShift:reds redMask:redm 
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    58
	greenShift:grns greenMask:grnm 
84597432b833 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3847
diff changeset
    59
	blueShift:blus blueMask:blum
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    "Created: 20.6.1997 / 16:15:15 / cg"
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
! !
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    64
!FixedPalette methodsFor:'initialization'!
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
redShift:rs redMask:rm greenShift:gs greenMask:gm blueShift:bs blueMask:bm
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    redShift := rs.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    redMask := rm.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    greenShift := gs.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    greenMask := gm.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
    blueShift := bs.
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    blueMask := bm
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
    "Created: 20.6.1997 / 16:16:49 / cg"
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
! !
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    77
!FixedPalette methodsFor:'printing & storing'!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    78
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    79
displayString
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    80
    ^ self storeString
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    81
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    82
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    83
printOn:aStream
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    84
    self storeOn:aStream
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    85
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    86
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    87
storeInstVarsOn:aStream
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    88
    aStream nextPutAll:' redShift:'. redShift storeOn:aStream.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    89
    aStream nextPutAll:' redMask:'. redMask storeOn:aStream.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    90
    aStream nextPutAll:' greenShift:'. greenShift storeOn:aStream.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    91
    aStream nextPutAll:' greenMask:'. greenMask storeOn:aStream.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    92
    aStream nextPutAll:' blueShift:'. blueShift storeOn:aStream.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    93
    aStream nextPutAll:' blueMask:'. blueMask storeOn:aStream.
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    94
!
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    95
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    96
storeOn:aStream
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    97
    aStream nextPutAll:'(' , self class name. 
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
    98
    self storeInstVarsOn:aStream.
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
    99
    aStream nextPutAll:')'.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   100
! !
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   101
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   102
!FixedPalette methodsFor:'queries'!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   103
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   104
alphaByteAt:index
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   105
    "return the (simulated) alphaByte at index.
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   106
     Notice that index is 1.."
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   107
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   108
    ^ 0
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   109
!
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   110
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   111
bitsAlpha
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   112
    ^ 0
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   113
!
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   114
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   115
bitsBlue
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   116
    ^ blueMask highBit
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   117
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   118
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   119
bitsGreen
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   120
    ^ greenMask highBit
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   121
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   122
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   123
bitsRed
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   124
    ^ redMask highBit
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   125
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   126
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   127
blueByteAt:index
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   128
    "return the (simulated) blueByte at index.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   129
     Notice that index is 1.."
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   130
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   131
    |b bb|
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   132
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   133
    blueMask == 0 ifTrue:[^ 0]. "/ no blue component
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   134
    
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   135
    b := ((index-1 bitShift:blueShift negated) bitAnd:blueMask).
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   136
    bb := (b * 255.0 / (blueMask)) rounded.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   137
    ^ bb
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   138
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   139
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   140
     (FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF) blueByteAt:16rFFFFFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   141
     (FixedPalette redShift:10 redMask:16r1F greenShift:5 greenMask:16r1F blueShift:0 blueMask:16r1F) blueByteAt:16r7FFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   142
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) blueByteAt:16rFFFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   143
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   144
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) blueByteAt:0+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   145
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) blueByteAt:16r7FFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   146
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   147
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   148
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   149
greenByteAt:index
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   150
    "return the (simulated) greenByte at index.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   151
     Notice that index is 1.."
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   152
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   153
    |g gb|
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   154
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   155
    greenMask == 0 ifTrue:[^ 0]. "/ no green component
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   156
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   157
    g := ((index-1 bitShift:greenShift negated) bitAnd:greenMask).
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   158
    gb := (g * 255.0 / (greenMask)) rounded.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   159
    ^ gb
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   160
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   161
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   162
     (FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF) greenByteAt:16rFFFFFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   163
     (FixedPalette redShift:10 redMask:16r1F greenShift:5 greenMask:16r1F blueShift:0 blueMask:16r1F) greenByteAt:16r7FFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   164
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) greenByteAt:16rFFFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   165
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   166
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) greenByteAt:0+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   167
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) greenByteAt:16r7FFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   168
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   169
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   170
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   171
isFixedPalette
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   172
    ^ true
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   173
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   174
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   175
redByteAt:index
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   176
    "return the (simulated) redByte at index.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   177
     Notice that index is 1.."
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   178
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   179
    |r rb|
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   180
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   181
    redMask == 0 ifTrue:[^ 0]. "/ no red component
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   182
4186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   183
    r := ((index-1 bitShift:redShift negated) bitAnd:redMask).
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   184
    rb := (r * 255.0 / (redMask)) rounded.
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   185
    ^ rb
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   186
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   187
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   188
     (FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF) redByteAt:16rFFFFFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   189
     (FixedPalette redShift:10 redMask:16r1F greenShift:5 greenMask:16r1F blueShift:0 blueMask:16r1F) redByteAt:16r7FFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   190
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) redByteAt:16rFFFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   191
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   192
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) redByteAt:0+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   193
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) redByteAt:16r7FFF+1  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   194
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   195
!
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   196
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   197
size
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   198
    "return the number of (simulated) colors in this colormap"
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   199
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   200
    ^ ((redMask bitShift:redShift)
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   201
        + (greenMask bitShift:greenShift)
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   202
        + (blueMask bitShift:blueShift)) + 1 
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   203
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   204
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   205
     (FixedPalette redShift:16 redMask:16rFF greenShift:8 greenMask:16rFF blueShift:0 blueMask:16rFF) size  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   206
     (FixedPalette redShift:10 redMask:16r1F greenShift:5 greenMask:16r1F blueShift:0 blueMask:16r1F) size  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   207
     (FixedPalette redShift:11 redMask:16r1F greenShift:5 greenMask:16r3F blueShift:0 blueMask:16r1F) size  
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   208
    "
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   209
! !
2ac5f5cb7944 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3848
diff changeset
   210
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
!FixedPalette class methodsFor:'documentation'!
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
version
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   214
    ^ '$Header$'
3847
288ab85676aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
! !
7187
c492a261a7d6 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 4186
diff changeset
   216