1
0
mirror of synced 2026-01-27 12:52:06 +00:00

EQUALALL tests equivalence of bitmaps and big bitmaps (#1302)

* EQUALALL tests equivalence of bitmaps and big bitmaps

* Oops, off by one

---------

Co-authored-by: Larry Masinter <lmm@acm.org>
This commit is contained in:
rmkaplan
2023-10-23 21:18:57 -07:00
committed by GitHub
parent 45513f563b
commit bcfeda62e1
6 changed files with 206 additions and 177 deletions

View File

@@ -1,17 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 9-Jul-2022 12:08:02" 
{DSK}<users>kaplan>local>medley3.5>working-medley>sources>LLDISPLAY.;16 269372
(FILECREATED "31-Jul-2023 14:50:58" {WMEDLEY}<sources>LLDISPLAY.;19 270570
:CHANGES-TO (FNS \COMMON.DSPCREATE)
:EDIT-BY rmk
:PREVIOUS-DATE " 8-Jul-2022 23:44:51"
{DSK}<users>kaplan>local>medley3.5>working-medley>sources>LLDISPLAY.;13)
:CHANGES-TO (FNS BITMAPEQUAL)
:PREVIOUS-DATE "31-Jul-2023 14:45:32" {WMEDLEY}<sources>LLDISPLAY.;18)
(* ; "
Copyright (c) 1981-1990, 1993-1994, 2021 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT LLDISPLAYCOMS)
@@ -33,8 +29,8 @@ Copyright (c) 1981-1990, 1993-1994, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTEVAL@LOAD DOCOPY (VARS (CursorBitMap (\CreateCursorBitMap]
[COMS (* ; "bitmap functions.")
(FNS BITBLT BLTSHADE \BITBLTSUB \GETPILOTBBTSCRATCHBM BITMAPCOPY BITMAPCREATE BITMAPBIT
BLTCHAR \BLTCHAR \MEDW.BLTCHAR \CHANGECHARSET.DISPLAY \INDICATESTRING \SLOWBLTCHAR
TEXTUREP INVERT.TEXTURE INVERT.TEXTURE.BITMAP BITMAPWIDTH READBITMAP
BITMAPEQUAL BLTCHAR \BLTCHAR \MEDW.BLTCHAR \CHANGECHARSET.DISPLAY \INDICATESTRING
\SLOWBLTCHAR TEXTUREP INVERT.TEXTURE INVERT.TEXTURE.BITMAP BITMAPWIDTH READBITMAP
\INSUREBITSPERPIXEL MAXIMUMCOLOR OPPOSITECOLOR MAXIMUMSHADE OPPOSITESHADE
\MEDW.BITBLT)
(FUNCTIONS FINISH-READING-BITMAP)
@@ -1022,6 +1018,29 @@ Copyright (c) 1981-1990, 1993-1994, 2021 by Venue & Xerox Corporation.
 "anything outside the clipping region returns 0.")
0])
(BITMAPEQUAL
[LAMBDA (BM1 BM2) (* ; "Edited 31-Jul-2023 14:50 by rmk")
(* ;; "T if BM1 and BM2 are both bitmaps of the same shape and contents. The numeric fields are all SMALLP's")
(if (AND (type? BITMAP BM1)
(type? BITMAP BM2))
then (CL:WHEN (AND (EQ (ffetch (BITMAP BITMAPWIDTH) of BM1)
(ffetch (BITMAP BITMAPWIDTH) of BM2))
(EQ (ffetch (BITMAP BITMAPHEIGHT) of BM1)
(ffetch (BITMAP BITMAPHEIGHT) of BM2))
(EQ (ffetch (BITMAP BITMAPRASTERWIDTH) of BM1)
(ffetch (BITMAP BITMAPRASTERWIDTH) of BM2))
(EQ (ffetch (BITMAP BITMAPBITSPERPIXEL) of BM1)
(ffetch (BITMAP BITMAPBITSPERPIXEL) of BM2)))
(for I (BASE1 _ (ffetch (BITMAP BITMAPBASE) of BM1))
(BASE2 _ (ffetch (BITMAP BITMAPBASE) of BM2)) from 0
to (SUB1 (ITIMES (ffetch (BITMAP BITMAPRASTERWIDTH) of BM1)
(ffetch (BITMAP BITMAPHEIGHT) of BM1)))
always (EQ (\GETBASE BASE1 I)
(\GETBASE BASE2 I))))
else (BIGBITMAPEQUAL BM1 BM2])
(BLTCHAR
[LAMBDA (CHARCODE DISPLAYSTREAM) (* rmk%: " 4-Apr-85 11:45")
(* ; "user entry --- seldom used")
@@ -4553,46 +4572,44 @@ Copyright (c) 1981-1990, 1993-1994, 2021 by Venue & Xerox Corporation.
(ADDTOVAR LAMA )
)
(PUTPROPS LLDISPLAY COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988
1989 1990 1993 1994 2021))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (20598 23266 (\FBITMAPBIT 20608 . 21068) (\FBITMAPBIT.UFN 21070 . 22089) (
\NEWPAGE.DISPLAY 22091 . 22226) (INITBITMASKS 22228 . 23264)) (25191 25700 (\CreateCursorBitMap 25201
. 25698)) (25817 84905 (BITBLT 25827 . 36217) (BLTSHADE 36219 . 36997) (\BITBLTSUB 36999 . 47134) (
\GETPILOTBBTSCRATCHBM 47136 . 47751) (BITMAPCOPY 47753 . 48329) (BITMAPCREATE 48331 . 49891) (
BITMAPBIT 49893 . 58280) (BLTCHAR 58282 . 58898) (\BLTCHAR 58900 . 59402) (\MEDW.BLTCHAR 59404 . 64282
) (\CHANGECHARSET.DISPLAY 64284 . 67242) (\INDICATESTRING 67244 . 68440) (\SLOWBLTCHAR 68442 . 75538)
(TEXTUREP 75540 . 75810) (INVERT.TEXTURE 75812 . 76086) (INVERT.TEXTURE.BITMAP 76088 . 77623) (
BITMAPWIDTH 77625 . 77997) (READBITMAP 77999 . 80509) (\INSUREBITSPERPIXEL 80511 . 80806) (
MAXIMUMCOLOR 80808 . 80949) (OPPOSITECOLOR 80951 . 81130) (MAXIMUMSHADE 81132 . 81343) (OPPOSITESHADE
81345 . 81524) (\MEDW.BITBLT 81526 . 84903)) (84907 90093 (FINISH-READING-BITMAP 84907 . 90093)) (
91215 91696 (BITMAPBIT.EXPANDER 91225 . 91694)) (91697 140231 (\BITBLT.DISPLAY 91707 . 114946) (
\BITBLT.BITMAP 114948 . 124047) (\BITBLT.MERGE 124049 . 126302) (\BLTSHADE.DISPLAY 126304 . 133404) (
\BLTSHADE.BITMAP 133406 . 140229)) (140232 149552 (\BITBLT.BITMAP.SLOW 140242 . 149550)) (149553
165934 (\PUNT.BLTSHADE.BITMAP 149563 . 156659) (\PUNT.BITBLT.BITMAP 156661 . 165932)) (165935 169375 (
\SCALEDBITBLT.DISPLAY 165945 . 167578) (\BACKCOLOR.DISPLAY 167580 . 169373)) (173230 175503 (
DISPLAYSTREAMP 173240 . 173848) (DSPSOURCETYPE 173850 . 174859) (DSPXOFFSET 174861 . 175180) (
DSPYOFFSET 175182 . 175501)) (175504 189699 (DSPDESTINATION 175514 . 178617) (DSPTEXTURE 178619 .
178781) (\DISPLAYSTREAMINCRXPOSITION 178783 . 179070) (\SFFixDestination 179072 . 180250) (
\SFFixClippingRegion 180252 . 182424) (\SFFixFont 182426 . 183476) (\SFFIXLINELENGTH 183478 . 184974)
(\UPDATE-SYNONYM-STREAM-LINELENGTH-FIELD 184976 . 186789) (\SFFixY 186791 . 189697)) (189700 193547 (
\SIMPLE.DSPCREATE 189710 . 190260) (\COMMON.DSPCREATE 190262 . 193545)) (193648 195842 (\MEDW.XOFFSET
193658 . 194799) (\MEDW.YOFFSET 194801 . 195840)) (195843 203769 (\DSPCLIPPINGREGION.DISPLAY 195853 .
196599) (\DSPFONT.DISPLAY 196601 . 198971) (\DISPLAY.PILOTBITBLT 198973 . 199122) (
\DSPLINEFEED.DISPLAY 199124 . 199695) (\DSPLEFTMARGIN.DISPLAY 199697 . 200428) (\DSPOPERATION.DISPLAY
200430 . 201454) (\DSPRIGHTMARGIN.DISPLAY 201456 . 202301) (\DSPXPOSITION.DISPLAY 202303 . 203160) (
\DSPYPOSITION.DISPLAY 203162 . 203767)) (207957 212993 (TTYDISPLAYSTREAM 207967 . 212991)) (213296
214326 (DSPSCROLL 213306 . 214006) (PAGEHEIGHT 214008 . 214324)) (214371 217393 (\DSPRESET.DISPLAY
214381 . 217391)) (217429 217952 (\MAYBE-DRIBBLE-CHAR 217429 . 217952)) (217953 238591 (\DSPPRINTCHAR
217963 . 225801) (\DSPPRINTCR/LF 225803 . 238589)) (238592 239184 (\TTYBACKGROUND 238602 . 239182)) (
239185 242472 (DSPBACKUP 239195 . 242470)) (242656 242912 (COLORDISPLAYP 242666 . 242910)) (242913
244984 (DISPLAYBEFOREEXIT 242923 . 243749) (DISPLAYAFTERENTRY 243751 . 244982)) (245356 249888 (
\DSPCLIPTRANSFORMX 245366 . 245955) (\DSPCLIPTRANSFORMY 245957 . 246682) (\DSPTRANSFORMREGION 246684
. 247216) (\DSPUNTRANSFORMY 247218 . 247478) (\DSPUNTRANSFORMX 247480 . 247740) (
\OFFSETCLIPPINGREGION 247742 . 249886)) (251202 253789 (UPDATESCREENDIMENSIONS 251212 . 251841) (
\CreateScreenBitMap 251843 . 253787)) (254348 267507 (\CoerceToDisplayDevice 254358 . 254771) (
\CREATEDISPLAY 254773 . 256613) (DISPLAYSTREAMINIT 256615 . 259759) (\STARTDISPLAY 259761 . 262672) (
\MOVE.WINDOWS.ONTO.SCREEN 262674 . 264866) (\UPDATE.PBT.RASTERWIDTHS 264868 . 266650) (\STOPDISPLAY
266652 . 267144) (\DEFINEDISPLAYINFO 267146 . 267505)) (268115 268876 (INITIALIZEDISPLAYSTREAMS 268125
. 268874)))))
(FILEMAP (NIL (20459 23127 (\FBITMAPBIT 20469 . 20929) (\FBITMAPBIT.UFN 20931 . 21950) (
\NEWPAGE.DISPLAY 21952 . 22087) (INITBITMASKS 22089 . 23125)) (25052 25561 (\CreateCursorBitMap 25062
. 25559)) (25678 86230 (BITBLT 25688 . 36078) (BLTSHADE 36080 . 36858) (\BITBLTSUB 36860 . 46995) (
\GETPILOTBBTSCRATCHBM 46997 . 47612) (BITMAPCOPY 47614 . 48190) (BITMAPCREATE 48192 . 49752) (
BITMAPBIT 49754 . 58141) (BITMAPEQUAL 58143 . 59605) (BLTCHAR 59607 . 60223) (\BLTCHAR 60225 . 60727)
(\MEDW.BLTCHAR 60729 . 65607) (\CHANGECHARSET.DISPLAY 65609 . 68567) (\INDICATESTRING 68569 . 69765) (
\SLOWBLTCHAR 69767 . 76863) (TEXTUREP 76865 . 77135) (INVERT.TEXTURE 77137 . 77411) (
INVERT.TEXTURE.BITMAP 77413 . 78948) (BITMAPWIDTH 78950 . 79322) (READBITMAP 79324 . 81834) (
\INSUREBITSPERPIXEL 81836 . 82131) (MAXIMUMCOLOR 82133 . 82274) (OPPOSITECOLOR 82276 . 82455) (
MAXIMUMSHADE 82457 . 82668) (OPPOSITESHADE 82670 . 82849) (\MEDW.BITBLT 82851 . 86228)) (86232 91418 (
FINISH-READING-BITMAP 86232 . 91418)) (92540 93021 (BITMAPBIT.EXPANDER 92550 . 93019)) (93022 141556 (
\BITBLT.DISPLAY 93032 . 116271) (\BITBLT.BITMAP 116273 . 125372) (\BITBLT.MERGE 125374 . 127627) (
\BLTSHADE.DISPLAY 127629 . 134729) (\BLTSHADE.BITMAP 134731 . 141554)) (141557 150877 (
\BITBLT.BITMAP.SLOW 141567 . 150875)) (150878 167259 (\PUNT.BLTSHADE.BITMAP 150888 . 157984) (
\PUNT.BITBLT.BITMAP 157986 . 167257)) (167260 170700 (\SCALEDBITBLT.DISPLAY 167270 . 168903) (
\BACKCOLOR.DISPLAY 168905 . 170698)) (174555 176828 (DISPLAYSTREAMP 174565 . 175173) (DSPSOURCETYPE
175175 . 176184) (DSPXOFFSET 176186 . 176505) (DSPYOFFSET 176507 . 176826)) (176829 191024 (
DSPDESTINATION 176839 . 179942) (DSPTEXTURE 179944 . 180106) (\DISPLAYSTREAMINCRXPOSITION 180108 .
180395) (\SFFixDestination 180397 . 181575) (\SFFixClippingRegion 181577 . 183749) (\SFFixFont 183751
. 184801) (\SFFIXLINELENGTH 184803 . 186299) (\UPDATE-SYNONYM-STREAM-LINELENGTH-FIELD 186301 . 188114
) (\SFFixY 188116 . 191022)) (191025 194872 (\SIMPLE.DSPCREATE 191035 . 191585) (\COMMON.DSPCREATE
191587 . 194870)) (194973 197167 (\MEDW.XOFFSET 194983 . 196124) (\MEDW.YOFFSET 196126 . 197165)) (
197168 205094 (\DSPCLIPPINGREGION.DISPLAY 197178 . 197924) (\DSPFONT.DISPLAY 197926 . 200296) (
\DISPLAY.PILOTBITBLT 200298 . 200447) (\DSPLINEFEED.DISPLAY 200449 . 201020) (\DSPLEFTMARGIN.DISPLAY
201022 . 201753) (\DSPOPERATION.DISPLAY 201755 . 202779) (\DSPRIGHTMARGIN.DISPLAY 202781 . 203626) (
\DSPXPOSITION.DISPLAY 203628 . 204485) (\DSPYPOSITION.DISPLAY 204487 . 205092)) (209282 214318 (
TTYDISPLAYSTREAM 209292 . 214316)) (214621 215651 (DSPSCROLL 214631 . 215331) (PAGEHEIGHT 215333 .
215649)) (215696 218718 (\DSPRESET.DISPLAY 215706 . 218716)) (218754 219277 (\MAYBE-DRIBBLE-CHAR
218754 . 219277)) (219278 239916 (\DSPPRINTCHAR 219288 . 227126) (\DSPPRINTCR/LF 227128 . 239914)) (
239917 240509 (\TTYBACKGROUND 239927 . 240507)) (240510 243797 (DSPBACKUP 240520 . 243795)) (243981
244237 (COLORDISPLAYP 243991 . 244235)) (244238 246309 (DISPLAYBEFOREEXIT 244248 . 245074) (
DISPLAYAFTERENTRY 245076 . 246307)) (246681 251213 (\DSPCLIPTRANSFORMX 246691 . 247280) (
\DSPCLIPTRANSFORMY 247282 . 248007) (\DSPTRANSFORMREGION 248009 . 248541) (\DSPUNTRANSFORMY 248543 .
248803) (\DSPUNTRANSFORMX 248805 . 249065) (\OFFSETCLIPPINGREGION 249067 . 251211)) (252527 255114 (
UPDATESCREENDIMENSIONS 252537 . 253166) (\CreateScreenBitMap 253168 . 255112)) (255673 268832 (
\CoerceToDisplayDevice 255683 . 256096) (\CREATEDISPLAY 256098 . 257938) (DISPLAYSTREAMINIT 257940 .
261084) (\STARTDISPLAY 261086 . 263997) (\MOVE.WINDOWS.ONTO.SCREEN 263999 . 266191) (
\UPDATE.PBT.RASTERWIDTHS 266193 . 267975) (\STOPDISPLAY 267977 . 268469) (\DEFINEDISPLAYINFO 268471 .
268830)) (269440 270201 (INITIALIZEDISPLAYSTREAMS 269450 . 270199)))))
STOP