From e0a16c109c76c6668055f1b42f4e501795fca79a Mon Sep 17 00:00:00 2001 From: "Lars A. Doucet" Date: Thu, 30 Jul 2015 13:39:05 -0500 Subject: [PATCH] Trying to hook up the first native function! --- lime/system/Display.hx | 13 +++++++++---- project/include/system/Display.h | 23 +++++++++++++++++++++++ project/src/ExternalInterface.cpp | 7 +++++++ project/src/backend/sdl/SDLDisplay.cpp | 14 ++++++++++++++ 4 files changed, 53 insertions(+), 4 deletions(-) diff --git a/lime/system/Display.hx b/lime/system/Display.hx index 801323a17..94acc1b20 100644 --- a/lime/system/Display.hx +++ b/lime/system/Display.hx @@ -36,7 +36,7 @@ class Display { public static function get_numDisplays():Int { - return lime_display_get_num_video_displays(); + return lime_display_get_num_devices(); } @@ -123,9 +123,13 @@ class Display { // Native Methods (stubs) #if (cpp || neko || nodejs) - private static var lime_display_get_num_video_displays = function():Int { + + /* + private static var lime_display_get_num_devices = function():Int { return 1; }; + */ + private static var lime_display_get_name = function(i:Int) { return "fake"; }; @@ -140,10 +144,11 @@ class Display { }; #end - /* #if (cpp || neko || nodejs) - private static var lime_display_get_num_video_displays = System.load("lime", "lime_display_get_num_video_displays", 0); + private static var lime_display_get_num_devices = System.load("lime", "lime_display_get_num_devices_displays", 0); + + /* private static var lime_display_get_name = System.load ("lime", "lime_display_get_name", 1); private static var lime_display_get_num_display_modes = System.load ("lime", "lime_display_get_num_display_modes", 1); private static var lime_display_get_display_mode = System.load ("lime", "lime_display_get_display_mode", 2); diff --git a/project/include/system/Display.h b/project/include/system/Display.h index e69de29bb..8360ce888 100644 --- a/project/include/system/Display.h +++ b/project/include/system/Display.h @@ -0,0 +1,23 @@ +#ifndef LIME_UI_DISPLAY_H +#define LIME_UI_DISPLAY_H + +#include +#include +#include + +namespace lime { + + + class Display { + + public: + + static int GetNumDevices (); + + }; + + +} + + +#endif \ No newline at end of file diff --git a/project/src/ExternalInterface.cpp b/project/src/ExternalInterface.cpp index 64dbb50a9..00b148f90 100644 --- a/project/src/ExternalInterface.cpp +++ b/project/src/ExternalInterface.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -390,6 +391,11 @@ namespace lime { } + value lime_display_get_num_devices () { + + return alloc_int (Display::GetNumDevices()); + + } value lime_gamepad_add_mappings (value mappings) { @@ -1172,6 +1178,7 @@ namespace lime { DEFINE_PRIM (lime_font_render_glyph, 3); DEFINE_PRIM (lime_font_render_glyphs, 3); DEFINE_PRIM (lime_font_set_size, 2); + DEFINE_PRIM (lime_display_get_num_devices, 0); DEFINE_PRIM (lime_gamepad_add_mappings, 1); DEFINE_PRIM (lime_gamepad_event_manager_register, 2); DEFINE_PRIM (lime_gamepad_get_device_guid, 1); diff --git a/project/src/backend/sdl/SDLDisplay.cpp b/project/src/backend/sdl/SDLDisplay.cpp index e69de29bb..4287725a8 100644 --- a/project/src/backend/sdl/SDLDisplay.cpp +++ b/project/src/backend/sdl/SDLDisplay.cpp @@ -0,0 +1,14 @@ +#include + + +namespace lime { + + + int SDLDisplay::GetNumDevices() { + + return SDL_GetNumVideoDisplays(); + + } + + +} \ No newline at end of file