render: add NVBoard name and version

This commit is contained in:
Zihao Yu 2024-01-10 03:32:37 +08:00
parent c48fcfa4c3
commit 9b168c2427
2 changed files with 22 additions and 10 deletions

View File

@ -1,20 +1,23 @@
#include <nvboard.h>
#include <SDL_ttf.h>
static TTF_Font *font;
static TTF_Font *font = NULL;
static SDL_Texture* font_texture_term[128] = { NULL };
SDL_Texture* surface2texture(SDL_Renderer *renderer, SDL_Surface *s);
SDL_Texture *nvboard_texture = NULL;
void init_font(SDL_Renderer *renderer) {
int ret = TTF_Init();
assert(ret != -1);
std::string nvboard_home = getenv("NVBOARD_HOME");
font = TTF_OpenFont((nvboard_home + "/resources/font/" + "FreeMono.ttf").c_str(), CH_HEIGHT);
font = TTF_OpenFont((nvboard_home + "/resources/font/" + "FreeMono.ttf").c_str(), 48);
assert(font != NULL);
TTF_SetFontHinting(font, TTF_HINTING_MONO);
TTF_SetFontStyle(font, TTF_STYLE_BOLD);
nvboard_texture = str2texture(renderer, "NVBoard", 0xffffff, BOARD_BG_COLOR);
TTF_SetFontSize(font, CH_HEIGHT);
SDL_Color fg = {.r = 0x00, .g = 0x00, .b = 0x00 };
SDL_Color bg = {.r = 0xff, .g = 0xff, .b = 0xff };
for (int i = 1; i < 128; i ++) {

View File

@ -78,15 +78,24 @@ void init_render(SDL_Renderer *renderer) {
nvboard_home = getenv("NVBOARD_HOME");
SDL_Rect rect_bg = {0, 0, WINDOW_WIDTH / 2, WINDOW_HEIGHT / 2};
#if 0
tfpga_background = load_pic_texture(renderer, BG_PATH);
SDL_RenderCopy(renderer, tfpga_background, NULL, &rect_bg);
#else
uint8_t r, g, b, a;
SDL_GetRenderDrawColor(renderer, &r, &g, &b, &a);
SDL_SetRenderDrawColor(renderer,
(BOARD_BG_COLOR >> 16) & 0xff, (BOARD_BG_COLOR >> 8) & 0xff, BOARD_BG_COLOR & 0xff, 0);
SDL_RenderFillRect(renderer, &rect_bg);
SDL_SetRenderDrawColor(renderer, r, g, b, a);
#endif
extern SDL_Texture *nvboard_texture;
int w, h;
SDL_QueryTexture(nvboard_texture, NULL, NULL, &w, &h);
SDL_Rect r = Rect(60, 140, w, h);
SDL_RenderCopy(renderer, nvboard_texture, NULL, &r);
SDL_DestroyTexture(nvboard_texture);
SDL_SetRenderDrawColor(renderer, 0xff, 0xff, 0xff, 0);
SDL_Point p[2];
p[0] = Point(60, 140 + h + 4);
p[1] = Point(WINDOW_WIDTH / 2 / 2 + 120, p[0].y);
draw_thicker_line(renderer, p, 2);
p[0].y += 4, p[1].y += 4;
draw_thicker_line(renderer, p, 2);
draw_str(renderer, "v1.0 (2024.01.10)", 60 + w + CH_WIDTH, 140 + h - CH_HEIGHT, 0xffffff);
}