aboutsummaryrefslogtreecommitdiffstats
path: root/src/sdl_cpu_info.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2014-04-02 23:30:25 +0200
committerLoïc Hoguin <[email protected]>2014-04-02 23:30:25 +0200
commit00114c813b6c6829dcf3b6eedc6b45803b31c808 (patch)
treec602f21f0c0eff488bf2eb8b4eb3d0aeee8d820e /src/sdl_cpu_info.erl
parent3fca1d3a170ac311fc379b3128be411edc21b0ee (diff)
downloadesdl2-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/sdl_cpu_info.erl')
-rw-r--r--src/sdl_cpu_info.erl68
1 files changed, 68 insertions, 0 deletions
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().