void PropertyWindow::rebuildTabs() { _propertyTabs->blockSignals(true); while (_propertyTabs->count()) { QWidget *widget = _propertyTabs->widget(0); _propertyTabs->removeTab(0); delete widget; } if (_selection.empty()) return; PrimitiveProperties *primProps = new PrimitiveProperties(_propertyTabs, _scene, _selection); connect(primProps, SIGNAL(primitiveNameChange(Primitive *)), this, SLOT(changePrimitiveName(Primitive *))); connect(primProps, SIGNAL(triggerRedraw()), _parent.previewWindow(), SLOT(update())); _propertyTabs->addTab(primProps, "Primitive"); VerticalScrollArea *scrollArea = new VerticalScrollArea(_propertyTabs); BsdfProperties *bsdfProps = new BsdfProperties(scrollArea, _scene, _selection); connect(bsdfProps, SIGNAL(triggerRedraw()), _parent.previewWindow(), SLOT(update())); scrollArea->setWidget(bsdfProps); _propertyTabs->addTab(scrollArea, "Material"); if (_openTab < _propertyTabs->count()) _propertyTabs->setCurrentIndex(_openTab); else _openTab = 0; _propertyTabs->blockSignals(false); }
void DisplayElement::setBounds(const Common::Rect &r) { if (r != _bounds) { triggerRedraw(); _bounds = r; triggerRedraw(); } }
void Sprite::removeFrame(const uint32 frameNum) { _frameArray[frameNum].frame->_referenceCount--; if (_frameArray[frameNum].frame->_referenceCount == 0) delete _frameArray[frameNum].frame; // Calculate the new bounds Common::Rect frameBounds; for (uint32 i = 0; i < _numFrames; i++) { if (i == frameNum) continue; Common::Rect r; _frameArray[i].frame->getSurfaceBounds(r); r.translate(_frameArray[i].frameLeft, _frameArray[i].frameTop); frameBounds.extend(r); } _frameArray.remove_at(frameNum); frameBounds.moveTo(_bounds.left, _bounds.top); setBounds(frameBounds); if (_currentFrameNum == frameNum) triggerRedraw(); else if (_currentFrameNum != 0xffffffff && _currentFrameNum > frameNum) --_currentFrameNum; }
void FrameSequence::openFrameSequence() { if (!_resFork->hasResFork()) return; Common::SeekableReadStream *res = _resFork->getResource(MKTAG('P', 'F', 'r', 'm'), 0x80); if (!res) return; uint32 scale = res->readUint32BE(); _bounds.top = res->readUint16BE(); _bounds.left = res->readUint16BE(); _bounds.bottom = res->readUint16BE(); _bounds.right = res->readUint16BE(); _numFrames = res->readUint16BE(); _duration = 0; _frameTimes.clear(); for (uint32 i = 0; i < _numFrames; i++) { TimeValue time = res->readUint32BE(); _frameTimes.push_back(_duration); _duration += time; } setScale(scale); setSegment(0, _duration); setTime(0); _currentFrameNum = 0; newFrame(_currentFrameNum); triggerRedraw(); delete res; }
void Movie::redrawMovieWorld() { if (_video && _video->needsUpdate()) { const Graphics::Surface *frame = _video->decodeNextFrame(); if (!frame) return; // Make sure we have a surface in the current pixel format Graphics::Surface *convertedFrame = 0; if (frame->format != g_system->getScreenFormat()) { convertedFrame = frame->convertTo(g_system->getScreenFormat()); frame = convertedFrame; } // Copy to the surface using _movieBox uint16 width = MIN<int>(frame->w, _movieBox.width()); uint16 height = MIN<int>(frame->h, _movieBox.height()); for (uint16 y = 0; y < height; y++) memcpy((byte *)_surface->getBasePtr(_movieBox.left, _movieBox.top + y), (const byte *)frame->getBasePtr(0, y), width * frame->format.bytesPerPixel); if (convertedFrame) { convertedFrame->free(); delete convertedFrame; } triggerRedraw(); } }
void Sprite::setCurrentFrameIndex(const int32 frameNum) { if (frameNum < 0) { if (_currentFrameNum != 0xffffffff) { _currentFrameNum = 0xffffffff; _currentFrame = 0; triggerRedraw(); } } else if (_numFrames > 0) { uint32 f = frameNum % _numFrames; if (f != _currentFrameNum) { _currentFrameNum = f; _currentFrame = &_frameArray[f]; triggerRedraw(); } } }
void SoundLevel::setSoundLevel(uint16 level) { uint16 newLevel = (level + 21) / 22; if (newLevel != _soundLevel) { _soundLevel = newLevel; triggerRedraw(); } }
void FrameSequence::setFrameNum(const int16 frameNum) { int16 f = CLIP<int>(frameNum, 0, _numFrames); if (_currentFrameNum != f) { _currentFrameNum = f; setTime(_frameTimes[f]); newFrame(f); triggerRedraw(); } }
void DisplayElement::setDisplayOrder(const DisplayOrder order) { if (_elementOrder != order) { _elementOrder = order; if (isDisplaying()) { ((PegasusEngine *)g_engine)->_gfx->removeDisplayElement(this); ((PegasusEngine *)g_engine)->_gfx->addDisplayElement(this); triggerRedraw(); } } }
void ShuttleWeapon::updateWeaponPosition() { _weaponTime = (float)_lastTime / _weaponDuration; linearInterp(_weaponOrigin, _weaponTarget, _weaponTime, _weaponLocation); if (_weaponTime == 1.0) { stop(); hide(); } else { triggerRedraw(); } }
void PanoramaScroll::timeChanged(const TimeValue newTime) { CoordType leftPixel = (_totalWidth - _boundsWidth) * newTime / getDuration(); Common::Rect r; _panorama.getViewBounds(r); if (leftPixel != r.left) { _panorama.getViewBounds(r); r.moveTo(leftPixel, 0); _panorama.setViewBounds(r); triggerRedraw(); } }
//! //! Constructor of the ScratchedFilmNode class. //! //! \param name The name for the new node. //! \param parameterRoot A copy of the parameter tree specific for the type of the node. //! \param outputImageName The name of the geometry output parameter. //! ScratchedFilmNode::ScratchedFilmNode ( const QString &name, ParameterGroup *parameterRoot ) : CompositorNode(name, parameterRoot) { // create compositor if (m_viewport) m_compositor = Ogre::CompositorManager::getSingleton().addCompositor(m_viewport, "ScratchedFilmCompositor", 0); // add listener if (m_compositor) { m_compositor->addListener(this); } addAffection("Input Map", m_outputImageName); setProcessingFunction(m_outputImageName, SLOT(processOutputImage())); setChangeFunction("Speed1", SIGNAL(triggerRedraw())); setChangeFunction("Speed2", SIGNAL(triggerRedraw())); setChangeFunction("ScratchIntensity", SIGNAL(triggerRedraw())); setChangeFunction("IS", SIGNAL(triggerRedraw())); }
void FrameSequence::timeChanged(const TimeValue time) { int16 frameNum = 0; for (int16 i = _numFrames - 1; i >= 0; i--) { if (_frameTimes[i] < time) { frameNum = i; break; } } if (frameNum != _currentFrameNum) { _currentFrameNum = frameNum; newFrame(_currentFrameNum); triggerRedraw(); } }
void EnergyMonitor::timeChanged(const TimeValue currentTime) { if (currentTime == getStop()) { PegasusEngine *vm = (PegasusEngine *)g_engine; if (vm->getEnergyDeathReason() != -1) vm->die(vm->getEnergyDeathReason()); } else { uint32 currentEnergy = kMaxJMPEnergy - currentTime; EnergyStage newStage; if (currentEnergy > kWorriedEnergy) newStage = kStageCasual; else if (currentEnergy > kNervousEnergy) newStage = kStageWorried; else if (currentEnergy > kPanicStrickenEnergy) newStage = kStageNervous; else newStage = kStagePanicStricken; if (_stage != newStage) { uint32 newFrame; switch (newStage) { case kStageCasual: _barColor = g_system->getScreenFormat().RGBToColor(0x48, 0xB0, 0xD8); newFrame = kFrameLightOff; break; case kStageWorried: _barColor = g_system->getScreenFormat().RGBToColor(0xD8, 0xC0, 0x30); newFrame = kFrameLightYellow; break; case kStageNervous: _barColor = g_system->getScreenFormat().RGBToColor(0xD8, 0x78, 0x38); newFrame = kFrameLightOrange; break; case kStagePanicStricken: _barColor = g_system->getScreenFormat().RGBToColor(0xD8, 0x40, 0x38); newFrame = kFrameLightRed; break; default: error("no stage in energy monitor?"); break; } _stage = newStage; uint32 oldFrame = _energyLight.getCurrentFrameIndex(); if (!_calibrating) { if (oldFrame > newFrame || oldFrame == 0xffffffff || _dontFlash) { _energyLight.setCurrentFrameIndex(newFrame); _dontFlash = false; } else { _lightBlinker.startBlinking(&_energyLight, oldFrame, newFrame, 4, 1, 3); triggerRedraw(); } } } Common::Rect r; calcLevelRect(r); if (r != _levelRect) { _levelRect = r; triggerRedraw(); } } }
void DisplayElement::hide() { if (_elementIsVisible) { triggerRedraw(); _elementIsVisible = false; } }
void DisplayElement::show() { if (!_elementIsVisible) { _elementIsVisible = true; triggerRedraw(); } }
void DisplayElement::stopDisplaying() { if (isDisplaying()) { triggerRedraw(); ((PegasusEngine *)g_engine)->_gfx->removeDisplayElement(this); } }
void DisplayElement::startDisplaying() { if (!isDisplaying()) { ((PegasusEngine *)g_engine)->_gfx->addDisplayElement(this); triggerRedraw(); } }
void IdlerAnimation::timeChanged(const TimeValue) { triggerRedraw(); }
void SoundLevel::decrementLevel() { if (_soundLevel > 0) { _soundLevel--; triggerRedraw(); } }
void SoundLevel::incrementLevel() { if (_soundLevel < 12) { _soundLevel++; triggerRedraw(); } }