add themes and colors :D

This commit is contained in:
2026-03-03 12:12:41 -05:00
parent bae74d7a96
commit 3173fabfc1
9 changed files with 308 additions and 116 deletions

View File

@@ -1,6 +1,5 @@
#include "renderer/renderer.h"
#include "ui/ui_core.h"
#include "ui/ui_theme.h"
#import <Metal/Metal.h>
#import <QuartzCore/CAMetalLayer.h>
@@ -166,6 +165,9 @@ struct Renderer {
// Text measurement (Core Text)
CTFontRef measure_font;
F32 measure_font_size;
// Clear color
F32 clear_r, clear_g, clear_b;
};
////////////////////////////////
@@ -617,6 +619,11 @@ Renderer *renderer_create(RendererDesc *desc) {
r->measure_font = nullptr;
r->measure_font_size = 0;
// Default clear color (dark theme bg_dark)
r->clear_r = 0.12f;
r->clear_g = 0.12f;
r->clear_b = 0.13f;
return r;
}
@@ -647,7 +654,7 @@ void renderer_end_frame(Renderer *r, Clay_RenderCommandArray render_commands) {
pass.colorAttachments[0].texture = drawable.texture;
pass.colorAttachments[0].loadAction = MTLLoadActionClear;
pass.colorAttachments[0].storeAction = MTLStoreActionStore;
pass.colorAttachments[0].clearColor = MTLClearColorMake(0.12, 0.12, 0.13, 1.0);
pass.colorAttachments[0].clearColor = MTLClearColorMake(r->clear_r, r->clear_g, r->clear_b, 1.0);
id<MTLCommandBuffer> cmd_buf = [r->command_queue commandBuffer];
id<MTLRenderCommandEncoder> encoder = [cmd_buf renderCommandEncoderWithDescriptor:pass];
@@ -801,6 +808,12 @@ void renderer_end_frame(Renderer *r, Clay_RenderCommandArray render_commands) {
r->frame_index++;
}
void renderer_set_clear_color(Renderer *r, float cr, float cg, float cb) {
r->clear_r = cr;
r->clear_g = cg;
r->clear_b = cb;
}
void renderer_set_font_scale(Renderer *r, float scale) {
float target_size = 15.0f * scale;
if (fabsf(target_size - r->font_atlas_size) < 0.1f) return;