Răsfoiți Sursa

ADRINT used in Graph and SDL2

Arthur Yefimov 4 ani în urmă
părinte
comite
4d8121a617
2 a modificat fișierele cu 67 adăugiri și 58 ștergeri
  1. 11 9
      src/Graph.Mod
  2. 56 49
      src/SDL2.Mod

+ 11 - 9
src/Graph.Mod

@@ -189,6 +189,8 @@ CONST
   mShift* = {mLShift, mRShift};
   mAlt*   = {mLAlt, mRAlt};
   mGui*   = {mLGui, mRGui};
+  
+  NIL0 = 0;
 
 TYPE
   ADRINT = SYSTEM.ADRINT;
@@ -1038,7 +1040,7 @@ END PumpMouseButton;
 
 PROCEDURE RepeatFlip*;
 BEGIN
-  IF screenTexture # NIL THEN
+  IF screenTexture # NIL0 THEN
     SDL.SetRenderDrawColor(renderer, 0, 0, 0, 255);
     SDL.RenderClear(renderer);
     SDL.RenderCopyNil(renderer, screenTexture);
@@ -1169,9 +1171,9 @@ BEGIN
     (* Blit buffer on screen *)
     SDL.SetRenderDrawColor(renderer, 0, 0, 0, 255);
     SDL.RenderClear(renderer);
-    IF screenTexture # NIL THEN
+    IF screenTexture # NIL0 THEN
       SDL.DestroyTexture(screenTexture);
-      screenTexture := NIL
+      screenTexture := NIL0
     END;
     screenTexture := SDL.CreateTextureFromSurface(renderer, screen.surface);
     SDL.RenderCopyNil(renderer, screenTexture);
@@ -1284,7 +1286,7 @@ PROCEDURE Recv*(socket: Socket;
   VAR data: ARRAY OF CHAR; len: INTEGER): INTEGER;
 BEGIN
   RETURN Net.TCPRecv(socket,
-    SYSTEM.VAL(SYSTEM.PTR, SYSTEM.ADR(data[0])), len)
+    SYSTEM.VAL(ADRINT, SYSTEM.ADR(data[0])), len)
 END Recv;
 
 PROCEDURE RecvStr*(socket: Socket; VAR s: ARRAY OF CHAR): INTEGER;
@@ -1351,7 +1353,7 @@ BEGIN
     buf.s := s
   END;
   n := Net.TCPRecv(socket,
-    SYSTEM.VAL(SYSTEM.PTR, SYSTEM.ADR(buf.s[buf.len])),
+    SYSTEM.VAL(ADRINT, SYSTEM.ADR(buf.s[buf.len])),
     len);
   buf.lastLen := buf.len;
   IF n > 0 THEN
@@ -1461,7 +1463,7 @@ BEGIN screen := NIL;
     window := SDL.CreateWindow('',
       SDL.windowPosUndefined, SDL.windowPosUndefined,
       wantW, wantH, flags);
-    IF window # NIL THEN
+    IF window # NIL0 THEN
       IF wantSoftware THEN flags := {SDL.rendererSoftware}
       ELSE flags := {SDL.rendererAccelerated}
       END;
@@ -1474,7 +1476,7 @@ BEGIN screen := NIL;
       END;
       SDL.RenderSetLogicalSize(renderer, wantW, wantH);
       screen := CreateBitmap(wantW, wantH);
-      screenTexture := NIL;
+      screenTexture := NIL0;
       UnsetRegion;
       SDL.ShowCursor(0);
       IF wantMouse THEN InitMouseData END;
@@ -1504,9 +1506,9 @@ END Init;
 
 PROCEDURE Close*;
 BEGIN
-  IF screenTexture # NIL THEN
+  IF screenTexture # NIL0 THEN
     SDL.DestroyTexture(screenTexture);
-    screenTexture := NIL
+    screenTexture := NIL0
   END;
   (*
   IF wantSound THEN Mix.Quit END;

+ 56 - 49
src/SDL2.Mod

@@ -149,13 +149,14 @@ CONST
   getEvent*  = 2;
 
 TYPE
+  ADRINT = SYSTEM.ADRINT;
   CHAR = SHORTCHAR;
   INT8* = SYSTEM.INT8;
   INT16* = SYSTEM.INT16;
 
-  Window* = SYSTEM.PTR;
+  Window* = ADRINT;
 
-  Renderer* = SYSTEM.PTR;
+  Renderer* = ADRINT;
 
   WindowEvent* = POINTER [1] TO WindowEventDesc;
   WindowEventDesc* = RECORD
@@ -164,13 +165,13 @@ TYPE
     windowID*: INTEGER;
     event*: INT16;
     data1*: INTEGER;
-    data2*: INTEGER;
+    data2*: INTEGER
   END;
 
   Keysym* = RECORD
     scancode*: INTEGER;
     sym*: INTEGER;
-    mod*: SHORTINT;
+    mod*: SHORTINT
   END;
 
   KeyboardEvent* = POINTER [1] TO KeyboardEventDesc;
@@ -181,7 +182,7 @@ TYPE
     state*: INT16;
     repeat*: INT16;
     keysym*: Keysym;
-    padding1: ARRAY 100 OF CHAR
+    padding1: ARRAY 5000(*!FIXME 100*) OF CHAR
   END;
 
   MouseMotionEvent* = POINTER [1] TO MouseMotionEventDesc;
@@ -194,7 +195,7 @@ TYPE
     x*: INTEGER;
     y*: INTEGER;
     xRel*: INTEGER;
-    yRel*: INTEGER;
+    yRel*: INTEGER
   END;
 
   MouseButtonEvent* = POINTER [1] TO MouseButtonEventDesc;
@@ -208,7 +209,7 @@ TYPE
     clicks*: INT8;
     padding1: INT8;
     x*: INTEGER;
-    y*: INTEGER;
+    y*: INTEGER
   END;
 
   MouseWheelEvent* = POINTER [1] TO MouseWheelEventDesc;
@@ -219,7 +220,7 @@ TYPE
     which*: INTEGER;
     x*: INTEGER;
     y*: INTEGER;
-    direction*: INTEGER;
+    direction*: INTEGER
   END;
 
   TextEditingEvent* = POINTER [1] TO TextEditingEventDesc;
@@ -229,7 +230,7 @@ TYPE
     windowID*: INTEGER;
     text*: ARRAY textEditingEventTextSize OF CHAR;
     start*: INTEGER;
-    length*: INTEGER;
+    length*: INTEGER
   END;
 
   TextInputEvent* = POINTER [1] TO TextInputEventDesc;
@@ -237,12 +238,12 @@ TYPE
     type*: INTEGER;
     timestamp*: INTEGER;
     windowID*: INTEGER;
-    text*: ARRAY textInputEventTextSize OF CHAR;
+    text*: ARRAY textInputEventTextSize OF CHAR
   END;
 
   Event* = RECORD
     type*: INTEGER;
-    padding1: ARRAY 124 OF CHAR
+    padding1: ARRAY 5000(*!FIXME 124*) OF CHAR
   END;
 
   Rect* = RECORD
@@ -252,7 +253,7 @@ TYPE
   Palette* = POINTER [1] TO PaletteDesc;
   PaletteDesc* = RECORD
     nColors: INTEGER;
-    colors: SYSTEM.PTR;
+    colors: ADRINT;
     version: INTEGER;
     refCount: INTEGER
   END;
@@ -261,7 +262,7 @@ TYPE
     format*: INTEGER;
     w*, h*: INTEGER;
     refreshRate*: INTEGER;
-    driverData: SYSTEM.PTR
+    driverData: ADRINT
   END;
 
   PixelFormat* = POINTER [1] TO PixelFormatDesc;
@@ -273,7 +274,7 @@ TYPE
     rMask*: INTEGER;
     gMask*: INTEGER;
     aMask*: INTEGER;
-    padding1: ARRAY 16 OF CHAR
+    padding1: ARRAY 5000(*!FIXME 17*) OF CHAR
   END;
 
   Surface* = POINTER [1] TO SurfaceDesc;
@@ -281,16 +282,16 @@ TYPE
     flags: INTEGER;
     format*: PixelFormat;
     w*, h*, pitch*: INTEGER;
-    pixels*: SYSTEM.PTR;
-    userData*: SYSTEM.PTR;
+    pixels*: ADRINT;
+    userData*: ADRINT;
     locked: INTEGER;
-    lockData: SYSTEM.PTR;
+    lockData: ADRINT;
     clipRect*: Rect;
-    map: SYSTEM.PTR;
+    map: ADRINT;
     refCount*: INTEGER
   END;
 
-  Texture* = SYSTEM.PTR;
+  Texture* = ADRINT;
 
   KeyArray* = POINTER [1] TO ARRAY 1024 OF BOOLEAN;
 
@@ -300,12 +301,13 @@ PROCEDURE -Init*(flags: SET): SHORTINT "SDL_Init(flags)";
 PROCEDURE -Quit* "SDL_Quit()";
 
 PROCEDURE -CreateWindow*(title: ARRAY OF CHAR; x, y, w, h: INTEGER;
-    flags: SET): Window "(void *)SDL_CreateWindow(title, x, y, w, h, flags)";
+    flags: SET): Window
+    "(SYSTEM_ADRINT)SDL_CreateWindow(title, x, y, w, h, flags)";
 PROCEDURE -GetWindowSize*(window: Window; VAR w, h: INTEGER)
-    "SDL_GetWindowSize(window, w, h)";
+    "SDL_GetWindowSize((void *)window, w, h)";
 PROCEDURE -SetWindowSize*(window: Window; w, h: INTEGER)
-    "SDL_SetWindowSize(window, w, h)";
-PROCEDURE -DestroyWindow(win: SYSTEM.PTR) "SDL_DestroyWindow(win)";
+    "SDL_SetWindowSize((void *)window, w, h)";
+PROCEDURE -DestroyWindow(window: ADRINT) "SDL_DestroyWindow((void *)window)";
 
 PROCEDURE -PollEvent*(VAR e: Event): INTEGER "SDL_PollEvent(e)";
 PROCEDURE -WaitEvent*(VAR e: Event): INTEGER "SDL_WaitEvent(e)";
@@ -330,11 +332,11 @@ PROCEDURE -SetColorKey*(surface: Surface; flag: INTEGER; key: INTEGER)
 PROCEDURE -MapRGB*(format: PixelFormat; r, g, b: SHORTINT): INTEGER
     "SDL_MapRGB(format, r, g, b)";
 
-PROCEDURE -RWFromFile*(fname, mode: ARRAY OF CHAR): SYSTEM.PTR
+PROCEDURE -RWFromFile*(fname, mode: ARRAY OF CHAR): ADRINT
     "SDL_RWFromFile(fname, mode)";
-PROCEDURE -LoadBmpRW*(src: SYSTEM.PTR; freeSrc: INTEGER): Surface
+PROCEDURE -LoadBmpRW*(src: ADRINT; freeSrc: INTEGER): Surface
     "(void *)SDL_LoadBMP_RW(src, freeSrc)";
-PROCEDURE -SaveBmpRW*(surface: Surface; src: SYSTEM.PTR;
+PROCEDURE -SaveBmpRW*(surface: Surface; src: ADRINT;
     freeSrc: INTEGER): INTEGER
     "(int)SDL_SaveBMP_RW(surface, src, freeSrc)";
 
@@ -351,33 +353,37 @@ PROCEDURE -ImgSaveJpg*(surface: Surface; file: ARRAY OF CHAR): INTEGER
 
 (* Renderer *)
 
-PROCEDURE -CreateRenderer*(win: Window; index: INTEGER;
-    flags: SET): Renderer "(void *)SDL_CreateRenderer(win, index, flags)";
+PROCEDURE -CreateRenderer*(window: Window; index: INTEGER;
+    flags: SET): Renderer
+    "(SYSTEM_ADRINT)SDL_CreateRenderer((void *)window, index, flags)";
 PROCEDURE -SetRenderDrawColor*(renderer: Renderer; r, g, b, a: SHORTINT)
-    "SDL_SetRenderDrawColor(renderer, r, g, b, a)";
-PROCEDURE -RenderClear*(renderer: Renderer) "SDL_RenderClear(renderer)";
-PROCEDURE -RenderPresent*(renderer: Renderer) "SDL_RenderPresent(renderer)";
+    "SDL_SetRenderDrawColor((void *)renderer, r, g, b, a)";
+PROCEDURE -RenderClear*(renderer: Renderer)
+    "SDL_RenderClear((void *)renderer)";
+PROCEDURE -RenderPresent*(renderer: Renderer)
+    "SDL_RenderPresent((void *)renderer)";
 PROCEDURE -RenderDrawLine*(renderer: Renderer; x1, y1, x2, y2: INTEGER)
-    "SDL_RenderDrawLine(renderer, x1, y1, x2, y2)";
+    "SDL_RenderDrawLine((void *)renderer, x1, y1, x2, y2)";
 PROCEDURE -RenderDrawPoint*(renderer: Renderer; x, y: INTEGER)
-    "SDL_RenderDrawPoint(renderer, x, y)";
+    "SDL_RenderDrawPoint((void *)renderer, x, y)";
 PROCEDURE -RenderDrawRect*(renderer: Renderer; VAR rect: Rect)
-    "SDL_RenderDrawRect(renderer, rect)";
+    "SDL_RenderDrawRect((void *)renderer, rect)";
 PROCEDURE -RenderFillRect*(renderer: Renderer; VAR rect: Rect)
-    "SDL_RenderFillRect(renderer, rect)";
+    "SDL_RenderFillRect((void *)renderer, rect)";
 PROCEDURE -RenderSetLogicalSize*(renderer: Renderer; w, h: INTEGER)
-    "SDL_RenderSetLogicalSize(renderer, w, h)";
+    "SDL_RenderSetLogicalSize((void *)renderer, w, h)";
 PROCEDURE -RenderCopy*(renderer: Renderer; texture: Texture;
     VAR srcRect, dstRect: Rect)
-    "SDL_RenderCopy(renderer, texture, srcRect, dstRect)";
+    "SDL_RenderCopy((void *)renderer, (void *)texture, srcRect, dstRect)";
 PROCEDURE -RenderCopyNil*(renderer: Renderer; texture: Texture)
-    "SDL_RenderCopy(renderer, texture, (void *)0, (void *)0)";
+    "SDL_RenderCopy((void *)renderer, (void *)texture, (void *)0, (void *)0)";
 (*PROCEDURE -RenderCopyEx*(renderer: Renderer; texture: Texture;
     VAR srcRect, dstRect: Rect; angle: REAL; center: Point; flip: SET)
-    "SDL_RenderCopyEx(renderer, texture, srcRect, dstRect, angle, center, flip)";*)
+    "SDL_RenderCopyEx((void * )renderer, (void * )texture, srcRect, dstRect, angle, center, flip)";*)
 PROCEDURE -SetRenderDrawBlendMode*(renderer: Renderer; blendMode: SET)
-    "SDL_SetRenderDrawBlendMode(renderer, blendMode)";
-PROCEDURE -DestroyRenderer(renderer: SYSTEM.PTR) "SDL_DestroyRenderer(renderer)";
+    "SDL_SetRenderDrawBlendMode(void *)renderer, blendMode)";
+PROCEDURE -DestroyRenderer(renderer: ADRINT)
+    "SDL_DestroyRenderer((void *)renderer)";
 
 (* Misc *)
 
@@ -385,8 +391,8 @@ PROCEDURE -Delay*(ms: INTEGER) "SDL_Delay(ms)";
 PROCEDURE -SetHint*(name: ARRAY OF CHAR; value: ARRAY OF CHAR)
     "SDL_SetHint(name, value)";
 PROCEDURE -ShowCursor*(toggle: SHORTINT) "SDL_ShowCursor(toggle)";
-PROCEDURE -GetError*(): SYSTEM.PTR "SDL_GetError()";
-PROCEDURE -SDLGetKeyboardState(VAR numKeys: INTEGER): SYSTEM.PTR
+PROCEDURE -GetError*(): ADRINT "SDL_GetError()";
+PROCEDURE -SDLGetKeyboardState(VAR numKeys: INTEGER): ADRINT
     "(void *)SDL_GetKeyboardState(numKeys)";
 
 PROCEDURE -GetDesktopDisplayMode*(displayIndex: INTEGER; VAR mode: DisplayMode)
@@ -426,20 +432,21 @@ PROCEDURE -GetKeyboardStateNil*(): KeyArray "(void *)SDL_GetKeyboardState((void
 
 PROCEDURE -GetMouseState*(VAR x, y: INTEGER): INTEGER "SDL_GetMouseState(x, y)";
 
-PROCEDURE -GetWindowFlags*(window: Window): SET "SDL_GetWindowFlags(window)";
+PROCEDURE -GetWindowFlags*(window: Window): SET "SDL_GetWindowFlags((void *)window)";
 
 PROCEDURE -SetWindowTitle*(window: Window; title: ARRAY OF CHAR)
-    "SDL_SetWindowTitle(window, title)";
+    "SDL_SetWindowTitle((void *)window, title)";
 
 PROCEDURE -CreateTextureFromSurface*(renderer: Renderer; surface: Surface): Texture
-    "(void *)SDL_CreateTextureFromSurface(renderer, surface)";
+    "(SYSTEM_ADRINT)SDL_CreateTextureFromSurface((void *)renderer, surface)";
 
-PROCEDURE -DestroyTexture*(texture: Texture) "SDL_DestroyTexture(texture)";
+PROCEDURE -DestroyTexture*(texture: Texture)
+    "SDL_DestroyTexture((void *)texture)";
 
 PROCEDURE -GetTicks*(): INTEGER "SDL_GetTicks()";
 
-PROCEDURE -SetWindowFullscreen*(win: Window; flags: SET): INTEGER
-    "SDL_SetWindowFullscreen(win, flags)";
+PROCEDURE -SetWindowFullscreen*(window: Window; flags: SET): INTEGER
+    "SDL_SetWindowFullscreen((void *)window, flags)";
 
 PROCEDURE -SetSurfaceAlphaMod*(surface: Surface; alpha: CHAR): INTEGER
     "SDL_SetSurfaceAlphaMod(surface, alpha)";