save position to file
This commit is contained in:
parent
2c3b354e41
commit
1939e2dff5
1 changed files with 23 additions and 10 deletions
33
main.c
33
main.c
|
@ -161,13 +161,15 @@ int main(void) {
|
|||
glGenBuffers(2, vertex_buffer);
|
||||
|
||||
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);
|
||||
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(struct v3f),
|
||||
(void *)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);
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(struct v3f),
|
||||
(void *)0);
|
||||
|
@ -207,6 +209,9 @@ int main(void) {
|
|||
pos[1] = 48;
|
||||
pos[2] = 10240;
|
||||
|
||||
FILE *fp = fopen("./db/position.dat", "rb");
|
||||
int code = (fp) ? fread(&pos, sizeof(struct v3f), 1, fp) : 0;
|
||||
|
||||
int cube_count =
|
||||
cubes_vert(cube, text, cubeO, textO, pos[0] / CHUNK_LENGTH,
|
||||
pos[1] / CHUNK_LENGTH, pos[2] / CHUNK_LENGTH, 1, i2);
|
||||
|
@ -330,8 +335,8 @@ int main(void) {
|
|||
|
||||
glBindTexture(GL_TEXTURE_2D, GL_TEXTURE0);
|
||||
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tx, ty, 0, GL_RGBA, GL_UNSIGNED_BYTE,
|
||||
pixels);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tx, ty, 0, GL_RGBA,
|
||||
GL_UNSIGNED_BYTE, pixels);
|
||||
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
|
@ -349,28 +354,36 @@ int main(void) {
|
|||
glUniform1i(use_shading, 0);
|
||||
|
||||
int iz = CBLOCK_ALL * 18;
|
||||
cubes_rect(cubeO, &iz, -0.5,0.5, -0.5, 0.5, 0, 0, 6);
|
||||
cubes_rect(cubeO, &iz, -0.5, 0.5, -0.5, 0.5, 0, 0, 6);
|
||||
cubes_rect(textO, &iz, -0.5, 0.5, -0.5, 0.5, 1, 0, 6);
|
||||
|
||||
mat4x4_identity(v);
|
||||
mat4x4_ortho(p, -ratio*15, ratio*15, -1.f*15, 1.f*15, 1.0f, -1.0f);
|
||||
mat4x4_ortho(p, -ratio * 15, ratio * 15, -1.f * 15, 1.f * 15, 1.0f, -1.0f);
|
||||
mat4x4_mul(mvp, p, v);
|
||||
mat4x4_mul(mvp, mvp, m);
|
||||
|
||||
glUniformMatrix4fv(mvp_location, 1, GL_FALSE, (const GLfloat *)&mvp);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[1]);
|
||||
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL,
|
||||
(long)6 * sizeof(struct v3f), &textO[iz]);
|
||||
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL, (long)6 * sizeof(struct v3f),
|
||||
&textO[iz]);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer[0]);
|
||||
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL,
|
||||
(long)6 * sizeof(struct v3f), &cubeO[iz]);
|
||||
glBufferSubData(GL_ARRAY_BUFFER, CTRI_ALL, (long)6 * sizeof(struct v3f),
|
||||
&cubeO[iz]);
|
||||
|
||||
glBindVertexArray(vertex_array);
|
||||
|
||||
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(text);
|
||||
free(cubeO);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue