Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit graphics1;
- interface
- uses
- sdl2, sdl2_image;
- const
- kscreenwidth: integer = 640;
- kscreenheight: integer = 480;
- kbitsperpixel: integer = 32;
- type
- graphics = class
- public
- constructor graphics();
- destructor graphics();
- procedure rendertexture(ren:psdl_renderer; tex:psdl_texture; dst:tsdl_rect; clip:psdl_rect=nil);
- procedure rendertexture(ren:psdl_renderer; tex:psdl_texture; x:integer; y:integer; clip:psdl_rect=nil);
- procedure flip();
- function getrenderer(): psdl_renderer;
- private
- sdlwindow_: psdl_window;
- sdlrenderer_: psdl_renderer;
- end;
- implementation
- constructor graphics.graphics;
- begin
- inherited;
- sdlwindow_ := sdl_createwindow('Cave', 100, 100, kscreenwidth, kscreenheight, sdl_window_shown{sdl_window_fullscreen_desktop});
- sdlrenderer_ := sdl_createrenderer(sdlwindow_, -1, sdl_renderer_accelerated or sdl_renderer_targettexture);
- end;
- procedure graphics.rendertexture(ren:psdl_renderer; tex:psdl_texture; dst:tsdl_rect; clip:psdl_rect=nil);
- begin
- sdl_renderclear(ren);
- sdl_rendercopy(ren, tex, clip, @dst);
- end;
- procedure graphics.rendertexture(ren:psdl_renderer; tex:psdl_texture; x:integer; y:integer; clip:psdl_rect=nil);
- var dst: tsdl_rect;
- begin
- dst.x := x;
- dst.y := y;
- if clip <> nil then
- begin
- dst.w := clip^.w;
- dst.h := clip^.h;
- end
- else
- sdl_querytexture(tex, nil, nil, @dst.w, @dst.h);
- renderTexture(tex, sdlrenderer_, dst, clip);
- end;
- procedure graphics.flip();
- begin
- sdl_renderpresent(sdlrenderer_);
- end;
- function graphics.getrenderer(): psdl_renderer;
- begin
- getrenderer := sdlrenderer_;
- end;
- destructor graphics.graphics;
- begin
- sdl_destroyrenderer(sdlrenderer_);
- sdl_destroywindow(sdlwindow_);
- inherited;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement