StreamGame/source/engine/old/render_impl.h
2025-05-31 00:27:25 +02:00

59 lines
930 B
C

#ifndef RENDER_IMPL_H
# define RENDER_IMPL_H
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <raylib.h>
#include <rlgl.h>
#include <raymath.h>
# define GRAY_VALUE(c) ((float)(c.r + c.g + c.b)/3.0f)
# define NUMBER_FACE 6
typedef struct Plane {
Vector3 normal;
float distance;
} Plane;
typedef struct Frustum {
Plane planes[NUMBER_FACE];
} Frustum;
typedef struct {
uint32_t count;
uint32_t instanceCount;
uint32_t firstIndex;
uint32_t baseVertex;
uint32_t baseInstance;
} deic_t;
typedef enum {
XN,
XP,
YN,
YP,
ZN,
ZP,
} direction_enum;
typedef struct quad_data {
bool render;
uint16_t element;
int face_data;
} quad_data;
typedef struct voxel_mesh {
uint32_t vao;
uint32_t vbo;
uint32_t ebo;
uint32_t ibo;
quad_data faces[NUMBER_FACE][4096];
unsigned int faces_count[NUMBER_FACE];
Texture2D face_texture;
} voxel_mesh;
#endif