aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2014-04-09 19:50:29 +0200
committerLoïc Hoguin <[email protected]>2014-04-09 19:50:29 +0200
commit2fc0e99b65eef172843563f8387527548b81a556 (patch)
treee8e77b714b97d7457f6d7a5c87d031faee324d9e
parent90ec78c5c254dd3d877d995705e68baee02103b6 (diff)
downloadesdl2-2fc0e99b65eef172843563f8387527548b81a556.tar.gz
esdl2-2fc0e99b65eef172843563f8387527548b81a556.tar.bz2
esdl2-2fc0e99b65eef172843563f8387527548b81a556.zip
Add typespecs to the sdl_renderer module
-rw-r--r--src/sdl_renderer.erl50
1 files changed, 50 insertions, 0 deletions
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.