diff options
-rw-r--r-- | c_src/esdl2.h | 1 | ||||
-rw-r--r-- | c_src/sdl_renderer.c | 15 | ||||
-rw-r--r-- | src/esdl2.erl | 4 | ||||
-rw-r--r-- | src/sdl_renderer.erl | 4 |
4 files changed, 24 insertions, 0 deletions
diff --git a/c_src/esdl2.h b/c_src/esdl2.h index 06d1203..b4a5ad4 100644 --- a/c_src/esdl2.h +++ b/c_src/esdl2.h @@ -146,6 +146,7 @@ F(get_power_info, 0) \ /* sdl_renderer */ \ F(create_renderer, 3) \ + F(get_num_render_drivers, 0) \ F(render_clear, 1) \ F(render_copy, 4) \ F(render_present, 1) \ diff --git a/c_src/sdl_renderer.c b/c_src/sdl_renderer.c index a45b287..023851f 100644 --- a/c_src/sdl_renderer.c +++ b/c_src/sdl_renderer.c @@ -85,6 +85,21 @@ NIF_FUNCTION(create_renderer) NIF_RES_GET(Window, window_res), index, flags); } +// get_num_render_drivers + +NIF_FUNCTION(get_num_render_drivers) +{ + int count = SDL_GetNumRenderDrivers(); + + if (count < 0) + return sdl_error_tuple(env); + + return enif_make_tuple2(env, + atom_ok, + enif_make_int(env, count) + ); +} + // render_clear NIF_CALL_HANDLER(thread_render_clear) diff --git a/src/esdl2.erl b/src/esdl2.erl index 0b12186..aa685ac 100644 --- a/src/esdl2.erl +++ b/src/esdl2.erl @@ -54,6 +54,7 @@ %% sdl_renderer -export([create_renderer/3]). +-export([get_num_render_drivers/0]). -export([render_clear/1]). -export([render_copy/4]). -export([render_present/1]). @@ -207,6 +208,9 @@ get_power_info() -> create_renderer(_, _, _) -> erlang:nif_error({not_loaded, ?MODULE}). +get_num_render_drivers() -> + erlang:nif_error({not_loaded, ?MODULE}). + render_clear(_) -> erlang:nif_error({not_loaded, ?MODULE}). diff --git a/src/sdl_renderer.erl b/src/sdl_renderer.erl index 0a66838..6abd626 100644 --- a/src/sdl_renderer.erl +++ b/src/sdl_renderer.erl @@ -18,6 +18,7 @@ -export([clear/1]). -export([copy/2]). -export([copy/4]). +-export([count_drivers/0]). -export([present/1]). -export([set_draw_color/5]). -export([set_logical_size/3]). @@ -38,6 +39,9 @@ copy(Renderer, Texture, SrcRect, DstRect) -> esdl2:render_copy(Renderer, Texture, SrcRect, DstRect), receive {'_nif_thread_ret_', Ret} -> Ret end. +count_drivers() -> + esdl2:get_num_render_drivers(). + present(Renderer) -> esdl2:render_present(Renderer). |