Skip to content

Commit

Permalink
Sets some defaults, robustness for guifont
Browse files Browse the repository at this point in the history
  • Loading branch information
RMichelsen committed Sep 26, 2020
1 parent c4486ce commit 2f3e423
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance, PWSTR p_cmd_lin
);
if (hwnd == NULL) return 1;
context.hwnd = hwnd;
RendererInitialize(&renderer, "Consolas", 16.0f, hwnd);
RendererInitialize(&renderer, hwnd);
NvimInitialize(&nvim, nvim_command_line, hwnd);

MSG msg;
Expand Down
18 changes: 11 additions & 7 deletions src/renderer/renderer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ void HandleDeviceLost(Renderer *renderer) {
);
}

void RendererInitialize(Renderer *renderer, const char *font, float font_size, HWND hwnd) {
void RendererInitialize(Renderer *renderer, HWND hwnd) {
renderer->hwnd = hwnd;

renderer->dpi_scale = GetDpiFromDpiAwarenessContext(DPI_AWARENESS_CONTEXT_SYSTEM_AWARE) / 96.0f;
Expand All @@ -167,7 +167,7 @@ void RendererInitialize(Renderer *renderer, const char *font, float font_size, H
InitializeD3D(renderer);
InitializeDWrite(renderer);
renderer->glyph_renderer = new GlyphRenderer(renderer);
RendererUpdateFont(renderer, font_size, font, static_cast<int>(strlen(font)));
RendererUpdateFont(renderer, DEFAULT_FONT_SIZE, DEFAULT_FONT, static_cast<int>(strlen(DEFAULT_FONT)));
}

void RendererAttach(Renderer *renderer) {
Expand Down Expand Up @@ -804,12 +804,16 @@ void RendererUpdateGuiFont(Renderer *renderer, const char *guifont, size_t strle
size_t size_str_len = strlen - (font_str_len + 2);
size_str += 2;

assert(size_str_len < 64);
char font_size[64];
memcpy(font_size, size_str, size_str_len);
font_size[size_str_len] = '\0';
float font_size = DEFAULT_FONT_SIZE;
// Assume font size part of string is less than 256 characters
if(size_str_len < 256) {
char font_size_str[256];
memcpy(font_size_str, size_str, size_str_len);
font_size_str[size_str_len] = '\0';
font_size = static_cast<float>(atof(font_size_str));
}

RendererUpdateFont(renderer, static_cast<float>(atof(font_size)), guifont, static_cast<int>(font_str_len));
RendererUpdateFont(renderer, font_size, guifont, static_cast<int>(font_str_len));
}

void SetGuiOptions(Renderer *renderer, mpack_node_t option_set) {
Expand Down
5 changes: 4 additions & 1 deletion src/renderer/renderer.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#pragma once

constexpr const char *DEFAULT_FONT = "Consolas";
constexpr float DEFAULT_FONT_SIZE = 14.0f;

constexpr uint32_t DEFAULT_COLOR = 0x46464646;
enum HighlightAttributeFlags : uint16_t {
HL_ATTRIB_REVERSE = 1 << 0,
Expand Down Expand Up @@ -102,7 +105,7 @@ struct Renderer {
bool ui_busy;
};

void RendererInitialize(Renderer *renderer, const char *font, float font_size, HWND hwnd);
void RendererInitialize(Renderer *renderer, HWND hwnd);
void RendererAttach(Renderer *renderer);
void RendererShutdown(Renderer *renderer);

Expand Down

0 comments on commit 2f3e423

Please sign in to comment.