]> git.zerfleddert.de Git - micropolis/blobdiff - src/sim/w_x.c
allow overriding $CC for tclx
[micropolis] / src / sim / w_x.c
index 3ad6c04cc9b527ac9e4e14b31676de0101fb1a6f..b2a1c8b37d8cd9f0933eaa04ce52ece1258fa8e8 100644 (file)
@@ -91,7 +91,11 @@ unsigned char ColorIntensities[] = {
        /* COLOR_BLACK */               0,
 };
 
+void FreeTiles(SimView *view);
+void AllocTiles(SimView *view);
+void DoAdjustPan(struct SimView *view);
 
+void
 ViewToTileCoords(SimView *view, int x, int y, int *outx, int *outy)
 {
   x = (view->pan_x - ((view->w_width >>1) - x)) >>4;
@@ -120,6 +124,7 @@ ViewToTileCoords(SimView *view, int x, int y, int *outx, int *outy)
 }
 
 
+void
 ViewToPixelCoords(SimView *view, int x, int y, int *outx, int *outy)
 {
   x = view->pan_x - ((view->w_width >>1) - x);
@@ -148,7 +153,8 @@ ViewToPixelCoords(SimView *view, int x, int y, int *outx, int *outy)
 }
 
 
-UpdateFlush()
+void
+UpdateFlush(void)
 {
   struct XDisplay *xd;
 
@@ -216,7 +222,8 @@ printf("GOT X ERROR code %d request code %d %d\n",
 }
 
 
-DoStopMicropolis()
+void
+DoStopMicropolis(void)
 {
   (void)XSetErrorHandler(CatchXError);
 
@@ -244,7 +251,8 @@ DoStopMicropolis()
 }
 
 
-DoTimeoutListen()
+void
+DoTimeoutListen(void)
 {
   while (Tk_DoOneEvent(TK_DONT_WAIT)) ;
 }
@@ -273,10 +281,7 @@ XDisplay *
 FindXDisplay(Tk_Window tkwin)
 {
   XDisplay *xd;
-  int d = 8;
-  unsigned long valuemask = 0;
-  XGCValues values;
-  XColor rgb, *color;
+  XColor *color;
   Display *dpy = Tk_Display(tkwin);
   Screen *screen = Tk_Screen(tkwin);
 #ifdef IS_LINUX
@@ -333,6 +338,7 @@ FindXDisplay(Tk_Window tkwin)
              (((color->green >> (8 + 2)) & 0x1f) << (5)) | \
              (((color->blue >> (8 + 3)) & 0x1f) << (0)); \
            } else { \
+           xd->pixels[i] = \
              (((color->blue >> (8 + 3)) & 0x1f) << (5 + 5)) | \
              (((color->green >> (8 + 2)) & 0x1f) << (5)) | \
              (((color->red >> (8 + 3)) & 0x1f) << (0)); \
@@ -485,12 +491,14 @@ FindXDisplay(Tk_Window tkwin)
 }
 
 
+void
 IncRefDisplay(XDisplay *xd)
 {
   xd->references++;
 }
 
 
+void
 DecRefDisplay(XDisplay *xd)
 {
   if ((--xd->references) == 0) {
@@ -502,14 +510,8 @@ DecRefDisplay(XDisplay *xd)
 SimView *
 InitNewView(SimView *view, char *title, int class, int w, int h)
 {
-  int type, i;
   int test = 1;
-  int d = 8;
-  unsigned long valuemask = 0;
   char *t;
-  struct XDisplay *xd;
-  XGCValues values;
-  XColor rgb, *color;
 
   t = (char *)ckalloc(strlen(title) + 1);
   strcpy(t, title);
@@ -611,12 +613,11 @@ InitNewView(SimView *view, char *title, int class, int w, int h)
   view->pan_x = w / 2; view->pan_y = h / 2;
   DoResizeView(view, w, h);
 
-  GetViewTiles(view);
-
   return (view);
 }
 
 
+void
 DestroyView(SimView *view)
 {
   SimView **vp;
@@ -725,6 +726,7 @@ AllocPixels(int len, unsigned char pixel)
 }
 
 
+void
 DoResizeView(SimView *view, int w, int h)
 {
   int resize = 0;
@@ -904,7 +906,7 @@ DoResizeView(SimView *view, int w, int h)
     }
 
     view->data = (unsigned char *)shmat(view->shminfo->shmid, 0, 0);
-    if ((int)view->data == -1) {
+    if ((char*)view->data == (char*)-1) {
       perror("shmat");
       fprintf(stderr,
              "Darn, Micropolis can't find any memory to share with display \"%s\".\n",
@@ -936,7 +938,7 @@ DoResizeView(SimView *view, int w, int h)
       if (!GotXError) {
        attached = 1;
        view->pixmap = XShmCreatePixmap(view->x->dpy, view->x->root,
-                                       view->data, view->shminfo,
+                                       (char*)view->data, view->shminfo,
                                        view->m_width, view->m_height,
                                        view->x->depth);
        XSync(view->x->dpy, False);
@@ -1244,15 +1246,20 @@ DoResizeView(SimView *view, int w, int h)
       }
     }
   }
+
+  GetViewTiles(view);
+
 }
 
 
+void
 DoPanBy(struct SimView *view, int dx, int dy)
 {
   DoPanTo(view, view->pan_x + dx, view->pan_y + dy);
 }
 
 
+void
 DoPanTo(struct SimView *view, int x, int y)
 {
   if (view->class != Editor_Class) {
@@ -1273,12 +1280,12 @@ DoPanTo(struct SimView *view, int x, int y)
 
 /* #define DEBUG_PAN */
 
+void
 DoAdjustPan(struct SimView *view)
 {
   int ww2 = view->w_width >>1, wh2 = view->w_height >>1;
   int px = view->pan_x, py = view->pan_y;
   int last_tile_x = view->tile_x, last_tile_y = view->tile_y;
-  int last_tile_width = view->tile_width, last_tile_height = view->tile_height;
   int total_width = view->m_width >>4, total_height = view->m_height >>4;
 //fprintf(stderr, "DoAdjustPan\n");
 
@@ -1391,6 +1398,7 @@ DoAdjustPan(struct SimView *view)
 }
 
 
+void
 AllocTiles(SimView *view)
 {
   int row, col;
@@ -1422,6 +1430,7 @@ AllocTiles(SimView *view)
 }
 
 
+void
 FreeTiles(SimView *view)
 {
   int col;
@@ -1466,6 +1475,7 @@ NewInk()
 }
 
 
+void
 FreeInk(Ink *ink)
 {
   ink->next = OldInk;
@@ -1473,6 +1483,7 @@ FreeInk(Ink *ink)
 }
 
 
+void
 StartInk(Ink *ink, int x, int y)
 {
   ink->length = 1;
@@ -1481,6 +1492,7 @@ StartInk(Ink *ink, int x, int y)
 }
 
 
+void
 AddInk(Ink *ink, int x, int y)
 {
   int dx = x - ink->last_x;
@@ -1514,7 +1526,7 @@ AddInk(Ink *ink, int x, int y)
     ink->points[ink->length].y = dy;
     ink->length++;
 
-  ADJUST:
+  /* ADJUST: */
     if (x < ink->left)
       ink->left = x;
     if (x > ink->right)
@@ -1552,7 +1564,8 @@ AddInk(Ink *ink, int x, int y)
 }
 
 
-EraseOverlay()
+void
+EraseOverlay(void)
 {
   Ink *ink;
 
Impressum, Datenschutz