diff --git a/Makefile.common b/Makefile.common
index a4e0dd0bee..ed1624a8e5 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -423,6 +423,7 @@ endif
ifeq ($(HAVE_NUKLEAR), 1)
OBJ += menu/drivers/nuklear/nk_common.o
OBJ += menu/drivers/nuklear/nk_menu.o
+ OBJ += menu/drivers/nuklear/nk_wnd_shader_parameters.o
OBJ += menu/drivers/nuklear.o
DEFINES += -DHAVE_NUKLEAR
endif
diff --git a/griffin/griffin.c b/griffin/griffin.c
index 4989bb4c58..9f4e290b21 100644
--- a/griffin/griffin.c
+++ b/griffin/griffin.c
@@ -917,6 +917,7 @@ MENU
#ifdef HAVE_NUKLEAR
#include "../menu/drivers/nuklear/nk_common.c"
#include "../menu/drivers/nuklear/nk_menu.c"
+#include "../menu/drivers/nuklear/nk_wnd_shader_parameters.c"
#include "../menu/drivers/nuklear.c"
#endif
diff --git a/menu/drivers/nuklear.c b/menu/drivers/nuklear.c
index 181a5698b4..4cda83a459 100644
--- a/menu/drivers/nuklear.c
+++ b/menu/drivers/nuklear.c
@@ -52,15 +52,10 @@ static void nk_menu_main(nk_menu_handle_t *nk)
{
struct nk_context *ctx = &nk->ctx;
- if (nk->window[ZRMENU_WND_MAIN].open)
- nk_menu_wnd_main(nk);
if (nk->window[ZRMENU_WND_SHADER_PARAMETERS].open)
nk_menu_wnd_shader_parameters(nk);
- if (nk->window[ZRMENU_WND_TEST].open)
- nk_menu_wnd_test(nk);
nk->window[ZRMENU_WND_SHADER_PARAMETERS].open = !nk_window_is_closed(ctx, "Shader Parameters");
- nk->window[ZRMENU_WND_TEST].open = !nk_window_is_closed(ctx, "Test");
nk_buffer_info(&nk->status, &nk->ctx.memory);
}
@@ -216,13 +211,8 @@ static void nk_menu_frame(void *data)
static void nk_menu_layout(nk_menu_handle_t *nk)
{
- float scale_factor;
- unsigned width, height, new_header_height;
-
+ unsigned width, height;
video_driver_get_size(&width, &height);
-
- scale_factor = menu_display_get_dpi();
- menu_display_set_header_height(new_header_height);
}
static void nk_menu_init_device(nk_menu_handle_t *nk)
@@ -294,8 +284,6 @@ static void *nk_menu_init(void **userdata)
"nuklear", sizeof(nk->assets_directory));
nk_menu_init_device(nk);
- nk->window[ZRMENU_WND_MAIN].open = true;
- nk->window[ZRMENU_WND_TEST].open = true;
nk->window[ZRMENU_WND_SHADER_PARAMETERS].open = true;
return menu;
diff --git a/menu/drivers/nuklear/nk_common.c b/menu/drivers/nuklear/nk_common.c
index ea6d0b5388..758cbef6ff 100644
--- a/menu/drivers/nuklear/nk_common.c
+++ b/menu/drivers/nuklear/nk_common.c
@@ -15,6 +15,8 @@
* If not, see .
*/
+ /* This file is intended for backend code. */
+
#include
#define NK_INCLUDE_FIXED_TYPES
diff --git a/menu/drivers/nuklear/nk_common.h b/menu/drivers/nuklear/nk_common.h
index cc3f698732..7c93abe368 100644
--- a/menu/drivers/nuklear/nk_common.h
+++ b/menu/drivers/nuklear/nk_common.h
@@ -15,6 +15,8 @@
* If not, see .
*/
+ /* This file is intended for backend code. */
+
#define NK_INCLUDE_FIXED_TYPES
#define NK_INCLUDE_STANDARD_IO
#define NK_INCLUDE_DEFAULT_ALLOCATOR
diff --git a/menu/drivers/nuklear/nk_menu.c b/menu/drivers/nuklear/nk_menu.c
index a12ecd9545..3b501086d4 100644
--- a/menu/drivers/nuklear/nk_menu.c
+++ b/menu/drivers/nuklear/nk_menu.c
@@ -15,31 +15,12 @@
* If not, see .
*/
+
+ /* This file is intended for helper functions, custom controls, etc. */
+
#include "nk_menu.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include "../../menu_driver.h"
-#include "../../menu_hash.h"
-
-#include "../../../gfx/common/gl_common.h"
-#include "../../../core_info.h"
-#include "../../../configuration.h"
-#include "../../../retroarch.h"
-
-
-#define LEN(a) (sizeof(a)/sizeof(a)[0])
-
-
+/* sets window position and size */
void nk_menu_wnd_set_state(nk_menu_handle_t *zr, const int id,
struct nk_vec2 pos, struct nk_vec2 size)
{
@@ -47,130 +28,10 @@ void nk_menu_wnd_set_state(nk_menu_handle_t *zr, const int id,
zr->window[id].size = size;
}
+/* gets window position and size */
void nk_menu_wnd_get_state(nk_menu_handle_t *zr, const int id,
struct nk_vec2 *pos, struct nk_vec2 *size)
{
*pos = zr->window[id].position;
*size = zr->window[id].size;
}
-
-void nk_menu_wnd_shader_parameters(nk_menu_handle_t *zr)
-{
- unsigned i;
- video_shader_ctx_t shader_info;
- struct nk_panel layout;
- struct nk_context *ctx = &zr->ctx;
- const int id = ZRMENU_WND_SHADER_PARAMETERS;
- settings_t *settings = config_get_ptr();
-
- if (nk_begin(ctx, &layout, "Shader Parameters", nk_rect(240, 10, 300, 400),
- NK_WINDOW_CLOSABLE|NK_WINDOW_MINIMIZABLE|NK_WINDOW_MOVABLE|
- NK_WINDOW_SCALABLE|NK_WINDOW_BORDER))
- {
- struct nk_panel combo;
- static const char *themes[] = {"Dark", "Light"};
- enum nk_menu_theme old = zr->theme;
-
- nk_layout_row_dynamic(ctx, 30, 1);
-
- video_shader_driver_get_current_shader(&shader_info);
-
- if (shader_info.data)
- {
- for (i = 0; i < GFX_MAX_PARAMETERS; i++)
- {
- if (!string_is_empty(shader_info.data->parameters[i].desc))
- {
-/* if(shader_info.data->parameters[i].minimum == 0 &&
- shader_info.data->parameters[i].maximum == 1 &&
- shader_info.data->parameters[i].step == 1)
- nk_checkbox_float(ctx, shader_info.data->parameters[i].desc,
- &(shader_info.data->parameters[i].current));
- else*/
- nk_property_float(ctx, shader_info.data->parameters[i].desc,
- shader_info.data->parameters[i].minimum,
- &(shader_info.data->parameters[i].current),
- shader_info.data->parameters[i].maximum,
- shader_info.data->parameters[i].step, 1);
- }
- }
- }
- }
- /* save position and size to restore after context reset */
- nk_menu_wnd_set_state(zr, id, nk_window_get_position(ctx), nk_window_get_size(ctx));
- nk_end(ctx);
-}
-
-void nk_menu_wnd_test(nk_menu_handle_t *zr)
-{
- struct nk_panel layout;
- struct nk_context *ctx = &zr->ctx;
- const int id = ZRMENU_WND_TEST;
- settings_t *settings = config_get_ptr();
-
- if (nk_begin(ctx, &layout, "Test", nk_rect(140, 90, 500, 600),
- NK_WINDOW_CLOSABLE|NK_WINDOW_MINIMIZABLE|NK_WINDOW_MOVABLE|
- NK_WINDOW_SCALABLE|NK_WINDOW_BORDER))
- {
- unsigned size;
- struct nk_panel combo;
- menu_entry_t entry;
- static const char *themes[] = {"Dark", "Light"};
- enum nk_menu_theme old = zr->theme;
-
- nk_layout_row_dynamic(ctx, 30, 2);
-
- nk_layout_row_dynamic(ctx, 30, 4);
- //nk_checkbox_bool(ctx, "Show FPS", &(settings->fps_show));
- //nk_checkbox_bool(ctx, "Show FPS", &(settings->fps_show));
- //nk_checkbox_bool(ctx, "Show FPS", &(settings->fps_show));
- //nk_checkbox_bool(ctx, "Show FPS", &(settings->fps_show));
- nk_layout_row_dynamic(ctx, 30, 2);
- nk_label(ctx, "Volume:", NK_TEXT_LEFT);
- nk_slider_float(ctx, -80, &settings->audio.volume, 12, 0.5);
- nk_layout_row_dynamic(ctx, 30, 1);
- nk_property_int(ctx, "Max Users:", 1, (int*)&(settings->input.max_users),
- MAX_USERS, 1, 1);
-
-
- nk_label(ctx, "History:", NK_TEXT_LEFT);
-
- size = menu_entries_get_size();
- }
- /* save position and size to restore after context reset */
- nk_menu_wnd_set_state(zr, id, nk_window_get_position(ctx), nk_window_get_size(ctx));
- nk_end(ctx);
-}
-
-void nk_menu_wnd_main(nk_menu_handle_t *zr)
-{
- struct nk_panel layout;
- struct nk_context *ctx = &zr->ctx;
- const int id = ZRMENU_WND_MAIN;
- settings_t *settings = config_get_ptr();
-
- if (nk_begin(ctx, &layout, "Main", nk_rect(-1, -1, 120, zr->size.x + 1),
- NK_WINDOW_NO_SCROLLBAR))
- {
- struct nk_panel menu;
- struct nk_panel node, context_menu;
-
- /* context menu */
-
- /* main menu */
- nk_menubar_begin(ctx);
- nk_layout_row_begin(ctx, NK_STATIC, 25, 1);
- nk_layout_row_push(ctx, 100);
-
- nk_layout_row_push(ctx, 60);
- nk_menubar_end(ctx);
- }
-
-
- /* save position and size to restore after context reset */
- nk_menu_wnd_set_state(zr, id, nk_window_get_position(ctx), nk_window_get_size(ctx));
- if (zr->size_changed)
- nk_window_set_size(ctx, nk_vec2(nk_window_get_size(ctx).x, zr->size.y));
-
- nk_end(ctx);
-}
diff --git a/menu/drivers/nuklear/nk_menu.h b/menu/drivers/nuklear/nk_menu.h
index d9199dc5b1..9d1c7305ae 100644
--- a/menu/drivers/nuklear/nk_menu.h
+++ b/menu/drivers/nuklear/nk_menu.h
@@ -15,6 +15,8 @@
* If not, see .
*/
+/* This file is intended for helper functions, custom controls, etc. */
+
#include "nk_common.h"
#include "../../menu_display.h"
#include "../../menu_input.h"
@@ -28,8 +30,8 @@ enum
enum
{
ZRMENU_WND_MAIN = 0,
+ ZRMENU_WND_SETTINGS,
ZRMENU_WND_SHADER_PARAMETERS,
- ZRMENU_WND_TEST,
};
enum nk_menu_theme
@@ -87,6 +89,5 @@ typedef struct nk_menu_handle
} nk_menu_handle_t;
void nk_menu_wnd_shader_parameters(nk_menu_handle_t *zr);
-void nk_menu_wnd_test(nk_menu_handle_t *zr);
void nk_menu_wnd_main(nk_menu_handle_t *zr);
diff --git a/menu/drivers/nuklear/nk_wnd_shader_parameters.c b/menu/drivers/nuklear/nk_wnd_shader_parameters.c
new file mode 100644
index 0000000000..1fc33b5284
--- /dev/null
+++ b/menu/drivers/nuklear/nk_wnd_shader_parameters.c
@@ -0,0 +1,83 @@
+/* RetroArch - A frontend for libretro.
+ * Copyright (C) 2011-2016 - Daniel De Matteis
+ * Copyright (C) 2014-2015 - Jean-André Santoni
+ * Copyright (C) 2016 - Andrés Suárez
+ *
+ * RetroArch is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Found-
+ * ation, either version 3 of the License, or (at your option) any later version.
+ *
+ * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with RetroArch.
+ * If not, see .
+ */
+
+#include "nk_menu.h"
+
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+
+#include "../../menu_driver.h"
+#include "../../menu_hash.h"
+
+#include "../../../gfx/common/gl_common.h"
+#include "../../../core_info.h"
+#include "../../../configuration.h"
+#include "../../../retroarch.h"
+
+
+void nk_menu_wnd_shader_parameters(nk_menu_handle_t *zr)
+{
+ unsigned i;
+ video_shader_ctx_t shader_info;
+ struct nk_panel layout;
+ struct nk_context *ctx = &zr->ctx;
+ const int id = ZRMENU_WND_SHADER_PARAMETERS;
+ settings_t *settings = config_get_ptr();
+
+ if (nk_begin(ctx, &layout, "Shader Parameters", nk_rect(240, 10, 300, 400),
+ NK_WINDOW_CLOSABLE|NK_WINDOW_MINIMIZABLE|NK_WINDOW_MOVABLE|
+ NK_WINDOW_SCALABLE|NK_WINDOW_BORDER))
+ {
+ struct nk_panel combo;
+ static const char *themes[] = {"Dark", "Light"};
+ enum nk_menu_theme old = zr->theme;
+
+ nk_layout_row_dynamic(ctx, 30, 1);
+
+ video_shader_driver_get_current_shader(&shader_info);
+
+ if (shader_info.data)
+ {
+ for (i = 0; i < GFX_MAX_PARAMETERS; i++)
+ {
+ if (!string_is_empty(shader_info.data->parameters[i].desc))
+ {
+/* if(shader_info.data->parameters[i].minimum == 0 &&
+ shader_info.data->parameters[i].maximum == 1 &&
+ shader_info.data->parameters[i].step == 1)
+ nk_checkbox_float(ctx, shader_info.data->parameters[i].desc,
+ &(shader_info.data->parameters[i].current));
+ else*/
+ nk_property_float(ctx, shader_info.data->parameters[i].desc,
+ shader_info.data->parameters[i].minimum,
+ &(shader_info.data->parameters[i].current),
+ shader_info.data->parameters[i].maximum,
+ shader_info.data->parameters[i].step, 1);
+ }
+ }
+ }
+ }
+ /* save position and size to restore after context reset */
+ nk_menu_wnd_set_state(zr, id, nk_window_get_position(ctx), nk_window_get_size(ctx));
+ nk_end(ctx);
+}
\ No newline at end of file