34 lines
958 B
C
34 lines
958 B
C
/* SPDX-License-Identifier:BSD-3-Clause */
|
|
|
|
#ifndef RENDERER_H
|
|
#define RENDERER_H
|
|
#include "../types.h"
|
|
#ifdef BACKEND_VK
|
|
#define RGFW_VULKAN
|
|
#endif
|
|
#include "../rgfw.h"
|
|
|
|
/*
|
|
* A mesh is a drawable object represented as an index (offset) in the global
|
|
* vertex and index buffers and a size.
|
|
*/
|
|
struct mesh {
|
|
usize vertex_offset;
|
|
usize index_offset;
|
|
usize size;
|
|
};
|
|
|
|
/*
|
|
* The renderer context stores objects related to rendering. Implementation
|
|
* depends on the graphics backend used so for reference see gl/gl.h or vk/vk.h
|
|
*/
|
|
struct renderer_context;
|
|
|
|
struct renderer_context *renderer_context_init(RGFW_window *window);
|
|
void renderer_context_deinit(struct renderer_context *context);
|
|
struct mesh *renderer_build_chunk_mesh(void);
|
|
void renderer_draw_mesh(struct renderer_context *context, struct mesh mesh);
|
|
void renderer_draw_chunk(struct renderer_context *context, struct mesh mesh);
|
|
void renderer_present(struct renderer_context *context);
|
|
|
|
#endif
|