SDLRender.def 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. DEFINITION MODULE FOR "C" SDLRender ;
  2. (*
  3. m2SDL - 2D renderer binding (SDL2 <SDL_render.h>), starter subset.
  4. Opaque handle: SDL_Renderer * travels as ADDRESS (NIL == failure).
  5. Single rects pass as VAR SDLRect (GM2 maps VAR record params onto
  6. T * ); rect/point arrays pass as ADDRESS of the first element plus
  7. a count, e.g. ADR(rects) with rects: ARRAY OF SDLRect.
  8. Color components are Uint8 in C, hence SYSTEM.CARDINAL8 here -
  9. SHORTCARD would be 16 bits and would not match the ABI.
  10. *)
  11. FROM SYSTEM IMPORT ADDRESS, CARDINAL8;
  12. FROM SDLRect IMPORT SDLRect;
  13. FROM SDLVideo IMPORT WindowHandle;
  14. EXPORT UNQUALIFIED
  15. RendererHandle,
  16. RendererSoftware, RendererAccelerated,
  17. RendererPresentVSync, RendererTargetTexture,
  18. SDL_CreateRenderer, SDL_CreateWindowAndRenderer,
  19. SDL_DestroyRenderer,
  20. SDL_SetRenderDrawColor, SDL_GetRenderDrawColor,
  21. SDL_RenderSetLogicalSize,
  22. SDL_RenderClear, SDL_RenderPresent,
  23. SDL_RenderDrawPoint, SDL_RenderDrawPoints,
  24. SDL_RenderDrawLine, SDL_RenderDrawLines,
  25. SDL_RenderDrawRect, SDL_RenderDrawRects,
  26. SDL_RenderFillRect, SDL_RenderFillRects;
  27. TYPE
  28. RendererHandle = ADDRESS;
  29. CONST
  30. RendererSoftware = 000000001H;
  31. RendererAccelerated = 000000002H;
  32. RendererPresentVSync = 000000004H;
  33. RendererTargetTexture = 000000008H;
  34. (* SDL_Renderer *SDL_CreateRenderer(SDL_Window *win, int index,
  35. Uint32 flags) *)
  36. PROCEDURE SDL_CreateRenderer (win: WindowHandle; index: INTEGER;
  37. flags: CARDINAL) : RendererHandle;
  38. (* int SDL_CreateWindowAndRenderer(int w, int h, Uint32 flags,
  39. SDL_Window **win, SDL_Renderer **ren) *)
  40. PROCEDURE SDL_CreateWindowAndRenderer (w, h: INTEGER; flags: CARDINAL;
  41. VAR win: WindowHandle;
  42. VAR ren: RendererHandle) : [ INTEGER ];
  43. (* void SDL_DestroyRenderer(SDL_Renderer *ren) *)
  44. PROCEDURE SDL_DestroyRenderer (ren: RendererHandle);
  45. (* int SDL_SetRenderDrawColor(SDL_Renderer *ren,
  46. Uint8 r, Uint8 g, Uint8 b, Uint8 a) *)
  47. PROCEDURE SDL_SetRenderDrawColor (ren: RendererHandle;
  48. r, g, b, a: CARDINAL8) : [ INTEGER ];
  49. (* int SDL_GetRenderDrawColor(SDL_Renderer *ren,
  50. Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a) *)
  51. PROCEDURE SDL_GetRenderDrawColor (ren: RendererHandle;
  52. VAR r, g, b, a: CARDINAL8) : [ INTEGER ];
  53. (* int SDL_RenderSetLogicalSize(SDL_Renderer *ren, int w, int h) *)
  54. PROCEDURE SDL_RenderSetLogicalSize (ren: RendererHandle;
  55. w, h: INTEGER) : [ INTEGER ];
  56. (* int SDL_RenderClear(SDL_Renderer *ren) *)
  57. PROCEDURE SDL_RenderClear (ren: RendererHandle) : [ INTEGER ];
  58. (* void SDL_RenderPresent(SDL_Renderer *ren) *)
  59. PROCEDURE SDL_RenderPresent (ren: RendererHandle);
  60. (* int SDL_RenderDrawPoint(SDL_Renderer *ren, int x, int y) *)
  61. PROCEDURE SDL_RenderDrawPoint (ren: RendererHandle;
  62. x, y: INTEGER) : [ INTEGER ];
  63. (* int SDL_RenderDrawPoints(SDL_Renderer *ren, const SDL_Point *pts,
  64. int count) *)
  65. PROCEDURE SDL_RenderDrawPoints (ren: RendererHandle; pts: ADDRESS;
  66. count: INTEGER) : [ INTEGER ];
  67. (* int SDL_RenderDrawLine(SDL_Renderer *ren,
  68. int x1, int y1, int x2, int y2) *)
  69. PROCEDURE SDL_RenderDrawLine (ren: RendererHandle;
  70. x1, y1, x2, y2: INTEGER) : [ INTEGER ];
  71. (* int SDL_RenderDrawLines(SDL_Renderer *ren, const SDL_Point *pts,
  72. int count) *)
  73. PROCEDURE SDL_RenderDrawLines (ren: RendererHandle; pts: ADDRESS;
  74. count: INTEGER) : [ INTEGER ];
  75. (* int SDL_RenderDrawRect(SDL_Renderer *ren, const SDL_Rect *rect) *)
  76. PROCEDURE SDL_RenderDrawRect (ren: RendererHandle;
  77. VAR rect: SDLRect) : [ INTEGER ];
  78. (* int SDL_RenderDrawRects(SDL_Renderer *ren, const SDL_Rect *rects,
  79. int count) *)
  80. PROCEDURE SDL_RenderDrawRects (ren: RendererHandle; rects: ADDRESS;
  81. count: INTEGER) : [ INTEGER ];
  82. (* int SDL_RenderFillRect(SDL_Renderer *ren, const SDL_Rect *rect) *)
  83. PROCEDURE SDL_RenderFillRect (ren: RendererHandle;
  84. VAR rect: SDLRect) : [ INTEGER ];
  85. (* int SDL_RenderFillRects(SDL_Renderer *ren, const SDL_Rect *rects,
  86. int count) *)
  87. PROCEDURE SDL_RenderFillRects (ren: RendererHandle; rects: ADDRESS;
  88. count: INTEGER) : [ INTEGER ];
  89. END SDLRender.