Exemple #1
0
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");
}
Exemple #2
0
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();
	}
Exemple #4
0
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]);

	
}
Exemple #5
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);
        
    }
}