summaryrefslogtreecommitdiff
path: root/main.c3
diff options
context:
space:
mode:
authorandromeda <andromeda@lenovo>2026-04-25 22:50:36 +0200
committerandromeda <andromeda@lenovo>2026-04-25 22:50:36 +0200
commitc101e6571135cfd963e3c3f9543e64c445af7fd8 (patch)
treea1b54e635fd95c6353cbac24caf1b361f6bcb7c1 /main.c3
parent168abecfafadb57a0c677777a40083761bf8a922 (diff)
finish x86_64-linux Wayland bindings for rfont, rgfw, rsgl :)
Diffstat (limited to 'main.c3')
-rw-r--r--main.c341
1 files changed, 35 insertions, 6 deletions
diff --git a/main.c3 b/main.c3
index 11e2c5f..794e4ce 100644
--- a/main.c3
+++ b/main.c3
@@ -1,22 +1,51 @@
-module c3term;
+/*
+*
+* Copyright (C) Andromeda 2026
+* ported from <https://github.com/ColleagueRiley/RSGL/blob/main/examples/basics/rfont.c>
+*
+*/
+
+module main;
+import std::io;
import rgfw;
import rsgl;
+import rfont;
fn int main(String[] args)
{
- GlHints* hints = rgfw::getGlobalHints_OpenGL();
+ GlHints* hints = rgfw::getGlobalHints();
hints.major = 3;
hints.minor = 3;
- hints.profile = GlProfile.GL_COMPATIBILITY;
- rgfw::setGlobalHints_OpenGL(hints);
+ hints.profile = GlProfile.COMPATIBILITY;
+ rgfw::setGlobalHints(hints);
+
+ Window* window = rgfw::createWindow("window title", 0, 0, 800, 400, WindowFlags.CENTER | WindowFlags.NO_RESIZE | WindowFlags.OPENGL);
- Window* window = rgfw::createWindow("window title", 0, 0, 800, 400, WindowFlags.WINDOW_CENTER | WindowFlags.WINDOW_NO_RESIZE | WindowFlags.WINDOW_OPENGL);
+ rsgl::Renderer* renderer = rsgl::renderer_init(rsgl::gl::rendererProc(), &rgfw::getProcAddress);
+ rsgl::renderer_viewport(renderer, rsgl::@rect(0,0,500,500));
+ rsgl::renderer_updateSize(renderer, 500, 500);
- Renderer* renderer = rsgl::renderer_init(rsgl::gl_rendererProc(), &rgfw::getProcAddress_OpenGL);
+ rfont::Renderer* renderer_rfont = rsgl::rfont_renderer_init(renderer);
+ Font* font = rfont::font_init(renderer_rfont, "COMICSANS.ttf", 60, 500, 500);
+
+ int w;
+ int h;
while (!rgfw::window_shouldClose(window))
{
rgfw::pollEvents();
+ rgfw::window_getSize(window, &w, &h);
+
+ rsgl::renderer_clear(renderer, rsgl::@rgb(125,25,75));
+
+ rsgl::renderer_viewport(renderer, rsgl::@rect(0,0,w,h));
+ rfont::renderer_set_framebuffer(renderer_rfont, w, h);
+
+ rfont::renderer_set_color(renderer_rfont, 1, 1, 1, 1);
+ rfont::draw_text(renderer_rfont, font, "smth hedgehog C3 idk", 0, 10, 60);
+
+ rsgl::renderer_render(renderer);
+ rgfw::window_swapBuffers(window);
}
rgfw::window_close(window);