void MenuState::enter () { _root = Ogre::Root::getSingletonPtr(); // Se recupera el gestor de escena y la cámara. _sceneMgr = _root->getSceneManager("SceneManager"); _camera = _sceneMgr->getCamera("IntroCamera"); _renderWindow = _root->getAutoCreatedWindow(); _viewport = _renderWindow->addViewport(_camera); // Metemos una luz ambiental, una luz que no tiene fuente de origen. Ilumina a todos los objetos _sceneMgr->setAmbientLight(Ogre::ColourValue(1, 1, 1)); _camera->setPosition(Ogre::Vector3(0, 50, (MAX_ROWS_GRID*CELL_WIDTH) * 2.3)); // posicionamos... _camera->lookAt(Ogre::Vector3(0, 0, (MAX_ROWS_GRID*CELL_WIDTH) / 2)); // enfocamos a 0,0,0 _camera->setNearClipDistance(5); // establecemos plano cercano del frustum _camera->setFarClipDistance(300); // establecemos plano lejano del frustum // Creamos el plano de imagen (lienzo) asociado a la camara _viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); // color de fondo del viewport(negro) double width = _viewport->getActualWidth(); // recogemos ancho del viewport actual double height = _viewport->getActualHeight(); // recogemos alto del viewport actual _camera->setAspectRatio(width / height); // calculamos ratio (4:3 = 1,333 16:9 1,777) _overlayManager = Ogre::OverlayManager::getSingletonPtr(); // musica del menu IntroState::getSingleton().getMenuTrackPtr()->play(); createOverlay(); showMenuCegui(); _exitGame = false; }
void alloc_picture(void *userdata) { VideoState *is = (VideoState *)userdata; VideoPicture *vp; vp = &is->pictq[is->pictq_windex]; if(vp->bmp) { // we already have one make another, bigger/smaller freeOverlay(&is->video_player, vp->bmp); //free(vp->bmp); //vp->bmp_size = 0; } // // Allocate a place to put our YUV image on that screen // vp->bmp = SDL_CreateYUVOverlay(is->video_st->codec->width, // is->video_st->codec->height, // SDL_YV12_OVERLAY, // is->audio_player->screen); //int numBytes = avpicture_get_size(TARGET_IMAGE_FORMAT, is->video_st->codec->width, is->video_st->codec->height); //vp->bmp = (uint8_t *) av_malloc(numBytes * sizeof(uint8_t)); // Allocate a place to put our YUV image on that screen vp->bmp = createOverlay(&is->video_player, is->video_st->codec->width, is->video_st->codec->height); vp->width = is->video_st->codec->width; vp->height = is->video_st->codec->height; pthread_mutex_lock(is->pictq_mutex); vp->allocated = 1; pthread_cond_signal(is->pictq_cond); pthread_mutex_unlock(is->pictq_mutex); }
DirectShowControl::DirectShowControl(Ogre::String name,Ogre::String filename, int width,int height,Ogre::Viewport *vp,bool overlay/*=true*/ ):isOverlay(overlay), mName(name),mWidth(width),mHeight(height),mFilename(filename),mVp(vp) { mDirectshowTexture = new DirectShowMovieTexture(mWidth,mHeight,false); mDirectshowTexture->loadMovie(mFilename); createMaterial(); if(isOverlay) createOverlay(); }
void PlayState::enter () { _root = Ogre::Root::getSingletonPtr(); // Se recupera el gestor de escena y la cámara. _sceneMgr = _root->getSceneManager("SceneManager"); _camera = _sceneMgr->getCamera("IntroCamera"); _renderWindow = _root->getAutoCreatedWindow(); _viewport = _renderWindow->addViewport(_camera); // Metemos una luz ambiental, una luz que no tiene fuente de origen. Ilumina a todos los objetos _sceneMgr->setAmbientLight(Ogre::ColourValue(1, 1, 1)); //_sceneMgr->addRenderQueueListener(new Ogre::OverlaySystem()); // consulta de rayos _camera->setPosition(Ogre::Vector3(0, 50, (MAX_ROWS_GRID*CELL_WIDTH) * 2.3)); // posicionamos... _camera->lookAt(Ogre::Vector3(0, 0, (MAX_ROWS_GRID*CELL_WIDTH) / 2)); // enfocamos a 0,0,0 _camera->setNearClipDistance(5); // establecemos plano cercano del frustum _camera->setFarClipDistance(300); // establecemos plano lejano del frustum // Creamos el plano de imagen (lienzo) asociado a la camara _viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); // color de fondo del viewport(negro) double width = _viewport->getActualWidth(); // recogemos ancho del viewport actual double height = _viewport->getActualHeight(); // recogemos alto del viewport actual _camera->setAspectRatio(width / height); // calculamos ratio (4:3 = 1,333 16:9 1,777) // inicializamos variables de juego puntosPlayer = 0; puntosCPU = 0; PlayerGrid.setCasillasVida(5+4+3+3+2); CPUGrid.setCasillasVida(5+4+3+3+2); PlayerGrid.clearGrid(); CPUGrid.clearGrid(); // musica del juego IntroState::getSingleton().getMainThemeTrackPtr()->play(); createScene(); // creamos la escena createOverlay(); // creamos el overlay // Creamos nuestra query de rayos _raySceneQuery = _sceneMgr->createRayQuery(Ogre::Ray()); updateInfoOverlay(); CambiarTurno(PLAYER); _exitGame = false; }
int MyApp::start() { _root = new Ogre::Root(); if(!_root->restoreConfig()) { _root->showConfigDialog(); _root->saveConfig(); } _pTrackManager = new TrackManager; _pSoundFXManager = new SoundFXManager; Ogre::RenderWindow* window = _root->initialise(true,"MyApp Example"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* cam = _sceneManager->createCamera("MainCamera"); cam->setPosition(Ogre::Vector3(7,10.5,8)); cam->lookAt(Ogre::Vector3(0,3.5,0)); cam->setNearClipDistance(5); cam->setFarClipDistance(10000); Ogre::Viewport* viewport = window->addViewport(cam); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); double width = viewport->getActualWidth(); double height = viewport->getActualHeight(); cam->setAspectRatio(width / height); loadResources(); createScene(); createOverlay(); Ogre::SceneNode *node = _sceneManager->getSceneNode("Neptuno"); _framelistener = new MyFrameListener(this, window, cam, node, _overlayManager, _sceneManager); _root->addFrameListener(_framelistener); // Reproducción del track principal... this->_mainTrack->play(); _root->startRendering(); return 0; }
status_t BnSurface::onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { switch(code) { case REGISTER_BUFFERS: { CHECK_INTERFACE(ISurface, data, reply); BufferHeap buffer; buffer.w = data.readInt32(); buffer.h = data.readInt32(); buffer.hor_stride = data.readInt32(); buffer.ver_stride= data.readInt32(); buffer.format = data.readInt32(); buffer.transform = data.readInt32(); buffer.flags = data.readInt32(); buffer.heap = interface_cast<IMemoryHeap>(data.readStrongBinder()); status_t err = registerBuffers(buffer); reply->writeInt32(err); return NO_ERROR; } break; case UNREGISTER_BUFFERS: { CHECK_INTERFACE(ISurface, data, reply); unregisterBuffers(); return NO_ERROR; } break; case POST_BUFFER: { CHECK_INTERFACE(ISurface, data, reply); ssize_t offset = data.readInt32(); postBuffer(offset); return NO_ERROR; } break; case CREATE_OVERLAY: { CHECK_INTERFACE(ISurface, data, reply); int w = data.readInt32(); int h = data.readInt32(); int f = data.readInt32(); sp<OverlayRef> o = createOverlay(w, h, f); return OverlayRef::writeToParcel(reply, o); } break; default: return BBinder::onTransact(code, data, reply, flags); } }
int MyApp::start() { _root = new Ogre::Root(); if(!_root->restoreConfig()) { _root->showConfigDialog(); _root->saveConfig(); } Ogre::RenderWindow* window = _root->initialise(true,"MyApp Example"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); _sceneManager->setAmbientLight(Ogre::ColourValue(1, 1, 1)); _sceneManager->addRenderQueueListener(new Ogre::OverlaySystem()); Ogre::Camera* cam = _sceneManager->createCamera("MainCamera"); cam->setPosition(Ogre::Vector3(5,20,20)); cam->lookAt(Ogre::Vector3(0,0,0)); cam->setNearClipDistance(5); cam->setFarClipDistance(10000); Ogre::Viewport* viewport = window->addViewport(cam); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); double width = viewport->getActualWidth(); double height = viewport->getActualHeight(); cam->setAspectRatio(width / height); loadResources(); createScene(); createOverlay(); _framelistener = new MyFrameListener(window, cam, _overlayManager, _sceneManager); _root->addFrameListener(_framelistener); _root->startRendering(); return 0; }
status_t BnSurface::onTransact( uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { switch(code) { case REQUEST_BUFFER: { CHECK_INTERFACE(ISurface, data, reply); int bufferIdx = data.readInt32(); uint32_t w = data.readInt32(); uint32_t h = data.readInt32(); uint32_t format = data.readInt32(); uint32_t usage = data.readInt32(); sp<GraphicBuffer> buffer(requestBuffer(bufferIdx, w, h, format, usage)); if (buffer == NULL) return BAD_VALUE; return reply->write(*buffer); } case SET_BUFFER_COUNT: { CHECK_INTERFACE(ISurface, data, reply); int bufferCount = data.readInt32(); status_t err = setBufferCount(bufferCount); reply->writeInt32(err); return NO_ERROR; } case REGISTER_BUFFERS: { CHECK_INTERFACE(ISurface, data, reply); BufferHeap buffer; buffer.w = data.readInt32(); buffer.h = data.readInt32(); buffer.hor_stride = data.readInt32(); buffer.ver_stride= data.readInt32(); buffer.format = data.readInt32(); buffer.transform = data.readInt32(); buffer.flags = data.readInt32(); buffer.heap = interface_cast<IMemoryHeap>(data.readStrongBinder()); status_t err = registerBuffers(buffer); reply->writeInt32(err); return NO_ERROR; } break; case UNREGISTER_BUFFERS: { CHECK_INTERFACE(ISurface, data, reply); unregisterBuffers(); return NO_ERROR; } break; case POST_BUFFER: { CHECK_INTERFACE(ISurface, data, reply); ssize_t offset = data.readInt32(); postBuffer(offset); return NO_ERROR; } break; case CREATE_OVERLAY: { CHECK_INTERFACE(ISurface, data, reply); int w = data.readInt32(); int h = data.readInt32(); int f = data.readInt32(); int orientation = data.readInt32(); sp<OverlayRef> o = createOverlay(w, h, f, orientation); return OverlayRef::writeToParcel(reply, o); } break; default: return BBinder::onTransact(code, data, reply, flags); } }