remove some unused params
This commit is contained in:
parent
579eb9f540
commit
c4181e5c42
6 changed files with 28 additions and 34 deletions
2
const.h
2
const.h
|
@ -30,8 +30,6 @@ typedef struct Vertex2 {
|
||||||
|
|
||||||
#define CTRI_ALL CBLOCK_ALL * 18 * sizeof(Vertex)
|
#define CTRI_ALL CBLOCK_ALL * 18 * sizeof(Vertex)
|
||||||
|
|
||||||
#define MAX_R 1
|
|
||||||
|
|
||||||
typedef struct Chunk {
|
typedef struct Chunk {
|
||||||
unsigned char exists;
|
unsigned char exists;
|
||||||
unsigned int x;
|
unsigned int x;
|
||||||
|
|
38
cubes.c
38
cubes.c
|
@ -22,7 +22,6 @@ int oy = -1024;
|
||||||
int oz = -1024;
|
int oz = -1024;
|
||||||
|
|
||||||
Chunk *chunk_old = NULL;
|
Chunk *chunk_old = NULL;
|
||||||
int read_order = 0;
|
|
||||||
|
|
||||||
void gen_face(Vertex *cube, int i, int x, int y, int z, int x2, int y2, int z2,
|
void gen_face(Vertex *cube, int i, int x, int y, int z, int x2, int y2, int z2,
|
||||||
int *j, int is_text, Chunk dat, int ci, int a3) {
|
int *j, int is_text, Chunk dat, int ci, int a3) {
|
||||||
|
@ -32,11 +31,11 @@ void gen_face(Vertex *cube, int i, int x, int y, int z, int x2, int y2, int z2,
|
||||||
if (is_text) {
|
if (is_text) {
|
||||||
a.pos[i]--;
|
a.pos[i]--;
|
||||||
int exists = 0;
|
int exists = 0;
|
||||||
int type = cube_exists(x, y, z, dat, ci, read_order);
|
int type = cube_exists(x, y, z, dat, ci);
|
||||||
int typeB = cube_exists(a.pos[0], a.pos[1], a.pos[2], dat, ci, read_order);
|
int typeB = cube_exists(a.pos[0], a.pos[1], a.pos[2], dat, ci);
|
||||||
exists = ((!!type) != (!!typeB));
|
exists = ((!!type) != (!!typeB));
|
||||||
|
|
||||||
a2.pos[0] = exists ? TEXT_GAP_H * (type ? (type - 1) : (typeB-1)) : -1.0;
|
a2.pos[0] = exists ? TEXT_GAP_H * (type ? (type - 1) : (typeB - 1)) : -1.0;
|
||||||
a2.pos[1] = exists ? TEXT_GAP_V * (i + (!!type) * 3) : -1.0;
|
a2.pos[1] = exists ? TEXT_GAP_V * (i + (!!type) * 3) : -1.0;
|
||||||
a2.pos[2] = 0;
|
a2.pos[2] = 0;
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
|
@ -104,7 +103,7 @@ void *gen_chunk(void *args) {
|
||||||
(CHUNK_ALL);*/
|
(CHUNK_ALL);*/
|
||||||
|
|
||||||
Chunk chunk = fetch_chunk(x2 / CHUNK_LENGTH, y2 / CHUNK_LENGTH,
|
Chunk chunk = fetch_chunk(x2 / CHUNK_LENGTH, y2 / CHUNK_LENGTH,
|
||||||
z2 / CHUNK_LENGTH, a, 0, read_order);
|
z2 / CHUNK_LENGTH, a, 0);
|
||||||
|
|
||||||
if (chunk.exists != 0 && the_j > -1)
|
if (chunk.exists != 0 && the_j > -1)
|
||||||
chunk_old[the_j] = chunk;
|
chunk_old[the_j] = chunk;
|
||||||
|
@ -141,7 +140,7 @@ void *gen_chunk(void *args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x,
|
int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x,
|
||||||
int y, int z, int r, int is_purge, int *i2) {
|
int y, int z, int is_purge, int *i2) {
|
||||||
Vertex noth = {{-1, -1, -1}};
|
Vertex noth = {{-1, -1, -1}};
|
||||||
for (int i = 0; i < CBLOCK_ALL * 18; i++) {
|
for (int i = 0; i < CBLOCK_ALL * 18; i++) {
|
||||||
cube[i] = noth;
|
cube[i] = noth;
|
||||||
|
@ -152,7 +151,7 @@ int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x,
|
||||||
x *= CHUNK_LENGTH;
|
x *= CHUNK_LENGTH;
|
||||||
y *= CHUNK_LENGTH;
|
y *= CHUNK_LENGTH;
|
||||||
z *= CHUNK_LENGTH;
|
z *= CHUNK_LENGTH;
|
||||||
int a3 = CHUNK_DIAMETER_H + (r * 2);
|
int a3 = CHUNK_DIAMETER_H;
|
||||||
int a =
|
int a =
|
||||||
0; //(z % CHUNK_DIAMETER_H) + (x % CHUNK_DIAMETER_H) * CHUNK_DIAMETER_H +
|
0; //(z % CHUNK_DIAMETER_H) + (x % CHUNK_DIAMETER_H) * CHUNK_DIAMETER_H +
|
||||||
//(y % CHUNK_DIAMETER_V) * CHUNK_DIAMETER_H * CHUNK_DIAMETER_H;
|
//(y % CHUNK_DIAMETER_V) * CHUNK_DIAMETER_H * CHUNK_DIAMETER_H;
|
||||||
|
@ -170,27 +169,23 @@ int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x,
|
||||||
if (!chunk_old) {
|
if (!chunk_old) {
|
||||||
chunk_old = calloc((CHUNK_ALL), sizeof(struct Chunk));
|
chunk_old = calloc((CHUNK_ALL), sizeof(struct Chunk));
|
||||||
}
|
}
|
||||||
read_order = !read_order;
|
|
||||||
pthread_t thread_id[a3];
|
pthread_t thread_id[a3];
|
||||||
int j = 0;
|
int j = 0;
|
||||||
for (int y2 = y - (CHUNK_RADIUS_V + r) * CHUNK_LENGTH;
|
for (int y2 = y - (CHUNK_RADIUS_V)*CHUNK_LENGTH;
|
||||||
y2 <= y + (CHUNK_RADIUS_V + r) * CHUNK_LENGTH; y2 += CHUNK_LENGTH) {
|
y2 <= y + (CHUNK_RADIUS_V)*CHUNK_LENGTH; y2 += CHUNK_LENGTH) {
|
||||||
|
|
||||||
for (int x2 = x - (CHUNK_RADIUS_H + r) * CHUNK_LENGTH;
|
for (int x2 = x - (CHUNK_RADIUS_H)*CHUNK_LENGTH;
|
||||||
x2 <= x + (CHUNK_RADIUS_H + r) * CHUNK_LENGTH; x2 += CHUNK_LENGTH) {
|
x2 <= x + (CHUNK_RADIUS_H)*CHUNK_LENGTH; x2 += CHUNK_LENGTH) {
|
||||||
|
|
||||||
for (int z2 = z - (CHUNK_RADIUS_H + r) * CHUNK_LENGTH;
|
for (int z2 = z - (CHUNK_RADIUS_H)*CHUNK_LENGTH;
|
||||||
z2 <= z + (CHUNK_RADIUS_H + r) * CHUNK_LENGTH; z2 += CHUNK_LENGTH) {
|
z2 <= z + (CHUNK_RADIUS_H)*CHUNK_LENGTH; z2 += CHUNK_LENGTH) {
|
||||||
|
|
||||||
VertexI pos = {
|
VertexI pos = {
|
||||||
{x + (((x2 / CHUNK_LENGTH) % (CHUNK_DIAMETER_H + r * 2)) -
|
{x + (((x2 / CHUNK_LENGTH) % (CHUNK_DIAMETER_H)) - CHUNK_RADIUS_H) *
|
||||||
CHUNK_RADIUS_H) *
|
|
||||||
CHUNK_LENGTH,
|
CHUNK_LENGTH,
|
||||||
y + (((y2 / CHUNK_LENGTH) % (CHUNK_DIAMETER_V + r * 2)) -
|
y + (((y2 / CHUNK_LENGTH) % (CHUNK_DIAMETER_V)) - CHUNK_RADIUS_V) *
|
||||||
CHUNK_RADIUS_V) *
|
|
||||||
CHUNK_LENGTH,
|
CHUNK_LENGTH,
|
||||||
z + (((z2 / CHUNK_LENGTH) % (CHUNK_DIAMETER_H + r * 2)) -
|
z + (((z2 / CHUNK_LENGTH) % (CHUNK_DIAMETER_H)) - CHUNK_RADIUS_H) *
|
||||||
CHUNK_RADIUS_H) *
|
|
||||||
CHUNK_LENGTH}};
|
CHUNK_LENGTH}};
|
||||||
|
|
||||||
int a2 = a % a3;
|
int a2 = a % a3;
|
||||||
|
@ -214,7 +209,8 @@ int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x,
|
||||||
if (cached) {
|
if (cached) {
|
||||||
thread_return[a2] = i2[a2 / a3];
|
thread_return[a2] = i2[a2 / a3];
|
||||||
thread_id[a2] = -1;
|
thread_id[a2] = -1;
|
||||||
} else if (pos.pos[0] < 0 || pos.pos[1] < 0 || pos.pos[2] < 0 || pos.pos[1] < ((y - CHUNK_LENGTH*CHUNK_RADIUS_V) * 1.1)) {
|
} else if (pos.pos[0] < 0 || pos.pos[1] < 0 || pos.pos[2] < 0 ||
|
||||||
|
pos.pos[1] < ((y - CHUNK_LENGTH * CHUNK_RADIUS_V) * 1.05)) {
|
||||||
thread_return[a2] = -1;
|
thread_return[a2] = -1;
|
||||||
thread_id[a2] = -1;
|
thread_id[a2] = -1;
|
||||||
} else {
|
} else {
|
||||||
|
|
2
cubes.h
2
cubes.h
|
@ -1,3 +1,3 @@
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
|
|
||||||
int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x, int y, int z, int r, int is_purge, int *i2);
|
int gen_cubes(Vertex *cube, Vertex *text, Vertex *cubeO, Vertex *textO, int x, int y, int z, int is_purge, int *i2);
|
6
gen.c
6
gen.c
|
@ -58,7 +58,7 @@ double perlin_calc(double x, double y, double s) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
Chunk fetch_chunk(int x, int y, int z, int ci, int h, int r_order) {
|
Chunk fetch_chunk(int x, int y, int z, int ci, int h) {
|
||||||
|
|
||||||
Chunk *chunks2 = chunks; // &chunks[CBUF_ALL * ci];
|
Chunk *chunks2 = chunks; // &chunks[CBUF_ALL * ci];
|
||||||
|
|
||||||
|
@ -168,14 +168,14 @@ void purge_chunks(int ci) {
|
||||||
// memset(chunks, 0, sizeof(Chunk) *CHUNK_ALL);
|
// memset(chunks, 0, sizeof(Chunk) *CHUNK_ALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int cube_exists(int x, int y, int z, Chunk dat, int ci, int r_order) {
|
int cube_exists(int x, int y, int z, Chunk dat, int ci) {
|
||||||
if (x < 0 || y < 0 || z < 0)
|
if (x < 0 || y < 0 || z < 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (dat.exists == 0 || dat.x != (x / CHUNK_LENGTH) ||
|
if (dat.exists == 0 || dat.x != (x / CHUNK_LENGTH) ||
|
||||||
dat.y != (y / CHUNK_LENGTH) || dat.z != (z / CHUNK_LENGTH)) {
|
dat.y != (y / CHUNK_LENGTH) || dat.z != (z / CHUNK_LENGTH)) {
|
||||||
dat = fetch_chunk((x / CHUNK_LENGTH), (y / CHUNK_LENGTH),
|
dat = fetch_chunk((x / CHUNK_LENGTH), (y / CHUNK_LENGTH),
|
||||||
(z / CHUNK_LENGTH), ci, dat.exists, r_order);
|
(z / CHUNK_LENGTH), ci, dat.exists);
|
||||||
prevExists = dat.exists;
|
prevExists = dat.exists;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
gen.h
4
gen.h
|
@ -1,5 +1,5 @@
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
|
|
||||||
int cube_exists(int x, int y, int z, Chunk dat, int ci, int r_order);
|
int cube_exists(int x, int y, int z, Chunk dat, int ci);
|
||||||
Chunk fetch_chunk(int x, int y, int z, int ci, int h, int r_order);
|
Chunk fetch_chunk(int x, int y, int z, int ci, int h);
|
||||||
void purge_chunks(int ci);
|
void purge_chunks(int ci);
|
10
main.c
10
main.c
|
@ -100,7 +100,7 @@ void *render_chunks(void *args) {
|
||||||
*cube_count =
|
*cube_count =
|
||||||
gen_cubes(*args2.cube, *args2.text, *args2.cubeO, *args2.textO,
|
gen_cubes(*args2.cube, *args2.text, *args2.cubeO, *args2.textO,
|
||||||
args2.pos[0] / CHUNK_LENGTH, args2.pos[1] / CHUNK_LENGTH,
|
args2.pos[0] / CHUNK_LENGTH, args2.pos[1] / CHUNK_LENGTH,
|
||||||
args2.pos[2] / CHUNK_LENGTH, 0, 0, args2.i2);
|
args2.pos[2] / CHUNK_LENGTH, 0, args2.i2);
|
||||||
|
|
||||||
*args2.is_render = 2;
|
*args2.is_render = 2;
|
||||||
|
|
||||||
|
@ -132,11 +132,11 @@ int main(void) {
|
||||||
Vertex *text = malloc(CTRI_ALL);
|
Vertex *text = malloc(CTRI_ALL);
|
||||||
Vertex *cubeO = malloc(CTRI_ALL);
|
Vertex *cubeO = malloc(CTRI_ALL);
|
||||||
Vertex *textO = malloc(CTRI_ALL);
|
Vertex *textO = malloc(CTRI_ALL);
|
||||||
int bleh = (CHUNK_DIAMETER_H + MAX_R * 2) * (CHUNK_DIAMETER_V + MAX_R * 2);
|
int bleh = (CHUNK_DIAMETER_H) * (CHUNK_DIAMETER_V);
|
||||||
int *i2 = calloc(bleh, sizeof(int));
|
int *i2 = calloc(bleh, sizeof(int));
|
||||||
|
|
||||||
int cube_count = gen_cubes(cube, text, cubeO, textO, 10240 / CHUNK_LENGTH,
|
int cube_count = gen_cubes(cube, text, cubeO, textO, 10240 / CHUNK_LENGTH,
|
||||||
64 / CHUNK_LENGTH, 10240 / CHUNK_LENGTH, 0, 1, i2);
|
64 / CHUNK_LENGTH, 10240 / CHUNK_LENGTH, 1, i2);
|
||||||
GLuint vertex_buffer[2];
|
GLuint vertex_buffer[2];
|
||||||
|
|
||||||
GLuint vertex_array;
|
GLuint vertex_array;
|
||||||
|
@ -188,10 +188,10 @@ int main(void) {
|
||||||
vec3 oldPos = {0, 0, 0};
|
vec3 oldPos = {0, 0, 0};
|
||||||
Chunk ch7;
|
Chunk ch7;
|
||||||
ch7.exists = 0;
|
ch7.exists = 0;
|
||||||
int state = cube_exists(pos[0], pos[1], pos[2], ch7, 0, 0);
|
int state = cube_exists(pos[0], pos[1], pos[2], ch7, 0);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (state != cube_exists(pos[0], pos[1], pos[2], ch7, 0, 0))
|
if (state != cube_exists(pos[0], pos[1], pos[2], ch7, 0))
|
||||||
break;
|
break;
|
||||||
pos[1] += (state ? 1 : -1);
|
pos[1] += (state ? 1 : -1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue