split render.c into cave_mesher.c and cave_render.c
This commit is contained in:
48
tests/caveview/caveview.h
Normal file
48
tests/caveview/caveview.h
Normal file
@ -0,0 +1,48 @@
|
||||
#ifndef INCLUDE_CAVEVIEW_H
|
||||
#define INCLUDE_CAVEVIEW_H
|
||||
|
||||
#include "stb.h"
|
||||
|
||||
#define STBVOX_ROTATION_IN_LIGHTING
|
||||
#include "stb_voxel_render.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int cx,cy;
|
||||
|
||||
stbvox_mesh_maker mm;
|
||||
|
||||
uint8 *build_buffer;
|
||||
uint8 *face_buffer;
|
||||
|
||||
int num_quads;
|
||||
float transform[3][3];
|
||||
float bounds[2][3];
|
||||
|
||||
uint8 sv_blocktype[34][34][18];
|
||||
uint8 sv_lighting [34][34][18];
|
||||
} raw_mesh;
|
||||
|
||||
// a 3D checkerboard of empty,solid would be: 32x32x255x6/2 ~= 800000
|
||||
// an all-leaf qchunk would be: 32 x 32 x 255 x 6 ~= 1,600,000
|
||||
|
||||
#define BUILD_QUAD_MAX 800000
|
||||
#define BUILD_BUFFER_SIZE (4*4*BUILD_QUAD_MAX) // 4 bytes per vertex, 4 vertices per quad
|
||||
#define FACE_BUFFER_SIZE ( 4*BUILD_QUAD_MAX) // 4 bytes per quad
|
||||
|
||||
|
||||
extern void mesh_init(void);
|
||||
extern void render_init(void);
|
||||
extern void world_init(void);
|
||||
extern void ods(char *fmt, ...); // output debug string
|
||||
extern void reset_cache_size(int size);
|
||||
|
||||
|
||||
#include "cave_parse.h" // fast_chunk
|
||||
|
||||
extern fast_chunk *get_converted_fastchunk(int chunk_x, int chunk_y);
|
||||
extern void build_chunk(int chunk_x, int chunk_y, fast_chunk *fc_table[4][4], raw_mesh *rm);
|
||||
extern void reset_cache_size(int size);
|
||||
extern void deref_fastchunk(fast_chunk *fc);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user