From 43ad16d15766ed2c75515a696b391d5bb02c8b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 2 Apr 2014 19:08:46 +0200 Subject: Add functions to retrieve SDL version and revision --- c_src/esdl2.h | 3 +++ c_src/sdl_version.c | 39 +++++++++++++++++++++++++++++++++++++++ src/esdl2.erl | 12 ++++++++++++ src/sdl_version.erl | 24 ++++++++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 c_src/sdl_version.c create mode 100644 src/sdl_version.erl diff --git a/c_src/esdl2.h b/c_src/esdl2.h index 455c42d..970fa6c 100644 --- a/c_src/esdl2.h +++ b/c_src/esdl2.h @@ -117,6 +117,9 @@ F(img_load, 1) \ /* sdl_texture */ \ F(create_texture_from_surface, 2) \ + /* sdl_version */ \ + F(get_version, 0) \ + F(get_revision, 0) \ /* sdl_window */ \ F(create_window, 6) diff --git a/c_src/sdl_version.c b/c_src/sdl_version.c new file mode 100644 index 0000000..c570044 --- /dev/null +++ b/c_src/sdl_version.c @@ -0,0 +1,39 @@ +// Copyright (c) 2014, Loïc Hoguin +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +#include "esdl2.h" +#include "SDL_version.h" +#include "SDL_revision.h" + +// get_version + +NIF_FUNCTION(get_version) +{ + SDL_version v; + + SDL_VERSION(&v); + + return enif_make_tuple3(env, + enif_make_int(env, v.major), + enif_make_int(env, v.minor), + enif_make_int(env, v.patch) + ); +} + +// get_revision + +NIF_FUNCTION(get_revision) +{ + return enif_make_string(env, SDL_REVISION, ERL_NIF_LATIN1); +} diff --git a/src/esdl2.erl b/src/esdl2.erl index e7d8d0a..3f29141 100644 --- a/src/esdl2.erl +++ b/src/esdl2.erl @@ -39,6 +39,10 @@ %% sdl_texture -export([create_texture_from_surface/2]). +%% sdl_version +-export([get_version/0]). +-export([get_revision/0]). + %% sdl_window -export([create_window/6]). @@ -109,6 +113,14 @@ img_load(_) -> create_texture_from_surface(_, _) -> erlang:nif_error({not_loaded, ?MODULE}). +%% sdl_version + +get_version() -> + erlang:nif_error({not_loaded, ?MODULE}). + +get_revision() -> + erlang:nif_error({not_loaded, ?MODULE}). + %% sdl_window create_window(_, _, _, _, _, _) -> diff --git a/src/sdl_version.erl b/src/sdl_version.erl new file mode 100644 index 0000000..7d2d93a --- /dev/null +++ b/src/sdl_version.erl @@ -0,0 +1,24 @@ +%% Copyright (c) 2014, Loïc Hoguin +%% +%% Permission to use, copy, modify, and/or distribute this software for any +%% purpose with or without fee is hereby granted, provided that the above +%% copyright notice and this permission notice appear in all copies. +%% +%% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +%% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +%% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +%% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +%% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +%% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +%% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +-module(sdl_version). + +-export([get_version/0]). +-export([get_revision/0]). + +get_version() -> + esdl2:get_version(). + +get_revision() -> + esdl2:get_revision(). -- cgit v1.2.3