removed some remaining unused X11 stuff
authorHolger Schemel <info@artsoft.org>
Fri, 17 Oct 2014 17:08:21 +0000 (19:08 +0200)
committerHolger Schemel <info@artsoft.org>
Fri, 17 Oct 2014 17:08:21 +0000 (19:08 +0200)
18 files changed:
ChangeLog
src/conftime.h
src/events.c
src/game.c
src/game_em/graphics.c
src/game_em/init.c
src/game_em/main_em.h
src/game_sp/DDScrollBuffer.c
src/libgame/misc.c
src/libgame/sdl.h
src/libgame/system.c
src/libgame/system.h
src/libgame/text.c
src/libgame/toons.c
src/main.c
src/main.h
src/screens.c
src/tools.c

index 6eb942cbce01d60620989305019d268defe30f12..f897a15309360a4e7b07d14bbc5d1f92a540a01c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2014-10-17
+       * removed some remaining unused X11 stuff
+
 2014-10-16
        * fixed bug not loading tape when selecting level from level selection
          screen (thanks to filbo for finding this bug and supplying a patch)
index d410d2ac9f3dd1a57bc820a7b99852c9faa8e36c..a3077953a829734dd1db6b425fdd94b6baf56663 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2014-10-16 02:19"
+#define COMPILE_DATE_STRING "2014-10-17 19:07"
index fd735bfe3a0e427cf34510e2179d2278a5e245a5..f89e5236071b7d30c8e66499a539808a868f5d53 100644 (file)
@@ -231,8 +231,6 @@ void EventLoop(void)
     }
     else
     {
-      SyncDisplay();
-
       if (!PendingEvent())     /* delay only if no pending events */
        Delay(10);
     }
index a906aad2379992b0539d746e1d11187071eecbaa..0fa3035d4fce292bfa48d717d8e0a2ae697397da 100644 (file)
@@ -2519,17 +2519,11 @@ void DisplayGameControlValues()
        height = graphic_info[graphic].height * size / TILESIZE;
 
        if (draw_masked)
-       {
-         SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                       dst_x - src_x, dst_y - src_y);
          BlitBitmapMasked(src_bitmap, drawto, src_x, src_y, width, height,
                           dst_x, dst_y);
-       }
        else
-       {
          BlitBitmap(src_bitmap, drawto, src_x, src_y, width, height,
                     dst_x, dst_y);
-       }
       }
     }
     else if (type == TYPE_STRING)
@@ -5007,7 +5001,6 @@ void DrawRelocateScreen(int old_x, int old_y, int x, int y, int move_dir,
 
       /* scroll in two steps of half tile size to make things smoother */
       BlitBitmap(drawto_field, window, fx, fy, SXSIZE, SYSIZE, SX, SY);
-      FlushDisplay();
       Delay(wait_delay_value);
 
       /* scroll second step to align at full tile size */
index 12c621809b2f589440727cddabcc2e7b525643d9..2a624af2a7a7e52ef4d02a591a8e8be4af0c3dbc 100644 (file)
@@ -104,8 +104,6 @@ void BackToFront_EM(void)
   boolean scrolling = (screen_x != screen_x_last || screen_y != screen_y_last);
   int x, y;
 
-  SyncDisplay();
-
   if (redraw_tiles > REDRAWTILES_THRESHOLD || scrolling || scrolling_last)
   {
     /* blit all (up to four) parts of the scroll buffer to the backbuffer */
@@ -153,8 +151,6 @@ void BackToFront_EM(void)
     InitGfxClipRegion(FALSE, -1, -1, -1, -1);
   }
 
-  FlushDisplay();
-
   for (x = 0; x < MAX_BUF_XSIZE; x++)
     for (y = 0; y < MAX_BUF_YSIZE; y++)
       redraw[x][y] = FALSE;
@@ -212,12 +208,8 @@ static void DrawLevelField_EM(int x, int y, int sx, int sy,
   if (draw_masked)
   {
     if (width > 0 && height > 0)
-    {
-      SetClipOrigin(g->bitmap, g->bitmap->stored_clip_gc,
-                   dst_x - src_x, dst_y - src_y);
       BlitBitmapMasked(g->bitmap, screenBitmap,
                       src_x, src_y, width, height, dst_x, dst_y);
-    }
   }
   else
   {
@@ -280,12 +272,8 @@ static void DrawLevelFieldCrumbled_EM(int x, int y, int sx, int sy,
        int dst_y = sy * TILEY + cy;
 
        if (draw_masked)
-       {
-         SetClipOrigin(g->crumbled_bitmap, g->crumbled_bitmap->stored_clip_gc,
-                       dst_x - src_x, dst_y - src_y);
          BlitBitmapMasked(g->crumbled_bitmap, screenBitmap,
                           src_x, src_y, width, height, dst_x, dst_y);
-       }
        else
          BlitBitmap(g->crumbled_bitmap, screenBitmap,
                     src_x, src_y, width, height, dst_x, dst_y);
@@ -314,24 +302,18 @@ static void DrawLevelPlayer_EM(int x1, int y1, int player_nr, int anim,
     /* draw the player to current location */
     dst_x = x1;
     dst_y = y1;
-    SetClipOrigin(g->bitmap, g->bitmap->stored_clip_gc,
-                 dst_x - src_x, dst_y - src_y);
     BlitBitmapMasked(g->bitmap, screenBitmap,
                     src_x, src_y, TILEX, TILEY, dst_x, dst_y);
 
     /* draw the player to opposite wrap-around column */
     dst_x = x1 - MAX_BUF_XSIZE * TILEX;
     dst_y = y1;
-    SetClipOrigin(g->bitmap, g->bitmap->stored_clip_gc,
-                 dst_x - src_x, dst_y - src_y);
     BlitBitmapMasked(g->bitmap, screenBitmap,
                     g->src_x, g->src_y, TILEX, TILEY, dst_x, dst_y);
 
     /* draw the player to opposite wrap-around row */
     dst_x = x1;
     dst_y = y1 - MAX_BUF_YSIZE * TILEY;
-    SetClipOrigin(g->bitmap, g->bitmap->stored_clip_gc,
-                 dst_x - src_x, dst_y - src_y);
     BlitBitmapMasked(g->bitmap, screenBitmap,
                     g->src_x, g->src_y, TILEX, TILEY, dst_x, dst_y);
   }
index d0ccc09442237c90d84769f8b5433924844ca717..719f5e13db13e096b58dd1ca51491cecdbb31f17 100644 (file)
@@ -13,9 +13,6 @@ Bitmap *sprBitmap;
 
 Bitmap *screenBitmap;
 
-Pixmap objPixmap;
-Pixmap sprPixmap;
-
 char play[SAMPLE_MAX];
 int play_x[SAMPLE_MAX];
 int play_y[SAMPLE_MAX];
index 46ade6550286f9b15279ec7924aa2a8dd27e538c..6c9653154b8631e38e716fed372d56d99c286ff8 100644 (file)
@@ -126,15 +126,6 @@ extern Bitmap *sprBitmap;
 extern Bitmap *ttlBitmap;
 extern Bitmap *botBitmap;
 
-extern Pixmap screenPixmap;
-extern Pixmap scorePixmap;
-extern Pixmap spriteBitmap;
-
-extern Pixmap objmaskBitmap;
-extern Pixmap sprmaskBitmap;
-
-extern GC spriteGC;
-
 
 /* ------------------------------------------------------------------------- */
 /* exported functions                                                        */
index 698d33b8b2003eee24b054d532d428688fd5ddd6..271a6404a8626b0a52815798daa59f87a9250ea6 100644 (file)
@@ -245,8 +245,6 @@ void BackToFront_SP(void)
   boolean scrolling = (mScrollX != scroll_x_last || mScrollY != scroll_y_last);
   int x, y;
 
-  SyncDisplay();
-
   if (0 ||
       redraw_tiles > REDRAWTILES_THRESHOLD || scrolling || scrolling_last ||
       ExplosionShakeMurphy != 0 || ExplosionShakeMurphy_last != 0)
@@ -291,8 +289,6 @@ void BackToFront_SP(void)
     InitGfxClipRegion(FALSE, -1, -1, -1, -1);
   }
 
-  FlushDisplay();
-
   for (x = 0; x < 2 + MAX_PLAYFIELD_WIDTH + 2; x++)
     for (y = 0; y < 2 + MAX_PLAYFIELD_HEIGHT + 2; y++)
       redraw[x][y] = FALSE;
index cd9d3e93cf7e3a477db76ebb5a1684255fed46ee..31adce34c6a1eec5f5ace6f68870628128e45b20 100644 (file)
@@ -760,7 +760,6 @@ void GetOptions(char *argv[],
   options.network = FALSE;
   options.verbose = FALSE;
   options.debug = FALSE;
-  options.debug_x11_sync = FALSE;
 
 #if 1
   options.verbose = TRUE;
@@ -888,10 +887,6 @@ void GetOptions(char *argv[],
     {
       options.debug = TRUE;
     }
-    else if (strncmp(option, "-debug-x11-sync", option_len) == 0)
-    {
-      options.debug_x11_sync = TRUE;
-    }
     else if (strncmp(option, "-verbose", option_len) == 0)
     {
       options.verbose = TRUE;
index 3525122001825f750a9cf62826cd4c350c7203b7..79827b4501dc6247076dc4dd1385378d813ca1be 100644 (file)
@@ -92,12 +92,6 @@ typedef SDL_Event            ExposeEvent;
 typedef SDL_Event              FocusChangeEvent;
 typedef SDL_Event              ClientMessageEvent;
 
-typedef int                    GC;
-typedef int                    Pixmap;
-typedef int                    Display;
-typedef int                    Visual;
-typedef int                    Colormap;
-
 
 /* structure definitions */
 
@@ -108,8 +102,6 @@ struct SDLSurfaceInfo
   int width, height;
   SDL_Surface *surface;
   SDL_Surface *surface_masked;
-  GC gc;
-  GC stored_clip_gc;
 };
 
 struct MouseCursorInfo
index 9484cbd2e5b5840c5b8f10083f575676885d217b..25edb0effd65a959df172d43fa84f9c03d77ddcb 100644 (file)
@@ -44,11 +44,6 @@ int                  level_nr;
 
 struct LevelStats      level_stats[MAX_LEVELS];
 
-Display                       *display = NULL;
-Visual                *visual = NULL;
-int                    screen = 0;
-Colormap               cmap = None;
-
 DrawWindow            *window = NULL;
 DrawBuffer            *backbuffer = NULL;
 DrawBuffer            *drawto = NULL;
@@ -660,14 +655,6 @@ void ClearRectangleOnBackground(Bitmap *bitmap, int x, int y,
     ClearRectangle(bitmap, x, y, width, height);
 }
 
-void SetClipMask(Bitmap *bitmap, GC clip_gc, Pixmap clip_pixmap)
-{
-}
-
-void SetClipOrigin(Bitmap *bitmap, GC clip_gc, int clip_x, int clip_y)
-{
-}
-
 void BlitBitmapMasked(Bitmap *src_bitmap, Bitmap *dst_bitmap,
                      int src_x, int src_y, int width, int height,
                      int dst_x, int dst_y)
@@ -690,8 +677,6 @@ void BlitBitmapOnBackground(Bitmap *src_bitmap, Bitmap *dst_bitmap,
               dst_x, dst_y);
 
     /* draw foreground */
-    SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                 dst_x - src_x, dst_y - src_y);
     BlitBitmapMasked(src_bitmap, dst_bitmap, src_x, src_y, width, height,
                     dst_x, dst_y);
   }
@@ -774,16 +759,6 @@ Pixel GetPixelFromRGBcompact(Bitmap *bitmap, unsigned int color)
   return GetPixelFromRGB(bitmap, color_r, color_g, color_b);
 }
 
-/* execute all pending screen drawing operations */
-void FlushDisplay(void)
-{
-}
-
-/* execute and wait for all pending screen drawing operations */
-void SyncDisplay(void)
-{
-}
-
 void KeyboardAutoRepeatOn(void)
 {
 #if defined(TARGET_SDL2)
index 671a0e73b8b1de2c97079e25ae33afda32c9c4cb..04d97974f907963090f2e482b949c5b4bf49be4c 100644 (file)
@@ -707,7 +707,6 @@ struct OptionInfo
   boolean network;
   boolean verbose;
   boolean debug;
-  boolean debug_x11_sync;
 };
 
 struct ScreenModeInfo
@@ -1241,11 +1240,6 @@ extern int                       level_nr;
 
 extern struct LevelStats       level_stats[];
 
-extern Display                *display;
-extern Visual                 *visual;
-extern int                     screen;
-extern Colormap                        cmap;
-
 extern DrawWindow             *window;
 extern DrawBuffer             *backbuffer;
 extern DrawBuffer             *drawto;
@@ -1307,8 +1301,6 @@ void FadeRectangle(Bitmap *bitmap, int, int, int, int, int, int, int,
 void FillRectangle(Bitmap *, int, int, int, int, Pixel);
 void ClearRectangle(Bitmap *, int, int, int, int);
 void ClearRectangleOnBackground(Bitmap *, int, int, int, int);
-void SetClipMask(Bitmap *, GC, Pixmap);
-void SetClipOrigin(Bitmap *, GC, int, int);
 void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
 boolean DrawingOnBackground(int, int);
 void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int, int);
@@ -1319,8 +1311,6 @@ Pixel GetPixel(Bitmap *, int, int);
 Pixel GetPixelFromRGB(Bitmap *, unsigned int,unsigned int,unsigned int);
 Pixel GetPixelFromRGBcompact(Bitmap *, unsigned int);
 
-void FlushDisplay(void);
-void SyncDisplay(void);
 void KeyboardAutoRepeatOn(void);
 void KeyboardAutoRepeatOff(void);
 boolean PointerInWindow(DrawWindow *);
index 36cb6dd5a90bf61e89fe9bcd2b907fb414120d25..4c3f30ff143b2434cf66cc4f9d6dd135c6f69d56 100644 (file)
@@ -307,9 +307,6 @@ void DrawTextExt(DrawBuffer *dst_bitmap, int dst_x, int dst_y, char *text,
                                   font_width, font_height);
       }
 
-      SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                   dst_x - src_x, dst_y - src_y);
-
       BlitBitmapMasked(src_bitmap, dst_bitmap, src_x, src_y,
                       font_width, font_height, dst_x, dst_y);
     }
index 8d0a8ba53a57d515fcecac5b469f5a621c40ec4d..c9bf81ccf0eb54d3de8dd65cb6c53e941173f02a 100644 (file)
@@ -119,8 +119,7 @@ void InitToonScreen(Bitmap *save_buffer,
   screen_info.frame_delay_value = frame_delay_value;
 }
 
-void DrawAnim(Bitmap *toon_bitmap, GC toon_clip_gc,
-             int src_x, int src_y, int width, int height,
+void DrawAnim(Bitmap *toon_bitmap, int src_x, int src_y, int width, int height,
              int dest_x, int dest_y, int pad_x, int pad_y)
 {
   int pad_dest_x = dest_x - pad_x;
@@ -151,7 +150,6 @@ void DrawAnim(Bitmap *toon_bitmap, GC toon_clip_gc,
   /* special method to avoid flickering interference with BackToFront() */
   BlitBitmap(backbuffer, screen_info.save_buffer, pad_dest_x, pad_dest_y,
             pad_width, pad_height, buffer_x, buffer_y);
-  SetClipOrigin(toon_bitmap, toon_clip_gc, dest_x - src_x, dest_y - src_y);
   BlitBitmapMasked(toon_bitmap, backbuffer, src_x, src_y, width, height,
                   dest_x, dest_y);
   BlitBitmap(backbuffer, window, pad_dest_x, pad_dest_y, pad_width, pad_height,
@@ -161,8 +159,6 @@ void DrawAnim(Bitmap *toon_bitmap, GC toon_clip_gc,
 
   BlitBitmap(screen_info.save_buffer, backbuffer, buffer_x, buffer_y,
             pad_width, pad_height, pad_dest_x, pad_dest_y);
-
-  FlushDisplay();
 }
 
 boolean AnimateToon(int toon_nr, boolean restart)
@@ -181,7 +177,6 @@ boolean AnimateToon(int toon_nr, boolean restart)
   static int dest_x, dest_y;
   struct ToonInfo *anim = &screen_info.toons[toon_nr];
   Bitmap *anim_bitmap = screen_info.toons[toon_nr].bitmap;
-  GC anim_clip_gc = anim_bitmap->stored_clip_gc;
   int direction = get_toon_direction(anim->direction);
 
   if (restart)
@@ -257,7 +252,7 @@ boolean AnimateToon(int toon_nr, boolean restart)
   if (!DelayReached(&anim_delay, anim_delay_value))
   {
     if (screen_info.redraw_needed_function() && !restart)
-      DrawAnim(anim_bitmap, anim_clip_gc,
+      DrawAnim(anim_bitmap,
               src_x + cut_x, src_y + cut_y,
               width, height,
               screen_info.startx + dest_x,
@@ -304,7 +299,7 @@ boolean AnimateToon(int toon_nr, boolean restart)
   else if (pos_y > screen_info.height - anim->height)
     height -= (pos_y - (screen_info.height - anim->height));
 
-  DrawAnim(anim_bitmap, anim_clip_gc,
+  DrawAnim(anim_bitmap,
           src_x + cut_x, src_y + cut_y,
           width, height,
           screen_info.startx + dest_x,
index 74e539656b85e24d84f731f854977326a7257dd9..94c442547aa4a9bcd7d8493db46ea74b7ce4a553 100644 (file)
@@ -5560,7 +5560,6 @@ static void print_usage()
         "  -v, --verbose                    verbose mode\n"
         "  -V, --version                    show program version\n"
         "      --debug                      display debugging information\n"
-        "      --debug-x11-sync             enable X11 synchronous mode\n"
         "  -e, --execute COMMAND            execute batch COMMAND\n"
         "\n"
         "Valid commands for '--execute' option:\n"
index 14e9414355cd6dc71f3d4cb4d9cf7ff8767cb8db..4937e55c0cdd83433719aee52211e59e4a3908ed 100644 (file)
@@ -2797,7 +2797,6 @@ extern Bitmap                    *bitmap_db_panel;
 extern Bitmap                 *bitmap_db_door_1;
 extern Bitmap                 *bitmap_db_door_2;
 extern Bitmap                 *bitmap_db_toons;
-extern Pixmap                  tile_clipmask[];
 extern DrawBuffer             *fieldbuffer;
 extern DrawBuffer             *drawto_field;
 
index 20f5f67ce29dad3fdb2d6b02cb371e431ce8f5ac..0bd9af8403d35c5a2de0cbdc3fb445a98d603b0b 100644 (file)
@@ -1224,10 +1224,7 @@ void DrawTitleScreenImage(int nr, boolean initial)
   ClearRectangleOnBackground(drawto, 0, 0, WIN_XSIZE, WIN_YSIZE);
 
   if (DrawingOnBackground(dst_x, dst_y))
-  {
-    SetClipOrigin(bitmap, bitmap->stored_clip_gc, dst_x - src_x, dst_y - src_y);
     BlitBitmapMasked(bitmap, drawto, src_x, src_y, width, height, dst_x, dst_y);
-  }
   else
     BlitBitmap(bitmap, drawto, src_x, src_y, width, height, dst_x, dst_y);
 
@@ -1684,7 +1681,7 @@ void HandleMainMenu_SelectLevel(int step, int direction, int selected_level_nr)
 
     /* needed because DrawPreviewLevelInitial() takes some time */
     BackToFront();
-    SyncDisplay();
+    /* SyncDisplay(); */
   }
 }
 
index 082aa5ea08cb503b0fea7bd304ec9ce5ac66f032..e2ce4712db41208c121239ecaf39204270c6d0c2 100644 (file)
@@ -292,7 +292,6 @@ void DrawMaskedBorder_Rect(int x, int y, int width, int height)
 {
   Bitmap *bitmap = graphic_info[IMG_GLOBAL_BORDER].bitmap;
 
-  SetClipOrigin(bitmap, bitmap->stored_clip_gc, 0, 0);
   BlitBitmapMasked(bitmap, backbuffer, x, y, width, height, x, y);
 }
 
@@ -531,7 +530,7 @@ void BackToFront()
      this could mean that we have to wait for the graphics to complete,
      although we could go on doing calculations for the next frame */
 
-  SyncDisplay();
+  /* SyncDisplay(); */
 
   /* never draw masked border to backbuffer when using playfield buffer */
   if (game_status != GAME_MODE_PLAYING ||
@@ -664,8 +663,6 @@ void BackToFront()
     DrawTextExt(window, SX + SXSIZE + SX, 0, text, FONT_TEXT_2, BLIT_OPAQUE);
   }
 
-  FlushDisplay();
-
   for (x = 0; x < MAX_BUF_XSIZE; x++)
     for (y = 0; y < MAX_BUF_YSIZE; y++)
       redraw[x][y] = 0;
@@ -1249,9 +1246,6 @@ void DrawGraphicThruMaskExt(DrawBuffer *d, int dst_x, int dst_y, int graphic,
 
   getGraphicSource(graphic, frame, &src_bitmap, &src_x, &src_y);
 
-  SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-               dst_x - src_x, dst_y - src_y);
-
   BlitBitmapMasked(src_bitmap, d, src_x, src_y, TILEX_VAR, TILEY_VAR,
                   dst_x, dst_y);
 }
@@ -1264,8 +1258,6 @@ void DrawFixedGraphicThruMaskExt(DrawBuffer *d, int dst_x, int dst_y,
 
   getFixedGraphicSource(graphic, frame, &src_bitmap, &src_x, &src_y);
 
-  SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-               dst_x - src_x, dst_y - src_y);
   BlitBitmapMasked(src_bitmap, d, src_x, src_y, TILEX, TILEY, dst_x, dst_y);
 }
 
@@ -1402,12 +1394,8 @@ inline static void DrawGraphicShiftedNormal(int x, int y, int dx, int dy,
     dst_y = FY + y * TILEY_VAR + dy;
 
     if (mask_mode == USE_MASKING)
-    {
-      SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                   dst_x - src_x, dst_y - src_y);
       BlitBitmapMasked(src_bitmap, drawto_field, src_x, src_y, width, height,
                       dst_x, dst_y);
-    }
     else
       BlitBitmap(src_bitmap, drawto_field, src_x, src_y, width, height,
                 dst_x, dst_y);
@@ -1453,12 +1441,8 @@ inline static void DrawGraphicShiftedDouble(int x, int y, int dx, int dy,
     dst_y = FY + y1 * TILEY_VAR;
 
     if (mask_mode == USE_MASKING)
-    {
-      SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                   dst_x - src_x, dst_y - src_y);
       BlitBitmapMasked(src_bitmap, drawto_field, src_x, src_y, width, height,
                       dst_x, dst_y);
-    }
     else
       BlitBitmap(src_bitmap, drawto_field, src_x, src_y, width, height,
                 dst_x, dst_y);
@@ -1475,12 +1459,8 @@ inline static void DrawGraphicShiftedDouble(int x, int y, int dx, int dy,
     dst_y = FY + y2 * TILEY_VAR;
 
     if (mask_mode == USE_MASKING)
-    {
-      SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                   dst_x - src_x, dst_y - src_y);
       BlitBitmapMasked(src_bitmap, drawto_field, src_x, src_y, width, height,
                       dst_x, dst_y);
-    }
     else
       BlitBitmap(src_bitmap, drawto_field, src_x, src_y, width, height,
                 dst_x, dst_y);
@@ -2094,12 +2074,8 @@ void DrawEnvelopeBackgroundTiles(int graphic, int startx, int starty,
            inner_sy + (y - 1) * tile_height % inner_height);
 
   if (draw_masked)
-  {
-    SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
-                 dst_x - src_x, dst_y - src_y);
     BlitBitmapMasked(src_bitmap, drawto, src_x, src_y, tile_width, tile_height,
                     dst_x, dst_y);
-  }
   else
     BlitBitmap(src_bitmap, drawto, src_x, src_y, tile_width, tile_height,
               dst_x, dst_y);