Advertisement
Guest User

Untitled

a guest
Mar 21st, 2014
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.78 KB | None | 0 0
  1. unit graphics1;
  2.  
  3. interface
  4.  
  5. uses
  6.     sdl2, sdl2_image;
  7.  
  8. const
  9.     kscreenwidth: integer = 640;
  10.     kscreenheight: integer = 480;
  11.     kbitsperpixel: integer = 32;
  12.  
  13. type
  14.     graphics = class
  15.     public
  16.         constructor graphics();
  17.         destructor graphics();
  18.  
  19.         procedure rendertexture(ren:psdl_renderer; tex:psdl_texture; dst:tsdl_rect; clip:psdl_rect=nil);
  20.         procedure rendertexture(ren:psdl_renderer; tex:psdl_texture; x:integer; y:integer; clip:psdl_rect=nil);
  21.         procedure flip();
  22.  
  23.         function getrenderer(): psdl_renderer;
  24.  
  25.     private
  26.         sdlwindow_: psdl_window;
  27.         sdlrenderer_: psdl_renderer;
  28.     end;
  29.  
  30. implementation
  31.  
  32. constructor graphics.graphics;
  33. begin
  34.     inherited;
  35.     sdlwindow_ := sdl_createwindow('Cave', 100, 100, kscreenwidth, kscreenheight, sdl_window_shown{sdl_window_fullscreen_desktop});
  36.     sdlrenderer_ := sdl_createrenderer(sdlwindow_, -1, sdl_renderer_accelerated or sdl_renderer_targettexture);
  37. end;
  38.  
  39. procedure graphics.rendertexture(ren:psdl_renderer; tex:psdl_texture; dst:tsdl_rect; clip:psdl_rect=nil);
  40. begin
  41.     sdl_renderclear(ren);
  42.     sdl_rendercopy(ren, tex, clip, @dst);
  43. end;
  44.  
  45. procedure graphics.rendertexture(ren:psdl_renderer; tex:psdl_texture; x:integer; y:integer; clip:psdl_rect=nil);
  46. var dst: tsdl_rect;
  47. begin
  48.     dst.x := x;
  49.     dst.y := y;
  50.     if clip <> nil then
  51.         begin
  52.         dst.w := clip^.w;
  53.         dst.h := clip^.h;
  54.         end
  55.     else
  56.         sdl_querytexture(tex, nil, nil, @dst.w, @dst.h);
  57.  
  58.     renderTexture(tex, sdlrenderer_, dst, clip);
  59. end;
  60.  
  61. procedure graphics.flip();
  62. begin
  63.     sdl_renderpresent(sdlrenderer_);
  64. end;
  65.  
  66. function graphics.getrenderer(): psdl_renderer;
  67. begin
  68.     getrenderer := sdlrenderer_;
  69. end;
  70.  
  71. destructor graphics.graphics;
  72. begin
  73.     sdl_destroyrenderer(sdlrenderer_);
  74.     sdl_destroywindow(sdlwindow_);
  75.     inherited;
  76. end;
  77.  
  78. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement