Important: The information in this document is obsolete and should not be used for new development.
A Sample Version 2 Picture
The chapter "Pictures" in this book describes how to use theOpenPicture
function, which creates version 2 pictures in color graphics ports. Figure A-1 on page A-23 shows a picture created with theOpenCPicture
function using the code in Listing A-4 on page A-22. If theOpenPicture
function were used instead ofOpenCPicture
, the same picture would be drawn, but the picture would use picture opcodes for the version 2 format instead of the extended version 2 format. The major difference between formats lies in the header information after theHeaderOp
opcode.Listing A-6 shows what happens when the picture in Figure A-1 is created in version 2 format, saved in a
'PICT'
resource, and then decompiled with the DeRez decompiler.Listing A-6 A decompiled version 2 picture
data 'PICT' (129) { $"0078" /* picture size; don't use this value for picture size */ $"0002 0002 006E 00AA" /* bounding rectangle of picture */ $"0011" /* VersionOp opcode; always $0011 for version 2 */ $"02FF" /* Version opcode; always $02FF for version 2 */ $"0C00" /* HeaderOp opcode; always $0C00 for version 2 */ /* next 24 bytes contain header information */ $"FFFF FFFF" /* version; always -1 (long) for version 2 */ $"0002 0000 0002 0000 00AA 0000 006E 0000" /* fixed-point bounding rectangle for picture */ $"0000 0000" /* reserved */ $"001E" /* DefHilite opcode to use default hilite color */ $"0001" /* Clip opcode to define clipping region for picture */ $"000A" /* region size */ $"0002 0002 006E 00AA" /* bounding rectangle for clipping region */ $"000A" /* FillPat opcode; fill pattern specifed in next 8 bytes */ $"77DD 77DD 77DD 77DD" /* fill pattern */ $"0034" /* fillRect opcode; rectangle specified in next 8 bytes */ $"0002 0002 006E 00AA" /* rectangle to fill */ $"000A" /* FillPat opcode; fill pattern specified in next 8 bytes */ $"8822 8822 8822 8822" /* fill pattern */ $"005C" /* fillSameOval opcode */ $"0008" /* PnMode opcode */ $ "0008" /* pen mode data */ $"0071" /* paintPoly opcode */ $"001A" /* size of polygon */ $"0002 0002 006E 00AA" /* bounding rectangle for polygon */ $"006E 0002 0002 0054 006E 00AA 006E 0002" /* polygon points */ $"00FF" /* OpEndPic opcode; end of picture */ }