move and rename private/rendering.h to rendering/internal_api.h
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
#define CIRCLES_H
|
||||
|
||||
#include "../util.h"
|
||||
#include "../private/rendering.h"
|
||||
#include "internal_api.h"
|
||||
#include "../context.h"
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
|
81
src/rendering/internal_api.h
Normal file
81
src/rendering/internal_api.h
Normal file
@ -0,0 +1,81 @@
|
||||
#ifndef RENDERING_INTERNAL_API_H
|
||||
#define RENDERING_INTERNAL_API_H
|
||||
#include "../textures.h"
|
||||
#include "../util.h"
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
#include <glad/glad.h>
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
struct sprite_primitive {
|
||||
t_frect rect;
|
||||
t_color color;
|
||||
float rotation;
|
||||
t_texture_key texture_key;
|
||||
bool flip_x;
|
||||
bool flip_y;
|
||||
};
|
||||
|
||||
struct rect_primitive {
|
||||
t_frect rect;
|
||||
t_color color;
|
||||
};
|
||||
|
||||
struct circle_primitive {
|
||||
float radius;
|
||||
t_color color;
|
||||
t_fvec2 position;
|
||||
};
|
||||
|
||||
enum primitive_2d_type {
|
||||
PRIMITIVE_2D_SPRITE,
|
||||
PRIMITIVE_2D_RECT,
|
||||
PRIMITIVE_2D_CIRCLE,
|
||||
};
|
||||
|
||||
struct primitive_2d {
|
||||
enum primitive_2d_type type;
|
||||
|
||||
union {
|
||||
struct sprite_primitive sprite;
|
||||
struct rect_primitive rect;
|
||||
struct circle_primitive circle;
|
||||
};
|
||||
};
|
||||
|
||||
/* union for in-place recalculation of texture coordinates */
|
||||
union uncolored_space_triangle {
|
||||
/* pending for sending, uvs are not final as texture atlases could update */
|
||||
struct uncolored_space_triangle_primitive {
|
||||
t_fvec3 v0;
|
||||
t_fvec2 uv0; /* in pixels */
|
||||
t_fvec3 v1;
|
||||
t_fvec2 uv1; /* in pixels */
|
||||
t_fvec3 v2;
|
||||
t_fvec2 uv2; /* in pixels */
|
||||
} primitive;
|
||||
|
||||
/* structure that is passed in opengl vertex array */
|
||||
struct uncolored_space_triangle_payload {
|
||||
t_fvec3 v0;
|
||||
t_fvec2 uv0;
|
||||
t_fvec3 v1;
|
||||
t_fvec2 uv1;
|
||||
t_fvec3 v2;
|
||||
t_fvec2 uv2;
|
||||
} payload;
|
||||
};
|
||||
|
||||
/* batch of primitives with overlapping properties */
|
||||
struct mesh_batch {
|
||||
GLuint buffer; /* server side storage */
|
||||
uint8_t *primitives;
|
||||
};
|
||||
|
||||
struct mesh_batch_item {
|
||||
t_texture_key key;
|
||||
struct mesh_batch value;
|
||||
};
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user