예제 #1
0
//-----------------------------------------------------------------------------
/// Handle freeze/unfreeze
void Profiler::onClick(const core::vector2di& mouse_pos)
{
    video::IVideoDriver*            driver = irr_driver->getVideoDriver();
    const core::dimension2d<u32>&   screen_size = driver->getScreenSize();

    core::rect<s32>background_rect((int)(MARGIN_X                      * screen_size.Width),
                                   (int)(MARGIN_Y                      * screen_size.Height),
                                   (int)((1.0-MARGIN_X)                * screen_size.Width),
                                   (int)((MARGIN_Y + 3.0f*LINE_HEIGHT) * screen_size.Height));

    if(!background_rect.isPointInside(mouse_pos))
        return;

    switch(m_freeze_state)
    {
    case UNFROZEN:
        m_freeze_state = WAITING_FOR_FREEZE;
        break;

    case FROZEN:
        m_freeze_state = WAITING_FOR_UNFREEZE;
        break;

    case WAITING_FOR_FREEZE:
    case WAITING_FOR_UNFREEZE:
        // the user should not be that quick, and we prefer avoiding to introduce
        // bugs by unfrozing it while it has not frozen yet.
        // Same the other way around.
        break;
    }
}
예제 #2
0
//-----------------------------------------------------------------------------
/// Helper to draw a white background
void Profiler::drawBackground()
{
    video::IVideoDriver*            driver = irr_driver->getVideoDriver();
    const core::dimension2d<u32>&   screen_size = driver->getScreenSize();

    core::rect<s32>background_rect((int)(MARGIN_X                      * screen_size.Width),
                                   (int)((MARGIN_Y + 0.25f)             * screen_size.Height),
                                   (int)((1.0-MARGIN_X)                * screen_size.Width),
                                   (int)((MARGIN_Y + 1.75f*LINE_HEIGHT) * screen_size.Height));

    video::SColor   color(0x88, 0xFF, 0xFF, 0xFF);
    GL32_draw2DRectangle(color, background_rect);
}
예제 #3
0
int main(int argc,char** argv)
{
	DPipe tryba1_rect(200,200,100,40);
	DPipe tryba2_rect(400,400,100,40);
	DPipe background_rect(350,350,700,700);
	DPipe kletka_rect(200,200,100,100);
	DPipe kletka2_rect(400,400,100,100);


	setlocale(LC_ALL,"RUSSIAN");
	//------создаем окно с фоном и парой труб--------//
	SDL_DisplayMode displayMode;

	if (SDL_Init(SDL_INIT_EVERYTHING) != 0)
	{
    cout << "SDL_Init Error: " << SDL_GetError() << endl;
    return 1;
	}

	int request = SDL_GetDesktopDisplayMode(0,&displayMode);

	//создаем монитор
	SDL_Window *win = SDL_CreateWindow("Trubi", 300, 300,SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
	if (win == nullptr)
	{
		cout << "SDL_CreateWindow Error: " << SDL_GetError() << endl;
	    return 1;
	}

	//создаем рендерер
	SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
	if (ren == nullptr)
	{
		cout << "SDL_CreateRenderer Error: " << SDL_GetError() << endl;
	    return 1;
	}

	SDL_Surface *BMP_TRYBA=SDL_LoadBMP("kletka.bmp");
	if (BMP_TRYBA == nullptr)
	{
	    cout << "SDL_LoadBMP Error: " << SDL_GetError() << endl;
		return 1;
	}
	SDL_Texture *TRYBA = SDL_CreateTextureFromSurface(ren, BMP_TRYBA);

	SDL_RenderClear(ren);
	background_rect.default_create(ren,"project.bmp");
	kletka_rect.default_create(ren,"kletka.bmp");
	kletka2_rect.default_create(ren,"kletka.bmp");
	tryba1_rect.default_create(ren,"text1.bmp");
	tryba2_rect.default_create(ren,"text1.bmp");
	SDL_RenderPresent(ren); 

	SDL_Event event;
	bool quit=false;
	int trybi=2;
	while(!quit)
	{
		 while(SDL_PollEvent(&event))
		 {
			SDL_PumpEvents(); // обработчик событий.
			
			//крестик
			if(event.type == SDL_QUIT)
				quit=true;
			else if(event.type==SDL_MOUSEBUTTONDOWN &&  event.button.button==SDL_BUTTON_LEFT)
			{
				if((event.button.x>=kletka_rect.center().x-kletka_rect.width()/2 && event.button.x<=kletka_rect.center().x+kletka_rect.width()/2) && 
					(event.button.y>=kletka_rect.center().y-kletka_rect.height()/2 && event.button.y<=kletka_rect.center().y+kletka_rect.height()/2))
				{
						SDL_RenderClear(ren);
						background_rect.default_create(ren,"project.bmp");
						kletka_rect.default_create(ren,"kletka.bmp");
						kletka2_rect.default_create(ren,"kletka.bmp");
						tryba2_rect.upgrade(ren); 
						tryba1_rect.spin(ren);
						SDL_RenderPresent(ren); 
				}
				else if((event.button.x>=kletka2_rect.center().x-kletka2_rect.width()/2 && event.button.x<=kletka2_rect.center().x+kletka2_rect.width()/2) && 
					(event.button.y>=kletka2_rect.center().y-kletka2_rect.height()/2 && event.button.y<=kletka2_rect.center().y+kletka2_rect.height()/2))
				{
						SDL_RenderClear(ren);
						background_rect.default_create(ren,"project.bmp");
						kletka_rect.default_create(ren,"kletka.bmp");
						kletka2_rect.default_create(ren,"kletka.bmp");
						tryba1_rect.upgrade(ren);
						tryba2_rect.spin(ren);
						SDL_RenderPresent(ren); 
				}
						
			}
		 }
	}
	return 1;
}