|
|
@ -122,18 +122,63 @@ VkResult main_thread(ClientContext* context) {
|
|
|
|
4*sizeof(uint32_t),
|
|
|
|
4*sizeof(uint32_t),
|
|
|
|
&context->render));
|
|
|
|
&context->render));
|
|
|
|
|
|
|
|
|
|
|
|
HexRegion* region;
|
|
|
|
HexRegion* regions[19];
|
|
|
|
VK_RESULT(create_hex_region(0, 0, ®ion, &context->hex, &context->render));
|
|
|
|
uint32_t colors[] = {
|
|
|
|
|
|
|
|
0xFF0000FF,
|
|
|
|
|
|
|
|
0x00FF00FF,
|
|
|
|
|
|
|
|
0x00FF00FF,
|
|
|
|
|
|
|
|
0x00FF00FF,
|
|
|
|
|
|
|
|
0x00FF00FF,
|
|
|
|
|
|
|
|
0x00FF00FF,
|
|
|
|
|
|
|
|
0x00FF00FF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
0x0000FFFF,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 0, 0, ®ions[0], &context->hex, &context->render));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 1, -1, ®ions[1], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 1, 0, ®ions[2], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 0, 1, ®ions[3], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-1, 1, ®ions[4], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-1, 0, ®ions[5], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 0, -1, ®ions[6], &context->hex, &context->render));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 0, -2, ®ions[7], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 1, -2, ®ions[8], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 2, -2, ®ions[9], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 2, -1, ®ions[10], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 2, 0, ®ions[11], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 1, 1, ®ions[12], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region( 0, 2, ®ions[13], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-1, 2, ®ions[14], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-2, 2, ®ions[15], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-2, 1, ®ions[16], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-2, 0, ®ions[17], &context->hex, &context->render));
|
|
|
|
|
|
|
|
VK_RESULT(create_hex_region(-1, -1, ®ions[18], &context->hex, &context->render));
|
|
|
|
GPUHex* temp_hexes = malloc(sizeof(GPUHex)*REGION_HEX_COUNT);
|
|
|
|
GPUHex* temp_hexes = malloc(sizeof(GPUHex)*REGION_HEX_COUNT);
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t colors[] = {0xFF0000FF, 0x00FF00FF, 0x0000FFFF};
|
|
|
|
for(uint32_t r = 0; r < sizeof(regions)/sizeof(HexRegion*); r++) {
|
|
|
|
for(uint32_t i = 0; i < REGION_HEX_COUNT; i++) {
|
|
|
|
for(uint32_t i = 0; i < REGION_HEX_COUNT; i++) {
|
|
|
|
for(uint32_t h = 0; h < 6; h++) {
|
|
|
|
for(uint32_t h = 0; h < 6; h++) {
|
|
|
|
temp_hexes[i].color[h] = colors[i%3];
|
|
|
|
temp_hexes[i].color[h] = colors[r % (sizeof(colors)/sizeof(uint32_t))];
|
|
|
|
temp_hexes[i].height[h] = 0;
|
|
|
|
temp_hexes[i].height[h] = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
VK_RESULT(add_transfer(temp_hexes, regions[r]->region, offsetof(GPUHexRegion, hexes), sizeof(GPUHex)*REGION_HEX_COUNT, 0, &context->render));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
VK_RESULT(add_transfer(temp_hexes, region->region, offsetof(GPUHexRegion, hexes), sizeof(GPUHex)*REGION_HEX_COUNT, 0, &context->render));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
free(temp_hexes);
|
|
|
|
free(temp_hexes);
|
|
|
|
|
|
|
|
|
|
|
|
context->position[0] = 0;
|
|
|
|
context->position[0] = 0;
|
|
|
@ -204,7 +249,7 @@ VkResult main_thread(ClientContext* context) {
|
|
|
|
camera[1] = context->position[1] + context->distance*sin(context->rotation[1]);
|
|
|
|
camera[1] = context->position[1] + context->distance*sin(context->rotation[1]);
|
|
|
|
camera[2] = context->position[2] + context->distance*cos(context->rotation[1])*sin(context->rotation[0]);
|
|
|
|
camera[2] = context->position[2] + context->distance*cos(context->rotation[1])*sin(context->rotation[0]);
|
|
|
|
glm_lookat(camera, context->position, up, context->hex.data.view);
|
|
|
|
glm_lookat(camera, context->position, up, context->hex.data.view);
|
|
|
|
add_transfer(&context->hex.data, context->hex.context, 0, 2*sizeof(mat4), 0, &context->render);
|
|
|
|
add_transfer(&context->hex.data, context->hex.context, 0, 2*sizeof(mat4), context->render.current_frame, &context->render);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(context->clicked_container != 0) {
|
|
|
|
if(context->clicked_container != 0) {
|
|
|
|