initial stb_voxel_render version with working minecraft viewer
This commit is contained in:
41
tests/caveview/cave_parse.h
Normal file
41
tests/caveview/cave_parse.h
Normal file
@ -0,0 +1,41 @@
|
||||
#ifndef INCLUDE_CAVE_PARSE_H
|
||||
#define INCLUDE_CAVE_PARSE_H
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char block;
|
||||
unsigned char data;
|
||||
unsigned char light:4;
|
||||
unsigned char skylight:4;
|
||||
} raw_block;
|
||||
|
||||
// this is the old fully-decoded chunk
|
||||
typedef struct
|
||||
{
|
||||
int xpos, zpos, max_y;
|
||||
int height[16][16];
|
||||
raw_block rb[16][16][256]; // [z][x][y] which becomes [y][x][z] in stb
|
||||
} chunk;
|
||||
|
||||
chunk *get_decoded_chunk(int chunk_x, int chunk_z);
|
||||
|
||||
#define NUM_SEGMENTS 16
|
||||
typedef struct
|
||||
{
|
||||
int max_y, xpos, zpos;
|
||||
|
||||
unsigned char *blockdata[NUM_SEGMENTS];
|
||||
unsigned char *data[NUM_SEGMENTS];
|
||||
unsigned char *skylight[NUM_SEGMENTS];
|
||||
unsigned char *light[NUM_SEGMENTS];
|
||||
|
||||
void *pointer_to_free;
|
||||
|
||||
int refcount; // this allows multi-threaded building without wrapping in ANOTHER struct
|
||||
} fast_chunk;
|
||||
|
||||
fast_chunk *get_decoded_fastchunk(int chunk_x, int chunk_z); // cache, never call free()
|
||||
|
||||
fast_chunk *get_decoded_fastchunk_uncached(int chunk_x, int chunk_z);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user