2023-02-21 22:05:28 +01:00
|
|
|
#include <SDL2/SDL.h>
|
|
|
|
|
#include <SDL2/SDL_events.h>
|
2023-02-23 01:23:21 +01:00
|
|
|
#include <SDL2/SDL_video.h>
|
2023-02-12 09:34:44 +01:00
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
2023-02-19 23:40:58 +01:00
|
|
|
#include "ren.h"
|
2023-02-15 02:15:44 +01:00
|
|
|
#include "util.h"
|
2023-02-12 09:34:44 +01:00
|
|
|
|
|
|
|
|
|
2023-03-07 19:09:32 +01:00
|
|
|
//const char *str1 = "Ciao Mamma!\nprova: òçà°ù§|¬³¼$£ì\t";
|
|
|
|
|
const char *str1 = "j";
|
|
|
|
|
const char *str2 = "gmt";
|
2023-02-25 22:50:31 +01:00
|
|
|
SDL_Window *win;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void draw(void)
|
|
|
|
|
{
|
2023-03-06 13:18:59 +01:00
|
|
|
static unsigned int frame = 0;
|
|
|
|
|
printf("frame: %d\n", frame++);
|
2023-02-25 22:50:31 +01:00
|
|
|
ren_clear();
|
2023-03-07 19:09:32 +01:00
|
|
|
ren_render_box(10, 10, 100, 50, 0xffff0000);
|
|
|
|
|
if (ren_render_text(str1, 10, 10, 100, 50, 20))
|
2023-03-04 18:54:00 +01:00
|
|
|
printf("text: %s\n", ren_strerror());
|
2023-03-07 19:09:32 +01:00
|
|
|
int w, h;
|
|
|
|
|
ren_get_text_box(str2, &w, &h, 40);
|
|
|
|
|
printf("box for: %s -> (%d, %d)\n", str2, w, h);
|
|
|
|
|
ren_render_box(200, 40, w, h, 0xffff0000);
|
|
|
|
|
ren_render_text(str2, 200, 40, 300, 300, 40);
|
2023-02-25 22:50:31 +01:00
|
|
|
SDL_GL_SwapWindow(win);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-02-12 09:34:44 +01:00
|
|
|
int main(void)
|
|
|
|
|
{
|
2023-02-23 23:39:34 +01:00
|
|
|
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS);
|
|
|
|
|
SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0");
|
|
|
|
|
SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1");
|
2023-03-07 19:09:32 +01:00
|
|
|
SDL_SetHint(SDL_HINT_VIDEO_HIGHDPI_DISABLED, "0");
|
2023-02-23 23:39:34 +01:00
|
|
|
|
2023-02-25 22:50:31 +01:00
|
|
|
win = SDL_CreateWindow(
|
2023-02-19 23:40:58 +01:00
|
|
|
"test render",
|
|
|
|
|
SDL_WINDOWPOS_UNDEFINED,
|
|
|
|
|
SDL_WINDOWPOS_UNDEFINED,
|
|
|
|
|
500,
|
|
|
|
|
500,
|
2023-03-07 19:09:32 +01:00
|
|
|
SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
|
2023-02-19 23:40:58 +01:00
|
|
|
if (ren_init(win)) {
|
|
|
|
|
printf("renderer init error: %s\n", ren_strerror());
|
|
|
|
|
return 1;
|
2023-02-12 09:34:44 +01:00
|
|
|
}
|
|
|
|
|
|
2023-02-15 02:15:44 +01:00
|
|
|
|
2023-03-06 19:01:15 +01:00
|
|
|
int w, h;
|
|
|
|
|
const char *s = "ciao mamma";
|
|
|
|
|
ren_get_text_box(s, &w, &h, 12);
|
|
|
|
|
printf("box for: %s -> (%d, %d)\n", s, w, h);
|
|
|
|
|
|
|
|
|
|
|
2023-02-21 22:05:28 +01:00
|
|
|
SDL_Event e;
|
|
|
|
|
while(1) {
|
|
|
|
|
SDL_WaitEvent(&e);
|
|
|
|
|
if (e.type == SDL_QUIT)
|
|
|
|
|
break;
|
2023-02-23 01:23:21 +01:00
|
|
|
if (e.type == SDL_WINDOWEVENT) {
|
|
|
|
|
switch (e.window.event) {
|
|
|
|
|
case SDL_WINDOWEVENT_RESIZED:
|
|
|
|
|
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
|
|
|
|
ren_update_viewport(e.window.data1, e.window.data2);
|
2023-02-25 22:50:31 +01:00
|
|
|
draw();
|
2023-02-23 23:39:34 +01:00
|
|
|
break;
|
2023-02-23 01:23:21 +01:00
|
|
|
case SDL_WINDOWEVENT_EXPOSED:
|
2023-02-25 22:50:31 +01:00
|
|
|
draw();
|
2023-02-23 01:23:21 +01:00
|
|
|
break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-02-21 22:05:28 +01:00
|
|
|
}
|
2023-02-15 02:15:44 +01:00
|
|
|
|
2023-02-19 23:40:58 +01:00
|
|
|
ren_free();
|
|
|
|
|
SDL_DestroyWindow(win);
|
2023-02-21 22:05:28 +01:00
|
|
|
SDL_Quit();
|
2023-02-12 09:34:44 +01:00
|
|
|
return 0;
|
|
|
|
|
}
|