bool VideoManager::OnSeekEnd(const CEGUI::EventArgs& e) { if (!mPaused) getClip(VIDEO_FILE)->play(); mSeeking=false; return true; }
bool VideoManager::OnSeekStart(const CEGUI::EventArgs& e) { if (!mPaused) getClip(VIDEO_FILE)->pause(); mSeeking=true; return true; }
std::string PclCameraWrapper::toString() { std::stringstream ss; ss << "[Camera] Position: " << getPos(); ss << ", Up vector: " << getView(); ss << ", Focal point: " << getFocal(); ss << ", Clipping planes depth: " << getClip(); ss << ", Fovy: " << getFovy(); // Additional infos ss << "\n[Camera] Zoom factor" << zoomFactor(); return ss.str(); }
bool VideoManager::OnPlayPause(const CEGUI::EventArgs& e) { TheoraVideoClip* clip=getClip(VIDEO_FILE); if (!clip->isPaused()) { mPaused=1; clip->pause(); } else { mPaused=0; clip->play(); } return true; }
const attribute::ClipImage& getOutputClip() const { return getClip( kOfxOutputAttributeName ); }
attribute::Attribute& getAttribute( const std::string& name ) { return getClip( name ); }
const attribute::ClipImage& getOutputClip() const { return getClip( kOfxImageEffectOutputClipName ); }
URect getClip() const {URect r; getClip(r); return r;}
attribute::OfxhClipImage& getOutputOfxhClip() { return getClip( kOfxImageEffectOutputClipName ); }
void draw_HUD(SDL_Renderer* ren) { //Draw the top bar SDL_SetRenderDrawColor(ren, 255, 255, 255, 0); top_bar.w = window_size_x; SDL_RenderFillRect(ren, &top_bar); draw_int(ren, font, top_bar_text_color, 20, 0, reqired_power, "Required: ", " MW"); draw_int(ren, font, top_bar_text_color, 20, 20, power_avalible, "Avalible: ", " MW"); draw_int(ren, font, top_bar_text_color, 200, 00, getBalance(), "£", "000"); draw_int(ren, font, top_bar_text_color, 200, 20, lastBalanceChange, "£", "000"); draw_int(ren, font, top_bar_text_color, 400, 0, getPopulation(), "Pop: ", ""); fill_scale_values(); public_happiness_scale.x = window_size_x-100-80; draw_scale(ren, &public_happiness_scale, scale_values.average); //Draw the side bar if(show_sidebar) { SDL_SetRenderDrawColor(ren, 255, 255, 255, 0); side_bar.x = window_size_x - side_bar.w; SDL_RenderFillRect(ren, &side_bar); SDL_Rect scaleBox = {window_size_x-100-5,0,100,fontSizeLarge+2}; int item_y = side_bar.y+5; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_POLICE_start); scaleBox.y = item_y; draw_scale(ren, &scaleBox, scale_values.police); item_y += fontSizeLarge+2; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_HEALTH_start); setColorGoodBad(ren, scale_values.health); scaleBox.y = item_y; SDL_RenderFillRect(ren, &scaleBox); item_y += fontSizeLarge+2; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_EDUCATION_start); setColorGoodBad(ren, populationPerSchool() < target_population_per_school); scaleBox.y = item_y; draw_scale(ren, &scaleBox, scale_values.education); item_y += fontSizeLarge+2; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_SHOPPING_start); setColorGoodBad(ren, scale_values.shopping); scaleBox.y = item_y; SDL_RenderFillRect(ren, &scaleBox); item_y += fontSizeLarge+2; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_POWER_start); scaleBox.y = item_y; draw_scale(ren, &scaleBox, scale_values.power); item_y += fontSizeLarge+2; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_WASTE_start); scaleBox.y = item_y; draw_scale(ren, &scaleBox, scale_values.waste); item_y += fontSizeLarge+2; draw_string(ren, fontLarge, top_bar_text_color, side_bar.x+5, item_y, &_binary_VALUE_TEXT_POLUTION_start); scaleBox.y = item_y; draw_scale(ren, &scaleBox, scale_values.polution); } SDL_SetRenderDrawColor(ren, 0, 0, 0, 0); SDL_Rect open_menu_button = {window_size_x-30,0,30,30}; SDL_RenderFillRect(ren, &open_menu_button); char* modeText = NULL; switch(getMode()) { case MODE_BUILD_RESIDENTIAL_1: modeText = &_binary_MODE_TEXT_RESIDENTIAL_1_start; break; case MODE_BUILD_RESIDENTIAL_2: modeText = &_binary_MODE_TEXT_RESIDENTIAL_2_start; break; case MODE_BUILD_ROAD: modeText = &_binary_MODE_TEXT_BUILD_ROAD_start; break; case MODE_BUILD_POWER_GAS: modeText = &_binary_MODE_TEXT_BUILD_POWER_GAS_start; break; case MODE_BUILD_DESTROY: modeText = &_binary_MODE_TEXT_DESTROY_start; break; case MODE_BUILD_RETAIL: modeText = &_binary_MODE_TEXT_BUILD_RETAIL_start; break; case MODE_BUILD_HOSPITAL: modeText = &_binary_MODE_TEXT_BUILD_HOSPITAL_start; break; case MODE_BUILD_POWER_SOLAR: modeText = &_binary_MODE_TEXT_BUILD_POWER_SOLAR_start; break; default: break; } if(modeText != NULL) { draw_string(ren, font, top_bar_text_color, 5, window_size_y-15, modeText); } if(ready_to_place) { SDL_SetRenderDrawColor(ren, 255, 255, 255, 0); SDL_RenderFillRect(ren, &planned_cost_box); draw_int(ren, font, top_bar_text_color, 200, 35, costOfPlannedBuild(), "(-£", "000)"); } SDL_SetRenderDrawColor(ren, 0, 0, 0, 0); draw_menu(ren); if(active_emergency()) { Point p = {window_size_x-16, 80}; drawTile(ren, &p, getClip(SPRITE_BUILD_BACKGROUND)); drawTile(ren, &p, getClip(SPRITE_BUILD_SERVICES_POLICE)); } }
void VideoManager::update() { //OgreManager::getSingleton().getRoot()->_fireFrameStarted(); //OgreManager::getSingleton().getRoot()-> TheoraVideoManager* mgr = TheoraVideoManager::getSingletonPtr(); Ogre::FrameEvent fe; fe.timeSinceLastEvent = OgreManager::getSingleton().getTimeSinceLastFrame(); fe.timeSinceLastFrame = OgreManager::getSingleton().getTimeSinceLastFrame(); mgr->frameStarted(fe); mKeyboard->capture(); mMouse->capture(); CEGUI::Window* wnd=CEGUI::WindowManager::getSingleton().getWindow("cFrame"); TheoraVideoClip* clip=mgr->getVideoClipByName(VIDEO_FILE); float dur=clip->getDuration(); String s=StringConverter::toString(dur); String s2=StringConverter::toString(clip->getTimePosition(),4); wnd->setText("duration: "+s+" seconds"); CEGUI::WindowManager::getSingleton().getWindow("droppedFrames")->setText("time position: "+s2+" seconds"); String np=StringConverter::toString(clip->getNumPrecachedFrames()); CEGUI::WindowManager::getSingleton().getWindow("precached")->setText("Precached: "+np); float cTime=clip->getTimePosition(); float duration=clip->getDuration(); int pos=1024*(cTime/duration); if (!mSeeking) { CEGUI::Window* wnd2=CEGUI::WindowManager::getSingleton().getWindow("seeker"); wnd2->setProperty("ScrollPosition",StringConverter::toString(pos)); } else { CEGUI::Window* wnd=CEGUI::WindowManager::getSingleton().getWindow("seeker"); TheoraVideoClip* clip=getClip(VIDEO_FILE); float dur=clip->getDuration(); CEGUI::String prop=wnd->getProperty("ScrollPosition"); int step=StringConverter::parseInt(prop.c_str()); if (abs(step-mSeekStep) > 10) { mSeekStep=step; float seek_time=((float) step/1024)*dur; clip->seek(seek_time); } } //dshowMovieTextureSystem->updateMovieTexture(); //TheoraVideoClip* tmpClip= mTheoraManager->getVideoClipByName("konqi.ogg"); //tmpClip->play(); //CEGUI::Window* wnd=CEGUI::WindowManager::getSingleton().getWindow("cFrame"); //mTheoraManager = TheoraVideoManager::getSingletonPtr(); //TheoraVideoClip* tmpClip= mTheoraManager->getVideoClipByName("konqi.ogg"); //float dur=clip->getDuration(); //String s=StringConverter::toString(dur); //String s2=StringConverter::toString(clip->getTimePosition(),4); //wnd->setText("duration: "+s+" seconds"); //CEGUI::WindowManager::getSingleton().getWindow("droppedFrames")->setText("time position: "+s2+" seconds"); //String np=StringConverter::toString(clip->getNumPrecachedFrames()); //CEGUI::WindowManager::getSingleton().getWindow("precached")->setText("Precached: "+np); //float cTime=tmpClip->getTimePosition(); //float duration=tmpClip->getDuration(); //int pos=1024*(cTime/duration); //if (!mSeeking) //{ //CEGUI::Window* wnd2=CEGUI::WindowManager::getSingleton().getWindow("seeker"); //wnd2->setProperty("ScrollPosition",StringConverter::toString(pos)); //} //else //{ //CEGUI::Window* wnd=CEGUI::WindowManager::getSingleton().getWindow("seeker"); //TheoraVideoClip* tmpClip=mTheoraManager-> getClip("konqi.ogg"); //float dur=tmpClip->getDuration(); //CEGUI::String prop=wnd->getProperty("ScrollPosition"); //int step=StringConverter::parseInt(prop.c_str()); //if (abs(step-mSeekStep) > 10) //{ //mSeekStep=step; //float t = OgreManager::getSingleton().getTimeSinceLastFrame(); //float seek_time=(t / 1024) * dur; //tmpClip->seek(seek_time); //} //} }