summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/linux/platform.c6
-rw-r--r--src/project_base.h2
-rw-r--r--src/settings_config.c9
-rw-r--r--src/settings_config.h1
-rw-r--r--src/windows/platform.c4
5 files changed, 17 insertions, 5 deletions
diff --git a/src/linux/platform.c b/src/linux/platform.c
index d6fee97..dae9b1d 100644
--- a/src/linux/platform.c
+++ b/src/linux/platform.c
@@ -653,16 +653,16 @@ static void _allocate_backbuffer(platform_window *window)
if (window->backbuffer.buffer) { mem_free(window->backbuffer.buffer); window->backbuffer.buffer = 0; }
window->backbuffer.width = window->width;
- window->backbuffer.height = window->height;
+ window->backbuffer.height = window->height+1;
- s32 bufferMemorySize = (window->width*window->height)*5;
+ s32 bufferMemorySize = (window->backbuffer.width*window->backbuffer.height)*5;
window->backbuffer.buffer = mem_alloc(bufferMemorySize);
window->backbuffer.s_image = XCreateImage(
window->display,
DefaultVisual(window->display, DefaultScreen(window->display)),
DefaultDepth(window->display, DefaultScreen(window->display)),
ZPixmap, 0, (char*)window->backbuffer.buffer,
- window->width, window->height, 32, 0);
+ window->backbuffer.width, window->backbuffer.height, 32, 0);
}
void platform_window_set_size(platform_window *window, u16 width, u16 height)
diff --git a/src/project_base.h b/src/project_base.h
index 5d3f684..7a62b39 100644
--- a/src/project_base.h
+++ b/src/project_base.h
@@ -7,6 +7,8 @@
#ifndef INCLUDE_PROJECT_BASE
#define INCLUDE_PROJECT_BASE
+// TODO(Aldrik): scrolling images and text cuts off top because of scissor rec
+
#define PROJECT_BASE_VERSION "2"
#ifdef _WIN32
diff --git a/src/settings_config.c b/src/settings_config.c
index d2bc018..cf4d9c5 100644
--- a/src/settings_config.c
+++ b/src/settings_config.c
@@ -164,6 +164,15 @@ s64 settings_config_get_number(settings_config *config, char *name)
return 0;
}
+s64 settings_config_get_number_or_default(settings_config *config, char *name, s64 def)
+{
+ config_setting* setting = settings_config_get_setting(config, name);
+ if (setting && setting->value)
+ return string_to_u64(setting->value);
+ else
+ return def;
+}
+
void settings_config_set_string(settings_config *config, char *name, char *value)
{
config_setting* setting = settings_config_get_setting(config, name);
diff --git a/src/settings_config.h b/src/settings_config.h
index 1b931e1..5922d0e 100644
--- a/src/settings_config.h
+++ b/src/settings_config.h
@@ -31,6 +31,7 @@ void settings_config_destroy(settings_config *config);
config_setting* settings_config_get_setting(settings_config *config, char *name);
char* settings_config_get_string(settings_config *config, char *name);
s64 settings_config_get_number(settings_config *config, char *name);
+s64 settings_config_get_number_or_default(settings_config *config, char *name, s64 def);
void settings_config_set_string(settings_config *config, char *name, char *value);
void settings_config_set_number(settings_config *config, char *name, s64 value);
diff --git a/src/windows/platform.c b/src/windows/platform.c
index ae0c055..6db153c 100644
--- a/src/windows/platform.c
+++ b/src/windows/platform.c
@@ -343,7 +343,7 @@ static void _allocate_backbuffer(platform_window *window)
window->backbuffer.bitmapInfo = info;
window->backbuffer.width = window->width;
- window->backbuffer.height = window->height;
+ window->backbuffer.height = window->height+1;
s32 bufferMemorySize = (window->backbuffer.width*window->backbuffer.height)*5;
window->backbuffer.buffer = mem_alloc(bufferMemorySize);
@@ -961,7 +961,7 @@ void platform_window_swap_buffers(platform_window *window)
memcpy(window->backbuffer.buffer + (i*4), buffer_entry, 4);
}
- StretchDIBits(window->hdc,0,1,window->width,window->height,
+ StretchDIBits(window->hdc,0,0,window->width,window->height+1,
0,window->backbuffer.height,window->backbuffer.width,
-window->backbuffer.height,
window->backbuffer.buffer, &window->backbuffer.bitmapInfo, DIB_RGB_COLORS, SRCCOPY);