2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
13 #include <dbmem.h> // must be last header!
24 int num_added
, num_deleted
;
26 int sizes
[] = { 1,2,4,8, 16,32,64,128, 256 };
33 for(j
=0; j
< rect
[x
].ht
; ++j
)
34 for (i
=0; i
< rect
[x
].wid
; ++i
)
35 if (rect
[x
].pt
[j
*256+i
] != rect
[x
].data
) goto ouch
;
36 portal_free_mem_rect(rect
[x
].pt
, rect
[x
].wid
, rect
[x
].ht
);
41 Error(1, "Bad data!\n");
52 rect
[x
].wid
= sizes
[sz
+ !!(y
& 1)];
53 rect
[x
].ht
= sizes
[sz
+ !!(y
& 2)];
54 rect
[x
].data
= rand();
55 rect
[x
].pt
= portal_allocate_mem_rect(rect
[x
].wid
, rect
[x
].ht
);
56 for (i
=0; i
< rect
[x
].ht
; ++i
)
57 memset(rect
[x
].pt
+ i
*256, rect
[x
].data
, rect
[x
].wid
);
60 void process_rect(int x
)
62 if (rect
[x
].pt
) delete(x
); else add(x
);
65 extern int max_strips
;
67 int main(int argc
, char **argv
)
72 n
= argc
> 1 ? atoi(argv
[1]) : 4096;
75 process_rect((unsigned int) rand() % MAX_RECT
);
77 for (i
=0; i
< MAX_RECT
; ++i
)
81 printf("Successfully inserted %d and deleted %d\n", num_added
, num_deleted
);
82 printf("%d strips\n", max_strips
);