summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik.ramaekers@protonmail.com>2020-06-22 17:40:30 +0200
committerAldrik Ramaekers <aldrik.ramaekers@protonmail.com>2020-06-22 17:40:30 +0200
commitfee6c2364e8d22c41b53db90ace721cbe945f0af (patch)
treec0d7e5e82e73f926215fe0ba1ee30a6e0288a162
parent52d15199a4f2781f285d84fd78b71bbc23b85468 (diff)
cpu rendering
-rwxr-xr-xbuild-linux.sh2
-rw-r--r--build-win.bat2
-rw-r--r--data/imgs/add.bmpbin0 -> 922 bytes
-rw-r--r--data/imgs/delete.bmpbin0 -> 922 bytes
-rw-r--r--data/imgs/en.bmpbin0 -> 1738 bytes
-rw-r--r--data/imgs/en.pngbin1132 -> 0 bytes
-rw-r--r--data/imgs/exclaim.pngbin201 -> 0 bytes
-rw-r--r--data/imgs/list.bmpbin0 -> 922 bytes
-rw-r--r--data/imgs/list.pngbin140 -> 0 bytes
-rw-r--r--data/imgs/logo_64.bmpbin0 -> 16522 bytes
-rw-r--r--data/imgs/logo_64.pngbin1087 -> 0 bytes
-rw-r--r--data/imgs/nl.bmpbin0 -> 1738 bytes
-rw-r--r--data/imgs/nl.pngbin509 -> 0 bytes
-rw-r--r--data/imgs/png/add.png (renamed from data/imgs/add.png)bin142 -> 142 bytes
-rw-r--r--data/imgs/png/delete.png (renamed from data/imgs/delete.png)bin451 -> 451 bytes
-rw-r--r--data/imgs/png/set.png (renamed from data/imgs/set.png)bin353 -> 353 bytes
-rw-r--r--data/imgs/set.bmpbin0 -> 922 bytes
-rw-r--r--data/translations/en-English.mobin2915 -> 2947 bytes
-rw-r--r--data/translations/nl-Dutch.mobin3104 -> 3140 bytes
-rw-r--r--src/asset_definitions.h61
-rw-r--r--src/config.h10
-rw-r--r--src/mo_edit.c52
-rw-r--r--src/settings.c36
-rw-r--r--src/settings.h2
24 files changed, 82 insertions, 83 deletions
diff --git a/build-linux.sh b/build-linux.sh
index 545a940..4acca7a 100755
--- a/build-linux.sh
+++ b/build-linux.sh
@@ -34,7 +34,7 @@ rm -rf bin
mkdir bin
cd src
-ld -r -b binary -o ../bin/data.o ../data/imgs/en.png ../data/imgs/nl.png ../data/imgs/logo_64.png ../data/fonts/mono.ttf ../data/translations/en-English.mo ../data/translations/nl-Dutch.mo ../data/imgs/list.png ../data/imgs/delete.png ../data/imgs/exclaim.png ../data/imgs/add.png ../data/imgs/set.png
+ld -r -b binary -o ../bin/data.o ../data/imgs/en.bmp ../data/imgs/nl.bmp ../data/imgs/logo_64.bmp ../data/fonts/mono.ttf ../data/translations/en-English.mo ../data/translations/nl-Dutch.mo ../data/imgs/list.bmp ../data/imgs/delete.bmp ../data/imgs/add.bmp ../data/imgs/set.bmp
gcc -Wall -g -m64 -DMODE_DEVELOPER -Wno-unused-label -rdynamic -Wno-unused-variable mo_edit.c ../bin/data.o -o ../bin/mo-edit -lX11 -lGL -lGLU -lXrandr -lm -lpthread -ldl
diff --git a/build-win.bat b/build-win.bat
index 854a2c9..ca5a272 100644
--- a/build-win.bat
+++ b/build-win.bat
@@ -5,7 +5,7 @@ windres misc/icon.rc -O coff -o misc/icon.res
DEL /S /Q bin
cd src
-ld -r -b binary -o ../bin/data.o ../data/imgs/en.png ../data/imgs/nl.png ../data/imgs/logo_64.png ../data/fonts/mono.ttf ../data/translations/en-English.mo ../data/translations/nl-Dutch.mo ../data/imgs/list.png ../data/imgs/delete.png ../data/imgs/exclaim.png ../data/imgs/add.png ../data/imgs/set.png
+ld -r -b binary -o ../bin/data.o ../data/imgs/en.bmp ../data/imgs/nl.bmp ../data/imgs/logo_64.bmp ../data/fonts/mono.ttf ../data/translations/en-English.mo ../data/translations/nl-Dutch.mo ../data/imgs/list.bmp ../data/imgs/delete.bmp ../data/imgs/add.bmp ../data/imgs/set.bmp
if "%1"=="-w" (SET defs=-DMODE_DEVELOPER -DMODE_GDBDEBUG) else (SET defs=-DMODE_DEVELOPER)
diff --git a/data/imgs/add.bmp b/data/imgs/add.bmp
new file mode 100644
index 0000000..ba60f25
--- /dev/null
+++ b/data/imgs/add.bmp
Binary files differ
diff --git a/data/imgs/delete.bmp b/data/imgs/delete.bmp
new file mode 100644
index 0000000..aba6bd2
--- /dev/null
+++ b/data/imgs/delete.bmp
Binary files differ
diff --git a/data/imgs/en.bmp b/data/imgs/en.bmp
new file mode 100644
index 0000000..65350c5
--- /dev/null
+++ b/data/imgs/en.bmp
Binary files differ
diff --git a/data/imgs/en.png b/data/imgs/en.png
deleted file mode 100644
index 02fa2a1..0000000
--- a/data/imgs/en.png
+++ /dev/null
Binary files differ
diff --git a/data/imgs/exclaim.png b/data/imgs/exclaim.png
deleted file mode 100644
index 40cc4b6..0000000
--- a/data/imgs/exclaim.png
+++ /dev/null
Binary files differ
diff --git a/data/imgs/list.bmp b/data/imgs/list.bmp
new file mode 100644
index 0000000..0dcce5d
--- /dev/null
+++ b/data/imgs/list.bmp
Binary files differ
diff --git a/data/imgs/list.png b/data/imgs/list.png
deleted file mode 100644
index 14c389d..0000000
--- a/data/imgs/list.png
+++ /dev/null
Binary files differ
diff --git a/data/imgs/logo_64.bmp b/data/imgs/logo_64.bmp
new file mode 100644
index 0000000..8773e22
--- /dev/null
+++ b/data/imgs/logo_64.bmp
Binary files differ
diff --git a/data/imgs/logo_64.png b/data/imgs/logo_64.png
deleted file mode 100644
index 70724ff..0000000
--- a/data/imgs/logo_64.png
+++ /dev/null
Binary files differ
diff --git a/data/imgs/nl.bmp b/data/imgs/nl.bmp
new file mode 100644
index 0000000..7425cab
--- /dev/null
+++ b/data/imgs/nl.bmp
Binary files differ
diff --git a/data/imgs/nl.png b/data/imgs/nl.png
deleted file mode 100644
index 505b9ce..0000000
--- a/data/imgs/nl.png
+++ /dev/null
Binary files differ
diff --git a/data/imgs/add.png b/data/imgs/png/add.png
index 5539207..5539207 100644
--- a/data/imgs/add.png
+++ b/data/imgs/png/add.png
Binary files differ
diff --git a/data/imgs/delete.png b/data/imgs/png/delete.png
index fa0ab77..fa0ab77 100644
--- a/data/imgs/delete.png
+++ b/data/imgs/png/delete.png
Binary files differ
diff --git a/data/imgs/set.png b/data/imgs/png/set.png
index 79b4412..79b4412 100644
--- a/data/imgs/set.png
+++ b/data/imgs/png/set.png
Binary files differ
diff --git a/data/imgs/set.bmp b/data/imgs/set.bmp
new file mode 100644
index 0000000..0d189da
--- /dev/null
+++ b/data/imgs/set.bmp
Binary files differ
diff --git a/data/translations/en-English.mo b/data/translations/en-English.mo
index cf260aa..e6c82e4 100644
--- a/data/translations/en-English.mo
+++ b/data/translations/en-English.mo
Binary files differ
diff --git a/data/translations/nl-Dutch.mo b/data/translations/nl-Dutch.mo
index 32bb9ca..8ec0f77 100644
--- a/data/translations/nl-Dutch.mo
+++ b/data/translations/nl-Dutch.mo
Binary files differ
diff --git a/src/asset_definitions.h b/src/asset_definitions.h
index 628ae38..a60eeec 100644
--- a/src/asset_definitions.h
+++ b/src/asset_definitions.h
@@ -1,32 +1,29 @@
-extern u8 _binary____data_imgs_en_png_start[];
-extern u8 _binary____data_imgs_en_png_end[];
-
-extern u8 _binary____data_imgs_nl_png_start[];
-extern u8 _binary____data_imgs_nl_png_end[];
-
-extern u8 _binary____data_imgs_logo_64_png_start[];
-extern u8 _binary____data_imgs_logo_64_png_end[];
-
-extern u8 _binary____data_fonts_mono_ttf_start[];
-extern u8 _binary____data_fonts_mono_ttf_end[];
-
-extern u8 _binary____data_translations_en_English_mo_start[];
-extern u8 _binary____data_translations_en_English_mo_end[];
-
-extern u8 _binary____data_translations_nl_Dutch_mo_start[];
-extern u8 _binary____data_translations_nl_Dutch_mo_end[];
-
-extern u8 _binary____data_imgs_list_png_start[];
-extern u8 _binary____data_imgs_list_png_end[];
-
-extern u8 _binary____data_imgs_delete_png_start[];
-extern u8 _binary____data_imgs_delete_png_end[];
-
-extern u8 _binary____data_imgs_exclaim_png_start[];
-extern u8 _binary____data_imgs_exclaim_png_end[];
-
-extern u8 _binary____data_imgs_add_png_start[];
-extern u8 _binary____data_imgs_add_png_end[];
-
-extern u8 _binary____data_imgs_set_png_start[];
-extern u8 _binary____data_imgs_set_png_end[]; \ No newline at end of file
+extern unsigned char _binary____data_imgs_logo_64_bmp_start[];
+extern unsigned char _binary____data_imgs_logo_64_bmp_end[];
+
+extern unsigned char _binary____data_fonts_mono_ttf_start[];
+extern unsigned char _binary____data_fonts_mono_ttf_end[];
+
+extern unsigned char _binary____data_translations_en_English_mo_start[];
+extern unsigned char _binary____data_translations_en_English_mo_end[];
+
+extern unsigned char _binary____data_translations_nl_Dutch_mo_start[];
+extern unsigned char _binary____data_translations_nl_Dutch_mo_end[];
+
+extern unsigned char _binary____data_imgs_list_bmp_start[];
+extern unsigned char _binary____data_imgs_list_bmp_end[];
+
+extern unsigned char _binary____data_imgs_delete_bmp_start[];
+extern unsigned char _binary____data_imgs_delete_bmp_end[];
+
+extern unsigned char _binary____data_imgs_add_bmp_start[];
+extern unsigned char _binary____data_imgs_add_bmp_end[];
+
+extern unsigned char _binary____data_imgs_set_bmp_start[];
+extern unsigned char _binary____data_imgs_set_bmp_end[];
+
+extern unsigned char _binary____data_imgs_nl_bmp_start[];
+extern unsigned char _binary____data_imgs_nl_bmp_end[];
+
+extern unsigned char _binary____data_imgs_en_bmp_start[];
+extern unsigned char _binary____data_imgs_en_bmp_end[]; \ No newline at end of file
diff --git a/src/config.h b/src/config.h
index f0158cf..d7ee47f 100644
--- a/src/config.h
+++ b/src/config.h
@@ -8,9 +8,11 @@
#define INCLUDE_CONFIG
#define TARGET_FRAMERATE (1000/24.0)
-#define VERSION "1.0.2"
+#define VERSION "1.0.3"
+
+#define CONFIG_DIRECTORY_LINUX "/.config/moedit"
+#define CONFIG_DIRECTORY_WINDOWS "\\moedit"
-#define SCROLL_SPEED 50
#define FILE_RESERVE_COUNT 500
#define ERROR_RESERVE_COUNT 10
#define MAX_ERROR_MESSAGE_LENGTH 120
@@ -20,8 +22,4 @@
#define UNSAVED_CHANGES_COLOR rgb(255, 102, 102)
#define MISSING_TRANSLATION_COLOR rgb(255, 179, 102)
-#define ASSET_IMAGE_COUNT 10
-#define ASSET_FONT_COUNT 10
-#define ASSET_QUEUE_COUNT 20
-
#endif \ No newline at end of file
diff --git a/src/mo_edit.c b/src/mo_edit.c
index c8d5576..78f57a6 100644
--- a/src/mo_edit.c
+++ b/src/mo_edit.c
@@ -5,7 +5,10 @@
*/
#include "config.h"
-#include "project_base.h"
+#include "asset_definitions.h"
+#include "../../project-base/src/project_base.h"
+
+// TODO(Aldrik): get rid if unnecessary draw calls (especially lists)
s32 global_language_id = 1;
char project_path[MAX_INPUT_LENGTH];
@@ -64,7 +67,6 @@ submenu_state submenu_recent_projects;
image *set_img;
image *add_img;
image *list_img;
-image *exclaim_img;
image *delete_img;
image *logo_small_img;
@@ -74,25 +76,15 @@ font *font_mini;
static void load_assets()
{
- list_img = assets_load_image(_binary____data_imgs_list_png_start,
- _binary____data_imgs_list_png_end, false);
- exclaim_img = assets_load_image(_binary____data_imgs_exclaim_png_start,
- _binary____data_imgs_exclaim_png_end, false);
- logo_small_img = assets_load_image(_binary____data_imgs_logo_64_png_start,
- _binary____data_imgs_logo_64_png_end, true);
- delete_img = assets_load_image(_binary____data_imgs_delete_png_start,
- _binary____data_imgs_delete_png_end, false);
- add_img = assets_load_image(_binary____data_imgs_add_png_start,
- _binary____data_imgs_add_png_end, false);
- set_img = assets_load_image(_binary____data_imgs_set_png_start,
- _binary____data_imgs_set_png_end, false);
+ list_img = load_bitmap(list_bmp);
+ logo_small_img = load_bitmap(logo_64_bmp);
+ delete_img = load_bitmap(delete_bmp);
+ add_img = load_bitmap(add_bmp);
+ set_img = load_bitmap(set_bmp);
- font_medium = assets_load_font(_binary____data_fonts_mono_ttf_start,
- _binary____data_fonts_mono_ttf_end, 18);
- font_small = assets_load_font(_binary____data_fonts_mono_ttf_start,
- _binary____data_fonts_mono_ttf_end, 15);
- font_mini = assets_load_font(_binary____data_fonts_mono_ttf_start,
- _binary____data_fonts_mono_ttf_end, 12);
+ font_medium = load_font(mono_ttf, 18);
+ font_small = load_font(mono_ttf, 15);
+ font_mini = load_font(mono_ttf, 12);
}
bool term_has_missing_translations(term *t)
@@ -483,6 +475,7 @@ int main(int argc, char **argv)
window_w = 800;
window_h = 600;
}
+ global_use_gpu = settings_config_get_number(&config, "USE_GPU");
platform_window window = platform_open_window("mo-edit", window_w, window_h, 0, 0, 800, 600);
main_window = &window;
@@ -532,20 +525,8 @@ int main(int argc, char **argv)
platform_set_cursor(&window, CURSOR_DEFAULT);
settings_page_update_render();
-
platform_window_make_current(&window);
-
- static bool icon_loaded = false;
- if (!icon_loaded && logo_small_img->loaded)
- {
- icon_loaded = true;
- platform_set_icon(&window, logo_small_img);
- }
-
- if (global_asset_collection.queue.queue.length == 0 && !global_asset_collection.done_loading_assets)
- {
- global_asset_collection.done_loading_assets = true;
- }
+ platform_set_icon(&window, logo_small_img);
global_ui_context.layout.active_window = &window;
global_ui_context.keyboard = &keyboard;
@@ -561,7 +542,7 @@ int main(int argc, char **argv)
{
window.do_draw = false;
- render_clear();
+ render_clear(&window);
camera_apply_transformations(&window, &camera);
global_ui_context.layout.width = global_ui_context.layout.active_window->width;
@@ -712,8 +693,6 @@ int main(int argc, char **argv)
}
ui_push_tooltip(localize("tooltip_delete_term"));
- //ui_push_image(exclaim_img, 14, 14, 1, rgb(255,255,255));
-
if (i == current_project->selected_term_index)
{
ui_push_rect(10, global_ui_context.style.textbox_active_border);
@@ -1024,6 +1003,7 @@ int main(int argc, char **argv)
vec2 win_size = platform_get_window_size(&window);
settings_config_set_number(&config, "WINDOW_WIDTH", win_size.x);
settings_config_set_number(&config, "WINDOW_HEIGHT", win_size.y);
+ settings_config_set_number(&config, "USE_GPU", global_settings_page.use_gpu);
{
char *recent_project_list_buffer = mem_alloc(recent_projects_list.length*MAX_INPUT_LENGTH);
diff --git a/src/settings.c b/src/settings.c
index 118dca7..79b1a95 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -9,11 +9,10 @@ void set_status_text_to_finished_search();
void settings_page_create()
{
+ global_settings_page.use_gpu = global_use_gpu;
global_settings_page.active = false;
- global_settings_page.font_small = assets_load_font(_binary____data_fonts_mono_ttf_start,
- _binary____data_fonts_mono_ttf_end, 16);
- global_settings_page.logo_img = assets_load_image(_binary____data_imgs_logo_64_png_start,
- _binary____data_imgs_logo_64_png_end, true);
+ global_settings_page.font_small = load_font(mono_ttf, 15);
+ global_settings_page.logo_img = load_bitmap(logo_64_bmp);
global_settings_page.keyboard = keyboard_input_create();
global_settings_page.mouse = mouse_input_create();
@@ -24,6 +23,7 @@ void settings_page_create()
global_settings_page.camera = cam;
+ global_settings_page.cb_use_gpu = ui_create_checkbox(global_use_gpu);
global_settings_page.btn_close = ui_create_button();
global_settings_page.btn_save = ui_create_button();
global_settings_page.dropdown_language = ui_create_dropdown();
@@ -35,11 +35,24 @@ void settings_page_create()
static void load_current_settings_into_ui()
{
-
+ global_settings_page.use_gpu = global_use_gpu;
+ global_settings_page.cb_use_gpu.state = global_settings_page.use_gpu;
}
void settings_page_update_render()
{
+ if (global_settings_page.window.has_focus)
+ global_settings_page.window.do_draw = true;
+
+ // switch to cpu/gpu
+ if (global_use_gpu != global_settings_page.use_gpu)
+ {
+ global_use_gpu = global_settings_page.use_gpu;
+ platform_setup_backbuffer(main_window);
+ platform_setup_renderer();
+ assets_switch_render_method();
+ }
+
if (global_settings_page.active)
{
platform_window_make_current(&global_settings_page.window);
@@ -50,7 +63,7 @@ void settings_page_update_render()
{
global_settings_page.window.do_draw = false;
- render_clear();
+ render_clear(&global_settings_page.window);
camera_apply_transformations(&global_settings_page.window, &global_settings_page.camera);
@@ -99,6 +112,14 @@ void settings_page_update_render()
ui_block_begin(LAYOUT_HORIZONTAL);
{
+ if (ui_push_checkbox(&global_settings_page.cb_use_gpu, localize("use_gpu")))
+ {
+ }
+ }
+ ui_block_end();
+
+ ui_block_begin(LAYOUT_HORIZONTAL);
+ {
if (ui_push_hypertext_link(localize("copy_config_path")))
{
char buffer[PATH_MAX];
@@ -122,6 +143,7 @@ void settings_page_update_render()
if (ui_push_button(&global_settings_page.btn_close, localize("save")))
{
global_settings_page.active = false;
+ global_settings_page.use_gpu = global_settings_page.cb_use_gpu.state;
settings_page_hide();
return;
}
@@ -157,7 +179,7 @@ void settings_page_show()
load_current_settings_into_ui();
global_settings_page.window = platform_open_window(localize("mo_edit_settings"),
- 350, 220, 350, 220, 350, 220);
+ 350, 240, 350, 240, 350, 240);
settings_window = &global_settings_page.window;
diff --git a/src/settings.h b/src/settings.h
index 3d399cf..38dcf9d 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -18,6 +18,7 @@ typedef struct t_settings_page
font *font_small;
image *logo_img;
+ checkbox_state cb_use_gpu;
button_state btn_close;
button_state btn_save;
dropdown_state dropdown_language;
@@ -27,6 +28,7 @@ typedef struct t_settings_page
checkbox_state checkbox_parallelize_search;
s32 selected_tab_index;
+ bool use_gpu;
char *current_locale_id;
} settings_page;