From 2fc0e99b65eef172843563f8387527548b81a556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 9 Apr 2014 19:50:29 +0200 Subject: Add typespecs to the sdl_renderer module --- src/sdl_renderer.erl | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/sdl_renderer.erl b/src/sdl_renderer.erl index 66117cb..865aa39 100644 --- a/src/sdl_renderer.erl +++ b/src/sdl_renderer.erl @@ -50,78 +50,113 @@ -export([set_viewport/2]). -export([set_viewport/5]). +-opaque renderer() :: any(). +-export_type([renderer/0]). + +-type renderer_flags() :: software | accelerated | present_vsync | target_texture. +-export_type([renderer_flags/0]). + +-type point() :: #{x=>integer(), y=>integer()}. +-type rect() :: #{x=>integer(), y=>integer(), w=>integer(), h=>integer()}. + +-type blend_mode() :: none | blend | add | mod. + +-spec clear(renderer()) -> ok | sdl:error(). clear(Renderer) -> esdl2:render_clear(Renderer), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec copy(renderer(), sdl_texture:texture()) -> ok | sdl:error(). copy(Renderer, Texture) -> esdl2:render_copy(Renderer, Texture, undefined, undefined), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec copy(renderer(), sdl_texture:texture(), undefined | rect(), undefined | rect()) + -> ok | sdl:error(). copy(Renderer, Texture, SrcRect, DstRect) -> esdl2:render_copy(Renderer, Texture, SrcRect, DstRect), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec copy(renderer(), sdl_texture:texture(), undefined | rect(), undefined | rect(), + float(), undefined | point(), none | horizontal | vertical) + -> ok | sdl:error(). copy(Renderer, Texture, SrcRect, DstRect, Angle, CenterPoint, FlipFlags) -> esdl2:render_copy_ex(Renderer, Texture, SrcRect, DstRect, Angle, CenterPoint, FlipFlags), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec count_drivers() -> integer(). count_drivers() -> {ok, Count} = esdl2:get_num_render_drivers(), Count. +-spec create(sdl_window:window(), integer(), renderer_flags()) + -> {ok, renderer()} | sdl:error(). create(Window, Index, Flags) -> esdl2:create_renderer(Window, Index, Flags), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec draw_line(renderer(), point(), point()) -> ok | sdl:error(). draw_line(Renderer, #{x:=X1, y:=Y1}, #{x:=X2, y:=Y2}) -> draw_line(Renderer, X1, Y1, X2, Y2). +-spec draw_line(renderer(), integer(), integer(), integer(), integer()) -> ok | sdl:error(). draw_line(Renderer, X1, Y1, X2, Y2) -> esdl2:render_draw_line(Renderer, X1, Y1, X2, Y2), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec draw_lines(renderer(), [point()]) -> ok | sdl:error(). draw_lines(Renderer, Points) -> esdl2:render_draw_lines(Renderer, Points), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec draw_point(renderer(), point()) -> ok | sdl:error(). draw_point(Renderer, #{x:=X, y:=Y}) -> draw_point(Renderer, X, Y). +-spec draw_point(renderer(), integer(), integer()) -> ok | sdl:error(). draw_point(Renderer, X, Y) -> esdl2:render_draw_point(Renderer, X, Y), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec draw_points(renderer(), [point()]) -> ok | sdl:error(). draw_points(Renderer, Points) -> esdl2:render_draw_points(Renderer, Points), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec draw_rect(renderer(), rect()) -> ok | sdl:error(). draw_rect(Renderer, #{x:=X, y:=Y, w:=W, h:=H}) -> draw_rect(Renderer, X, Y, W, H). +-spec draw_rect(renderer(), integer(), integer(), integer(), integer()) -> ok | sdl:error(). draw_rect(Renderer, X, Y, W, H) -> esdl2:render_draw_rect(Renderer, X, Y, W, H), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec draw_rects(renderer(), [rect()]) -> ok | sdl:error(). draw_rects(Renderer, Rects) -> esdl2:render_draw_rects(Renderer, Rects), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec fill_rect(renderer(), rect()) -> ok | sdl:error(). fill_rect(Renderer, #{x:=X, y:=Y, w:=W, h:=H}) -> fill_rect(Renderer, X, Y, W, H). +-spec fill_rect(renderer(), integer(), integer(), integer(), integer()) -> ok | sdl:error(). fill_rect(Renderer, X, Y, W, H) -> esdl2:render_fill_rect(Renderer, X, Y, W, H), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec fill_rects(renderer(), [rect()]) -> ok | sdl:error(). fill_rects(Renderer, Rects) -> esdl2:render_fill_rects(Renderer, Rects), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec get_clip_rect(renderer()) -> rect(). get_clip_rect(Renderer) -> esdl2:render_get_clip_rect(Renderer), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec get_draw_blend_mode(renderer()) -> blend_mode(). get_draw_blend_mode(Renderer) -> esdl2:get_render_draw_blend_mode(Renderer), receive {'_nif_thread_ret_', Ret} -> @@ -129,6 +164,7 @@ get_draw_blend_mode(Renderer) -> Mode end. +-spec get_draw_color(renderer()) -> {byte(), byte(), byte(), byte()}. get_draw_color(Renderer) -> esdl2:get_render_draw_color(Renderer), receive {'_nif_thread_ret_', Ret} -> @@ -136,10 +172,12 @@ get_draw_color(Renderer) -> Mode end. +-spec get_logical_size(renderer()) -> {integer(), integer()}. get_logical_size(Renderer) -> esdl2:render_get_logical_size(Renderer), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec get_output_size(renderer()) -> {integer(), integer()}. get_output_size(Renderer) -> esdl2:get_render_output_size(Renderer), receive {'_nif_thread_ret_', Ret} -> @@ -147,47 +185,59 @@ get_output_size(Renderer) -> Mode end. +-spec get_scale(renderer()) -> {float(), float()}. get_scale(Renderer) -> esdl2:render_get_scale(Renderer), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec get_viewport(renderer()) -> rect(). get_viewport(Renderer) -> esdl2:render_get_viewport(Renderer), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec is_target_supported(renderer()) -> boolean(). is_target_supported(Renderer) -> esdl2:render_target_supported(Renderer), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec present(renderer()) -> ok. present(Renderer) -> esdl2:render_present(Renderer). +-spec set_clip_rect(renderer(), rect()) -> ok | sdl:error(). set_clip_rect(Renderer, #{x:=X, y:=Y, w:=W, h:=H}) -> set_clip_rect(Renderer, X, Y, W, H). +-spec set_clip_rect(renderer(), integer(), integer(), integer(), integer()) -> ok | sdl:error(). set_clip_rect(Renderer, X, Y, W, H) -> esdl2:render_set_clip_rect(Renderer, X, Y, W, H), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec set_draw_blend_mode(renderer(), blend_mode()) -> ok | sdl:error(). set_draw_blend_mode(Renderer, BlendMode) -> esdl2:set_render_draw_blend_mode(Renderer, BlendMode), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec set_draw_color(renderer(), byte(), byte(), byte(), byte()) -> ok | sdl:error(). set_draw_color(Renderer, R, G, B, A) -> esdl2:set_render_draw_color(Renderer, R, G, B, A), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec set_logical_size(renderer(), integer(), integer()) -> ok | sdl:error(). set_logical_size(Renderer, W, H) -> esdl2:render_set_logical_size(Renderer, W, H), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec set_scale(renderer(), float(), float()) -> ok | sdl:error(). set_scale(Renderer, ScaleX, ScaleY) -> esdl2:render_set_scale(Renderer, ScaleX, ScaleY), receive {'_nif_thread_ret_', Ret} -> Ret end. +-spec set_viewport(renderer(), rect()) -> ok | sdl:error(). set_viewport(Renderer, #{x:=X, y:=Y, w:=W, h:=H}) -> set_viewport(Renderer, X, Y, W, H). +-spec set_viewport(renderer(), integer(), integer(), integer(), integer()) -> ok | sdl:error(). set_viewport(Renderer, X, Y, W, H) -> esdl2:render_set_viewport(Renderer, X, Y, W, H), receive {'_nif_thread_ret_', Ret} -> Ret end. -- cgit v1.2.3