//--------------------------------------------------------- int main() { { boost::asio::io_service io_service; io_service.post(boost::bind(check_thread_id_00, boost::this_thread::get_id())); io_service.poll_one(); } { boost::thread t_00(thread_01); t_00.join(); global_io_service.run(); } /*{ boost::thread_group thread_group; for(int i=0; i<2; ++i) thread_group.create_thread(thread_00); thread_group.join_all(); }*/ { boost::asio::io_service io_service; boost::thread_group thread_group; for(int i=0; i<5; ++i) thread_group.create_thread( boost::bind(run_01, boost::ref(io_service), boost::this_thread::get_id())); thread_group.join_all(); } { //timer.async_wait(boost::bind(check_thread_id_00, boost::this_thread::get_id())); } return 0; }
std::vector<std::shared_ptr<Mesh>> Mesh::createCube() { auto m = std::shared_ptr<Mesh>(new Mesh()); glm::vec3 norm_z_p(0.f, 0.f, 1.f); glm::vec3 norm_z_m(0.f, 0.f, -1.f); glm::vec3 norm_x_p(1.f, 0.f, 0.f); glm::vec3 norm_x_m(-1.f, 0.f, 0.f); glm::vec3 norm_y_p(0.f, 1.f, 0.f); glm::vec3 norm_y_m(0.f, -1.f, 0.f); glm::vec3 v_ppp(1.f, 1.f, 1.f); glm::vec3 v_ppm(1.f, 1.f, -1.f); glm::vec3 v_pmp(1.f, -1.f, 1.f); glm::vec3 v_pmm(1.f, -1.f, -1.f); glm::vec3 v_mpp(-1.f, 1.f, 1.f); glm::vec3 v_mpm(-1.f, 1.f, -1.f); glm::vec3 v_mmp(-1.f, -1.f, 1.f); glm::vec3 v_mmm(-1.f, -1.f, -1.f); glm::vec2 t_00(0.f, 0.f); glm::vec2 t_01(0.f, 1.f); glm::vec2 t_10(1.f, 0.f); glm::vec2 t_11(1.f, 1.f); // Front m->vertices.push_back({ v_mmp, norm_z_p, t_00 }); m->vertices.push_back({ v_pmp, norm_z_p, t_10 }); m->vertices.push_back({ v_ppp, norm_z_p, t_11 }); m->vertices.push_back({ v_ppp, norm_z_p, t_11 }); m->vertices.push_back({ v_mpp, norm_z_p, t_01 }); m->vertices.push_back({ v_mmp, norm_z_p, t_00 }); // Back m->vertices.push_back({ v_mmm, norm_z_m, t_00 }); m->vertices.push_back({ v_ppm, norm_z_m, t_11 }); m->vertices.push_back({ v_pmm, norm_z_m, t_10 }); m->vertices.push_back({ v_ppm, norm_z_m, t_11 }); m->vertices.push_back({ v_mmm, norm_z_m, t_00 }); m->vertices.push_back({ v_mpm, norm_z_m, t_01 }); // Left m->vertices.push_back({ v_mpp, norm_x_m, t_10 }); m->vertices.push_back({ v_mpm, norm_x_m, t_11 }); m->vertices.push_back({ v_mmm, norm_x_m, t_01 }); m->vertices.push_back({ v_mmm, norm_x_m, t_01 }); m->vertices.push_back({ v_mmp, norm_x_m, t_00 }); m->vertices.push_back({ v_mpp, norm_x_m, t_10 }); // Right m->vertices.push_back({ v_ppp, norm_x_p, t_10 }); m->vertices.push_back({ v_pmm, norm_x_p, t_01 }); m->vertices.push_back({ v_ppm, norm_x_p, t_11 }); m->vertices.push_back({ v_pmm, norm_x_p, t_01 }); m->vertices.push_back({ v_ppp, norm_x_p, t_10 }); m->vertices.push_back({ v_pmp, norm_x_p, t_00 }); // Top m->vertices.push_back({ v_mpm, norm_y_p, t_01 }); m->vertices.push_back({ v_ppp, norm_y_p, t_10 }); m->vertices.push_back({ v_ppm, norm_y_p, t_11 }); m->vertices.push_back({ v_ppp, norm_y_p, t_10 }); m->vertices.push_back({ v_mpm, norm_y_p, t_01 }); m->vertices.push_back({ v_mpp, norm_y_p, t_00 }); // Bottom m->vertices.push_back({ v_mmm, norm_y_m, t_01 }); m->vertices.push_back({ v_pmm, norm_y_m, t_11 }); m->vertices.push_back({ v_pmp, norm_y_m, t_10 }); m->vertices.push_back({ v_pmp, norm_y_m, t_10 }); m->vertices.push_back({ v_mmp, norm_y_m, t_00 }); m->vertices.push_back({ v_mmm, norm_y_m, t_01 }); for (size_t i = 0; i < m->vertices.size(); ++i) { m->indices.push_back(i); } m->setupArrays(); return { m }; }