Depth16Image.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 26 Nov 2016 21:09:32 +0000
branchjv
changeset 7719 c2f802dd340a
parent 7520 c89730e74836
child 7815 2e9d68bbeeb6
permissions -rw-r--r--
XFT: Forbid XFT rendering on bitmaps (depth-1 pixmaps) In theory it could work if XFT would just turn gray into either black or white. But XFT doesn't do it and simply draw nothing without failing in any way. To prevent this silent failures, forbid drawing XFT onto bitmaps (depth-1 pixmaps). After all, the while point of XFT is to use anti-aliased fonts.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1995 by Claus Gittinger
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
	      All Rights Reserved
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
3263
bd92a12c9316 category changes
Claus Gittinger <cg@exept.de>
parents: 2180
diff changeset
    12
"{ Package: 'stx:libview' }"
bd92a12c9316 category changes
Claus Gittinger <cg@exept.de>
parents: 2180
diff changeset
    13
7190
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
    14
"{ NameSpace: Smalltalk }"
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
    15
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
Image subclass:#Depth16Image
579
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    17
	instanceVariableNames:''
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    18
	classVariableNames:''
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    19
	poolDictionaries:''
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    20
	category:'Graphics-Images'
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!Depth16Image class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 1995 by Claus Gittinger
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	      All Rights Reserved
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
documentation
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    this class represents 16 bit images.
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    Only the minimum protocol is implemented here; much more is
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    needed for higher performance operations on depth16 images.
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    (however, 16bit images are seldom used, so falling back into the
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    slow general methods from Image should not hurt too much ..)
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
    46
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
    47
    [author:]
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
    48
	Claus Gittinger
611
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
    49
e0442439a3c6 documentation
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
    50
    [see also:]
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
    51
	Depth1Image Depth2Image Depth4Image Depth8Image Depth24Image
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
    52
	ImageReader
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
! !
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!Depth16Image class methodsFor:'queries'!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
4759
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    58
defaultPhotometric
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    59
    "return the default photometric pixel interpretation"
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    60
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    61
    ^ #rgb
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    62
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    63
    "Created: / 27-05-2007 / 14:04:11 / cg"
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    64
!
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
    65
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
imageDepth
579
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    67
    "return the depth of images represented by instances of
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    68
     this class - here we return 16"
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    69
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    ^ 16
579
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    71
e381761190c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 281
diff changeset
    72
    "Modified: 20.4.1996 / 23:40:01 / cg"
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
! !
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
3263
bd92a12c9316 category changes
Claus Gittinger <cg@exept.de>
parents: 2180
diff changeset
    75
!Depth16Image methodsFor:'accessing-pixels'!
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    76
1659
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    77
pixelAtX:x y:y
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    78
    "retrieve a pixel at x/y; return a pixelValue.
7520
c89730e74836 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7209
diff changeset
    79
     The interpretation of the returned value depends on the photometric
c89730e74836 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7209
diff changeset
    80
     and the colormap. See also Image>>atX:y:)
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    81
     Pixels start at x=0 , y=0 for upper left pixel, end at
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    82
     x = width-1, y=height-1 for lower right pixel"
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    83
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    84
    |lineIndex "{ Class: SmallInteger }"|
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    85
6306
a3bbe514829e class: Depth16Image
Claus Gittinger <cg@exept.de>
parents: 6066
diff changeset
    86
    pixelFunction notNil ifTrue:[^ pixelFunction value:x value:y].
a3bbe514829e class: Depth16Image
Claus Gittinger <cg@exept.de>
parents: 6066
diff changeset
    87
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    88
    lineIndex := (width * 2 * y) + 1.
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
    89
7209
c4cb8c02e820 call the renamed basic methods for short access:
Claus Gittinger <cg@exept.de>
parents: 7190
diff changeset
    90
    ^ bytes unsignedInt16At:(lineIndex + (x * 2)) MSB:true.
1659
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    91
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    92
    "Created: 24.4.1997 / 16:06:19 / cg"
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    93
!
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    94
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    95
pixelAtX:x y:y put:aPixelValue
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    96
    "set the pixel at x/y to aPixelValue.
7520
c89730e74836 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7209
diff changeset
    97
     The interpretation of the pixelValue depends on the photometric
c89730e74836 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7209
diff changeset
    98
     and the colormap. (see also: Image>>atX:y:put:)
1659
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
    99
     Pixels start at x=0 , y=0 for upper left pixel, end at
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   100
     x = width-1, y=height-1 for lower right pixel"
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   101
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   102
    |lineIndex "{ Class: SmallInteger }"|
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   103
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   104
    lineIndex := (width * 2 * y) + 1.
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   105
7209
c4cb8c02e820 call the renamed basic methods for short access:
Claus Gittinger <cg@exept.de>
parents: 7190
diff changeset
   106
    bytes unsignedInt16At:(lineIndex + (x * 2)) put:aPixelValue MSB:true
1659
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   107
a38cf5be1aa8 pixel accessing methods cleaned up
Claus Gittinger <cg@exept.de>
parents: 813
diff changeset
   108
    "Created: 24.4.1997 / 17:06:21 / cg"
2180
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   109
!
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   110
3872
390fabbc3036 comments and slight cleanup
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   111
rowAt:y putAll:pixelArray startingAt:startIndex
2180
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   112
    "store a single rows bits from bits in the pixelArray argument;
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   113
     Return the pixelArray.
3872
390fabbc3036 comments and slight cleanup
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   114
     Notice: row coordinate starts at 0."
2180
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   115
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   116
    |dstIdx "{ Class: SmallInteger }"
7190
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   117
     srcIdx "{ Class: SmallInteger }"
3866
c01473a90934 eliminated most references to bytes
Claus Gittinger <cg@exept.de>
parents: 3263
diff changeset
   118
     pixel
c01473a90934 eliminated most references to bytes
Claus Gittinger <cg@exept.de>
parents: 3263
diff changeset
   119
     bytes|
2180
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   120
3866
c01473a90934 eliminated most references to bytes
Claus Gittinger <cg@exept.de>
parents: 3263
diff changeset
   121
    bytes := self bits.
3872
390fabbc3036 comments and slight cleanup
Claus Gittinger <cg@exept.de>
parents: 3868
diff changeset
   122
    dstIdx := (width * 2 * y) + 1.
7190
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   123
    srcIdx := startIndex.
2180
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   124
    1 to:width do:[:col |
7190
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   125
        pixel := pixelArray at:srcIdx.
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   126
        "/ msbFirst
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   127
        bytes at:dstIdx put:((pixel bitShift:-8) bitAnd:16rFF).
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   128
        bytes at:dstIdx+1 put:(pixel bitAnd:16rFF).
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   129
        dstIdx := dstIdx + 2.
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   130
        srcIdx := srcIdx + 1.
2180
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   131
    ].
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   132
    ^ pixelArray
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   133
c6b09d67eb40 tuned rowAt:putAll
tz
parents: 1659
diff changeset
   134
    "Created: 24.4.1997 / 15:50:27 / cg"
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
   135
! !
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
   136
4759
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   137
!Depth16Image methodsFor:'initialization'!
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   138
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   139
initialize
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   140
    super initialize.
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   141
    samplesPerPixel := 3.
4759
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   142
    bitsPerSample := #(5 5 5).
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   143
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   144
    "Created: / 27-05-2007 / 14:09:46 / cg"
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   145
! !
55e8bc994d61 defaultPhotometric
Claus Gittinger <cg@exept.de>
parents: 3872
diff changeset
   146
5128
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   147
!Depth16Image methodsFor:'magnification'!
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   148
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   149
magnifyRowFrom:srcBytes offset:srcStart
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   150
	  into:dstBytes offset:dstStart factor:mX
5128
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   151
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   152
    "magnify a single pixel row - can only magnify by integer factors"
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   153
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   154
%{
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   155
    unsigned char *srcP, *dstP;
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   156
    int _mag;
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   157
    REGISTER int i;
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   158
    REGISTER unsigned char byte1, byte2;
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   159
    int _pixels;
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   160
    OBJ w = __INST(width);
5128
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   161
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   162
    if (__bothSmallInteger(srcStart, dstStart)
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   163
     && __bothSmallInteger(w, mX)
5477
8badcb37a2c0 __isByteArray() to __isByteArrayLike() in primitive code
Stefan Vogel <sv@exept.de>
parents: 5128
diff changeset
   164
     && __isByteArrayLike(srcBytes) && __isByteArray(dstBytes)) {
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   165
	_mag = __intVal(mX);
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   166
	srcP = __ByteArrayInstPtr(srcBytes)->ba_element - 1 + __intVal(srcStart);
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   167
	dstP = __ByteArrayInstPtr(dstBytes)->ba_element - 1 + __intVal(dstStart);
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   168
	_pixels = __intVal(w);
5128
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   169
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   170
	while (_pixels--) {
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   171
	    byte1 = *srcP;
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   172
	    byte2 = *(srcP+1);
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   173
	    srcP += 2;
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   174
	    for (i=_mag; i>0; i--) {
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   175
		*dstP = byte1;
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   176
		*(dstP+1) = byte2;
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   177
		dstP += 2;
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   178
	    }
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   179
	}
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   180
	RETURN (self);
5128
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   181
    }
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   182
%}.
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   183
    super
6066
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   184
	magnifyRowFrom:srcBytes offset:srcStart
62426e8110ae stx macros with 2 underlines
Claus Gittinger <cg@exept.de>
parents: 5477
diff changeset
   185
	into:dstBytes offset:dstStart factor:mX
5128
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   186
! !
6092105361d1 +magnifyRowFrom:offset:into:offset:factor:
Claus Gittinger <cg@exept.de>
parents: 4759
diff changeset
   187
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
!Depth16Image methodsFor:'queries'!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
bitsPerPixel
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
    "return the number of bits per pixel"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
    ^ 16
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
bitsPerRow
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
    "return the number of bits in one scanline of the image"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
3868
e47cf114c824 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3866
diff changeset
   199
    ^ width * 16
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
!
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
bytesPerRow
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
    "return the number of bytes in one scanline of the image"
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    ^ width * 2.
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
! !
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
   208
!Depth16Image class methodsFor:'documentation'!
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
281
4f04a56b1641 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 219
diff changeset
   210
version
7190
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   211
    ^ '$Header$'
5477
8badcb37a2c0 __isByteArray() to __isByteArrayLike() in primitive code
Stefan Vogel <sv@exept.de>
parents: 5128
diff changeset
   212
!
8badcb37a2c0 __isByteArray() to __isByteArrayLike() in primitive code
Stefan Vogel <sv@exept.de>
parents: 5128
diff changeset
   213
8badcb37a2c0 __isByteArray() to __isByteArrayLike() in primitive code
Stefan Vogel <sv@exept.de>
parents: 5128
diff changeset
   214
version_CVS
7190
Claus Gittinger <cg@exept.de>
parents: 6306
diff changeset
   215
    ^ '$Header$'
193
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
! !
6306
a3bbe514829e class: Depth16Image
Claus Gittinger <cg@exept.de>
parents: 6066
diff changeset
   217