diff options
author | Loïc Hoguin <[email protected]> | 2014-04-02 23:30:25 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2014-04-02 23:30:25 +0200 |
commit | 00114c813b6c6829dcf3b6eedc6b45803b31c808 (patch) | |
tree | c602f21f0c0eff488bf2eb8b4eb3d0aeee8d820e /src | |
parent | 3fca1d3a170ac311fc379b3128be411edc21b0ee (diff) | |
download | esdl2-00114c813b6c6829dcf3b6eedc6b45803b31c808.tar.gz esdl2-00114c813b6c6829dcf3b6eedc6b45803b31c808.tar.bz2 esdl2-00114c813b6c6829dcf3b6eedc6b45803b31c808.zip |
Add CPU feature detection functions
Now requiring SDL 2.0.3+.
Diffstat (limited to 'src')
-rw-r--r-- | src/esdl2.erl | 56 | ||||
-rw-r--r-- | src/sdl_cpu_info.erl | 68 |
2 files changed, 124 insertions, 0 deletions
diff --git a/src/esdl2.erl b/src/esdl2.erl index 39ff1e3..23b157a 100644 --- a/src/esdl2.erl +++ b/src/esdl2.erl @@ -27,6 +27,21 @@ -export([has_clipboard_text/0]). -export([set_clipboard_text/1]). +%% sdl_cpu_info +-export([get_cpu_cache_line_size/0]). +-export([get_cpu_count/0]). +-export([get_system_ram/0]). +-export([has_3dnow/0]). +-export([has_avx/0]). +-export([has_altivec/0]). +-export([has_mmx/0]). +-export([has_rdtsc/0]). +-export([has_sse/0]). +-export([has_sse2/0]). +-export([has_sse3/0]). +-export([has_sse41/0]). +-export([has_sse42/0]). + %% sdl_events -export([poll_event/0]). @@ -101,6 +116,47 @@ has_clipboard_text() -> set_clipboard_text(_) -> erlang:nif_error({not_loaded, ?MODULE}). +%% sdl_cpu_info + +get_cpu_cache_line_size() -> + erlang:nif_error({not_loaded, ?MODULE}). + +get_cpu_count() -> + erlang:nif_error({not_loaded, ?MODULE}). + +get_system_ram() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_3dnow() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_avx() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_altivec() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_mmx() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_rdtsc() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_sse() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_sse2() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_sse3() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_sse41() -> + erlang:nif_error({not_loaded, ?MODULE}). + +has_sse42() -> + erlang:nif_error({not_loaded, ?MODULE}). + %% sdl_events poll_event() -> diff --git a/src/sdl_cpu_info.erl b/src/sdl_cpu_info.erl new file mode 100644 index 0000000..0eccb1c --- /dev/null +++ b/src/sdl_cpu_info.erl @@ -0,0 +1,68 @@ +%% Copyright (c) 2014, Loïc Hoguin <[email protected]> +%% +%% 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_cpu_info). + +-export([get_cpu_cache_line_size/0]). +-export([get_cpu_count/0]). +-export([get_system_ram/0]). +-export([has_3dnow/0]). +-export([has_avx/0]). +-export([has_altivec/0]). +-export([has_mmx/0]). +-export([has_rdtsc/0]). +-export([has_sse/0]). +-export([has_sse2/0]). +-export([has_sse3/0]). +-export([has_sse41/0]). +-export([has_sse42/0]). + +get_cpu_cache_line_size() -> + esdl2:get_cpu_cache_line_size(). + +get_cpu_count() -> + esdl2:get_cpu_count(). + +get_system_ram() -> + esdl2:get_system_ram(). + +has_3dnow() -> + esdl2:has_3dnow(). + +has_avx() -> + esdl2:has_avx(). + +has_altivec() -> + esdl2:has_altivec(). + +has_mmx() -> + esdl2:has_mmx(). + +has_rdtsc() -> + esdl2:has_rdtsc(). + +has_sse() -> + esdl2:has_sse(). + +has_sse2() -> + esdl2:has_sse2(). + +has_sse3() -> + esdl2:has_sse3(). + +has_sse41() -> + esdl2:has_sse41(). + +has_sse42() -> + esdl2:has_sse42(). |