diff options
| author | Aldrik Ramaekers <aldrik.ramaekers@protonmail.com> | 2020-06-22 17:40:30 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrik.ramaekers@protonmail.com> | 2020-06-22 17:40:30 +0200 |
| commit | fee6c2364e8d22c41b53db90ace721cbe945f0af (patch) | |
| tree | c0d7e5e82e73f926215fe0ba1ee30a6e0288a162 /src | |
| parent | 52d15199a4f2781f285d84fd78b71bbc23b85468 (diff) | |
cpu rendering
Diffstat (limited to 'src')
| -rw-r--r-- | src/asset_definitions.h | 61 | ||||
| -rw-r--r-- | src/config.h | 10 | ||||
| -rw-r--r-- | src/mo_edit.c | 52 | ||||
| -rw-r--r-- | src/settings.c | 36 | ||||
| -rw-r--r-- | src/settings.h | 2 |
5 files changed, 80 insertions, 81 deletions
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; |
