@@ -256,8 +256,8 @@ void ss_save_under_set_pixel(int color, short i, short j) {
256
256
void bio_set_pixel (int color , short x , short y ) {
257
257
short x0 , x1 , y0 , y1 , i , j ;
258
258
259
- // KLC - don't need if ((curr_bio_mode == DIFF_BIO) && (under_bio(x)))
260
- // return;
259
+ if ((curr_bio_mode == DIFF_BIO ) && (under_bio (x )))
260
+ return ;
261
261
if (convert_use_mode ) {
262
262
x0 = SCONV_X (x );
263
263
y0 = SCONV_Y (y );
@@ -274,27 +274,14 @@ void bio_set_pixel(int color, short x, short y) {
274
274
// Restore the pixels from the offscreen background bitmap.
275
275
// ---------------------------------------------------------
276
276
void bio_restore_pixel (grs_bitmap * bmp , short x , short y ) {
277
- int x0 , y0 ;
278
- int x1 , y1 ;
279
- uchar * pp ;
280
- int i , j ;
281
-
282
- // Determine where x and y really are on the Mac screen.
283
- x0 = SCONV_X (x );
284
- y0 = SCONV_Y (y );
285
- x1 = SCONV_X (x + 1 );
286
- y1 = SCONV_Y (y + 1 );
287
-
288
- // OK, this sets a pointer to the background bitmap at the same location. I just happen
289
- // to know that the difference between the on-screen and offscreen bitmaps is (10,2).
290
- pp = bmp -> bits + (bmp -> row * (y0 - 2 ) + (x0 - 10 ));
291
-
292
- // Restore the pixels directly from the offscreen background bitmap.
293
- for (j = y0 ; j < y1 ; j ++ ) {
294
- for (i = x0 ; i < x1 ; i ++ )
295
- ss_save_under_set_pixel (* pp ++ , i , j );
296
- pp += bmp -> row - 2 ;
297
- }
277
+ if ((curr_bio_mode == DIFF_BIO ) && (under_bio (x )))
278
+ return ;
279
+
280
+ short a , b , c , d ;
281
+ STORE_CLIP (a , b , c , d );
282
+ ss_cset_cliprect (& bio_canvas , x , y , x + 1 , y + 1 );
283
+ ss_bitmap (bmp , STATUS_BIO_X , STATUS_BIO_Y );
284
+ RESTORE_CLIP (a , b , c , d );
298
285
}
299
286
300
287
// ---------------------------------------------------------
0 commit comments