# probe-cococry-runara **Repository Path**: EEPPEE_admin/probe-cococry-runara ## Basic Information - **Project Name**: probe-cococry-runara - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-15 - **Last Updated**: 2025-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # screenshot **Runara is a simple, well documented, bloatless 2D graphics library** Runara aims to be as small and as fast as possible. The code is contained in ~4k lines of code that feature a complete batch rendering system, glyph loading with [freetype](http://freetype.org/), text shaping with [harfbuzz](https://harfbuzz.github.io/), custom text layouting & alignment a glyph caching system, a (*in progress*) vector rendering engine and much more. ---
## Features - Efficient batch rendering system - Support for shader operations like rounded corners - Comple text rendering & loading engine - Extensivly documented functions & structures - Support for loading & rendering images - No global or hidden state - Built to make extending & modifing as straightforward as possible - Small and readable codebase ## Example using GLFW ```c #include #include #include RnState *state; void resizecb(GLFWwindow* window, int w, int h) { rn_resize_display(state, w, h); } int main() { glfwInit(); GLFWwindow* window = glfwCreateWindow(1280, 720, "Hello, World!", NULL, NULL); glfwSetFramebufferSizeCallback(window, resizecb); glfwMakeContextCurrent(window); // Initialize your state of the library state = rn_init(1280, 720, (RnGLLoader)glfwGetProcAddress); // Loading some fonts RnFont *heading = rn_load_font(state, "./Lora-Italic.ttf", 36); RnFont *paragraph = rn_load_font(state, "./Lora-Italic.ttf", 24); while(!glfwWindowShouldClose(window)) { glClear(GL_COLOR_BUFFER_BIT); glClearColor(0.1f, 0.1f, 0.1f, 1.0f); // Beginning a rende pass with Runara rn_begin(state); // Rendering some text with one font rn_text_render(state, "Hello, runara!", heading, (vec2s){20, 20}, RN_WHITE); // Render some text with another font rn_text_render(state, "Hey There!\nThis is a paragraph.", paragraph, (vec2s){20, 70}, RN_WHITE); // Rendering a basic rectangle rn_rect_render(state, (vec2s){20, 130}, (vec2s){200, 100}, RN_RED); // Ending the render pass rn_end(state); // External application or game code can still run perfectly fine // here. glfwPollEvents(); glfwSwapBuffers(window); } rn_free_font(state, heading); rn_free_font(state, paragraph); rn_terminate(state); } ``` ## Building and installing Make sure you have those build dependencies installed before installing Runara: ### Dependencies ```console freetype, harfbuzz, gl, make, gcc ``` After installing the dependencies just run: ```console sudo make install ``` ## Documentation For documentation of the library, just take a look at the Runara [header file](https://github.com/cococry/runara/blob/master/include/runara/runara.h) where every function is well documented. This is in my opinion the best approach to documenting as it is straightly bound to actually deleloping with the library.