Files
lity3d/Engine/Rendering/renderer.h
T
shuiyu1123 2d56cb3bc9 MiMoEngine ASM: x86-64 MASM汇编+C混合架构游戏引擎
核心热路径(数学/内存/字符串/性能分析)用MASM汇编(SSE/AVX2)
外围系统(窗口/渲染/ECS/音频/UI/脚本)用C语言
含自研编辑器、VisualScript积木编程、中文渲染(glyph_atlas)
2026-07-10 19:20:40 +08:00

31 lines
1.1 KiB
C

#pragma once
#include "graphics_device.h"
#include "shader.h"
#include "mesh.h"
#include "texture.h"
#include "camera.h"
#include "../include/engine_api.h"
#include "../ASM/math_c_fallback.h"
typedef struct {
GraphicsDevice* device;
Shader* current_shader;
Mat4 view;
Mat4 projection;
Vec3 light_dir;
Vec4 light_color;
Vec4 ambient_color;
} Renderer;
Renderer* renderer_create(GraphicsDevice* device);
void renderer_destroy(Renderer* renderer);
void renderer_begin_frame(Renderer* renderer);
void renderer_end_frame(Renderer* renderer);
void renderer_draw_mesh(Renderer* renderer, Mesh* mesh);
void renderer_draw_mesh_with_shader(Renderer* renderer, Mesh* mesh, Shader* shader, const Mat4* world, Texture* tex);
void renderer_set_view(Renderer* renderer, const Mat4* view);
void renderer_set_projection(Renderer* renderer, const Mat4* projection);
void renderer_set_light(Renderer* renderer, Vec3 dir, Vec4 color, Vec4 ambient);
GraphicsDevice* renderer_get_device(Renderer* renderer);
void renderer_resize(Renderer* renderer, int width, int height);