void mainLoop() { do { if(display_timeout >= 0) --display_timeout; if(recording) { was_recording = 1; display_timeout=500; } if(display_timeout<=0 && (was_recording || gui_oldConfig != gui_selectConfig)) { g15macro_log("Display timeout is 0, and we were recording OR selected a new config.\n"); if (was_recording || gui_oldConfig == MAX_CONFIGS+1) { renderFull(); } else { // Only need to update selection, renderSelection(); } was_recording = 0; usleep(500*1000); } usleep(1000); } while( !leaving); // Told to exit. g15macro_log("Leaving mainloop\n"); }
void Menu::render(sf::RenderTarget* target){ for(auto& button : buttons_){ text_.setString(button->getLabel()); text_.setPosition(button->getPosition()); target->draw(text_); } renderSelection(target); }
// -------------------------------------------- // render // -------------------------------------------- void ParticlesEditState::showDialog() { gui::start(209, &_dialogPos); int gen_id = -1; renderSelection(); if (_model.hasSelection()) { reloadNames(); } _editor->render(); gui::end(); _particles->render(); }
void processSelection(int xx, int yy) { unsigned char res[4]; GLint viewport[4]; renderSelection(); glGetIntegerv(GL_VIEWPORT, viewport); glReadPixels(xx, viewport[3] - yy, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &res); if(res[0]==0) return; if(!Model.empty() && res[0]<Model.size()){ res[0]-=1; Model.push_back(actualModel); translate.push_back(glm::vec3(Translation[0],Translation[1],Translation[2])); rotation.push_back(g_Rotation); zoom.push_back(g_Zoom); actualModel = Model[res[0]]; Translation[0]=translate[res[0]].x; Translation[1]=translate[res[0]].y; Translation[2]=translate[res[0]].z; g_Zoom = zoom[res[0]]; g_Rotation = rotation[res[0]]; Model.erase(Model.begin()+res[0]); translate.erase(translate.begin()+res[0]); rotation.erase(rotation.begin()+res[0]); zoom.erase(zoom.begin()+res[0]); return; } res[0]-=Model.size(); lights.push_back(g_light); g_light = lights[res[0]]; lights.erase(lights.begin()+res[0]); }
void Application::processSelection(int xx, int yy) { unsigned char res[4]; GLint viewport[4]; renderSelection(); float x_scale, y_scale; x_scale = (float) framebuffer_width / window_width; y_scale = (float) framebuffer_height / window_height; glGetIntegerv(GL_VIEWPORT, viewport); glReadPixels(xx*x_scale, viewport[3]-yy*y_scale, 1,1,GL_RGBA, GL_UNSIGNED_BYTE, &res); //std::cout << "Clicked on:" << (int)res[0] << std::endl; int selected = (int) res[0]; //std::cout << "Clicked on:" << selected << std::endl; if (selected < 100 && selected >= 0) { if (scene.selected() && ((game.getPlayerId() == 1 && selected > 16) || (game.getPlayerId() == 2 && selected < 17))) game.tryMovement(scene.getSelected() + 1, selected + 1); else if ((game.getPlayerId() == 1 && selected <= 16) || (game.getPlayerId() == 2 && selected > 16)) scene.selectModel(selected); } else if (selected >= 100) { selected -= 100; int caseY = selected%8; int caseX = 7- (selected/8); if (scene.selected()) game.tryMovement(scene.getSelected()+1 , caseX, caseY); } }