save position to file
This commit is contained in:
parent
2c3b354e41
commit
1939e2dff5
1 changed files with 23 additions and 10 deletions
29
main.c
29
main.c
|
@ -161,13 +161,15 @@ int main(void) {
|
||||||
glGenBuffers(2, vertex_buffer);
|
glGenBuffers(2, vertex_buffer);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[1]);
|
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[1]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, CTRI_ALL + UI_ALL* 18 * sizeof(struct v3f), textO, GL_STATIC_DRAW);
|
glBufferData(GL_ARRAY_BUFFER, CTRI_ALL + UI_ALL * 18 * sizeof(struct v3f),
|
||||||
|
textO, GL_STATIC_DRAW);
|
||||||
glEnableVertexAttribArray(1);
|
glEnableVertexAttribArray(1);
|
||||||
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(struct v3f),
|
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(struct v3f),
|
||||||
(void *)0);
|
(void *)0);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[0]);
|
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[0]);
|
||||||
glBufferData(GL_ARRAY_BUFFER, CTRI_ALL + UI_ALL * 18 * sizeof(struct v3f), cubeO, GL_STATIC_DRAW);
|
glBufferData(GL_ARRAY_BUFFER, CTRI_ALL + UI_ALL * 18 * sizeof(struct v3f),
|
||||||
|
cubeO, GL_STATIC_DRAW);
|
||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(struct v3f),
|
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(struct v3f),
|
||||||
(void *)0);
|
(void *)0);
|
||||||
|
@ -207,6 +209,9 @@ int main(void) {
|
||||||
pos[1] = 48;
|
pos[1] = 48;
|
||||||
pos[2] = 10240;
|
pos[2] = 10240;
|
||||||
|
|
||||||
|
FILE *fp = fopen("./db/position.dat", "rb");
|
||||||
|
int code = (fp) ? fread(&pos, sizeof(struct v3f), 1, fp) : 0;
|
||||||
|
|
||||||
int cube_count =
|
int cube_count =
|
||||||
cubes_vert(cube, text, cubeO, textO, pos[0] / CHUNK_LENGTH,
|
cubes_vert(cube, text, cubeO, textO, pos[0] / CHUNK_LENGTH,
|
||||||
pos[1] / CHUNK_LENGTH, pos[2] / CHUNK_LENGTH, 1, i2);
|
pos[1] / CHUNK_LENGTH, pos[2] / CHUNK_LENGTH, 1, i2);
|
||||||
|
@ -330,8 +335,8 @@ int main(void) {
|
||||||
|
|
||||||
glBindTexture(GL_TEXTURE_2D, GL_TEXTURE0);
|
glBindTexture(GL_TEXTURE_2D, GL_TEXTURE0);
|
||||||
|
|
||||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tx, ty, 0, GL_RGBA, GL_UNSIGNED_BYTE,
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tx, ty, 0, GL_RGBA,
|
||||||
pixels);
|
GL_UNSIGNED_BYTE, pixels);
|
||||||
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
@ -360,17 +365,25 @@ int main(void) {
|
||||||
glUniformMatrix4fv(mvp_location, 1, GL_FALSE, (const GLfloat *)&mvp);
|
glUniformMatrix4fv(mvp_location, 1, GL_FALSE, (const GLfloat *)&mvp);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[1]);
|
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[1]);
|
||||||
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL,
|
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL, (long)6 * sizeof(struct v3f),
|
||||||
(long)6 * sizeof(struct v3f), &textO[iz]);
|
&textO[iz]);
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[0]);
|
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[0]);
|
||||||
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL,
|
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL, (long)6 * sizeof(struct v3f),
|
||||||
(long)6 * sizeof(struct v3f), &cubeO[iz]);
|
&cubeO[iz]);
|
||||||
|
|
||||||
glBindVertexArray(vertex_array);
|
glBindVertexArray(vertex_array);
|
||||||
|
|
||||||
glDrawArrays(GL_TRIANGLES, CBLOCK_ALL * 18, 6);
|
glDrawArrays(GL_TRIANGLES, CBLOCK_ALL * 18, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fp) {
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
fp = fopen("./db/position.dat", "wb");
|
||||||
|
if (fp) {
|
||||||
|
fwrite(&pos, sizeof(struct v3f), 1, fp);
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
free(cube);
|
free(cube);
|
||||||
free(text);
|
free(text);
|
||||||
free(cubeO);
|
free(cubeO);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue