//----------------------------------------------------------------------------- bool CSegmentButton::getFocusPath (CGraphicsPath& outPath) { CRect r (getViewSize ()); r.inset (getFrameWidth () / 2., getFrameWidth () / 2.); outPath.addRoundRect (r, getRoundRadius ()); CCoord focusWidth = getFrame ()->getFocusWidth (); r.extend (focusWidth, focusWidth); outPath.addRoundRect (r, getRoundRadius ()); return true; }
//----------------------------------------------------------------------------- void CSegmentButton::drawRect (CDrawContext* pContext, const CRect& dirtyRect) { bool isHorizontal = style == kHorizontal; SharedPointer<CGraphicsPath> path; if (gradient || gradientHighlighted || (getFrameWidth () > 0. && getFrameColor ().alpha != 0)) { CRect r (getViewSize ()); r.inset (getFrameWidth () / 2., getFrameWidth () / 2.); path = owned (pContext->createGraphicsPath ()); path->addRoundRect (r, getRoundRadius ()); } pContext->setDrawMode (kAntiAliasing); bool drawLines = getFrameWidth () > 0. && getFrameColor ().alpha != 0; if (drawLines) { pContext->setLineStyle (kLineSolid); pContext->setLineWidth (getFrameWidth ()); pContext->setFrameColor (getFrameColor ()); } if (gradient) { pContext->fillLinearGradient (path, *gradient, getViewSize ().getTopLeft (), getViewSize ().getBottomLeft ()); } uint32_t selectedIndex = getSelectedSegment (); for (uint32_t index = 0; index < segments.size (); ++index) { Segment& segment = segments[index]; if (!dirtyRect.rectOverlap (segment.rect)) continue; CRect oldClip; pContext->getClipRect (oldClip); CRect clipRect (segment.rect); clipRect.bound (oldClip); pContext->setClipRect (clipRect); bool selected = selectedIndex == index; if (selected && gradientHighlighted) pContext->fillLinearGradient (path, *gradientHighlighted, segment.rect.getTopLeft (), segment.rect.getBottomLeft ()); if (selected && segment.backgroundHighlighted) segment.backgroundHighlighted->draw (pContext, segment.rect); else if (segment.background) segment.background->draw (pContext, segment.rect); CDrawMethods::drawIconAndText (pContext, selected ? segment.iconHighlighted : segment.icon, segment.iconPosition, textAlignment, textMargin, segment.rect, segment.name, font, selected ? textColorHighlighted : textColor); pContext->setClipRect (oldClip); if (drawLines && index > 0 && index < segments.size ()) { path->beginSubpath (segment.rect.getTopLeft ()); path->addLine (isHorizontal ? segment.rect.getBottomLeft () : segment.rect.getTopRight ()); } } if (drawLines) pContext->drawGraphicsPath (path, CDrawContext::kPathStroked); setDirty (false); }
void ScaleSubRegionLayer::forward(PassType passType) { Layer::forward(passType); auto in0 = getInput(0); imgH_ = in0.getFrameHeight(); imgW_ = in0.getFrameWidth(); if (imgH_ == 0 || imgW_ == 0) { auto& conf = config_.inputs(0).scale_sub_region_conf(); imgH_ = conf.image_conf().img_size_y(); imgW_ = conf.image_conf().img_size(); } MatrixPtr imgV = in0.value; size_t batchSize = imgV->getHeight(); size_t spatialSize = imgH_ * imgW_; channelsNum_ = imgV->getWidth() / spatialSize; shape_ = TensorShape({batchSize, channelsNum_, imgH_, imgW_}); resetOutput(batchSize, imgV->getWidth()); auto& out = getOutput(); out.setFrameHeight(imgH_); out.setFrameWidth(imgW_); MatrixPtr indicesV = getInputValue(1); indicesShape_ = TensorShape({batchSize, 6}); REGISTER_TIMER_INFO("ScaleSubRegionForward", getName().c_str()); BufferArgs inArgs; BufferArgs outArgs; inArgs.addArg(*imgV, shape_); inArgs.addArg(*indicesV, indicesShape_); outArgs.addArg(*out.value, shape_, ASSIGN_TO); forward_[0]->calc(inArgs, outArgs); }
// Automatically called by the VFM when the parameter of the port are set. // It returns the minimum sizeof the buffer OMX_U32 MPEG2Dec_Port::getBufferSize() const { OstTraceInt0(TRACE_FLOW,"Enter MPEG2Dec_Port::getBufferSize"); OMX_U32 default_return = 256; switch (getDirection()) { case OMX_DirInput: //+CR369244 if(VFM_SocCapabilityMgt::getMPEG4DecInputBuffSize()) { default_return = VFM_SocCapabilityMgt::getMPEG4DecInputBuffSize(); } break; case OMX_DirOutput: default_return = (getFrameWidth()*(getFrameHeight() + 16)*3)/2; // Need 16 more pixel in height for some interleaved streams break; default: DBC_ASSERT(0==1); } #ifdef PACKET_VIDEO_SUPPORT if(mSuggestedBufferSize != 0) { default_return = mSuggestedBufferSize; } #endif OstTraceInt0(TRACE_FLOW,"Exit MPEG2Dec_Port::getBufferSize"); return default_return; }
void VLC::readFrame(dom::ResizeableRasterPtr theTargetRaster) { ScopeLocker myFrameLock(_myFrameLock, true); if (_curBuffer == NULL) { return; } if (getFrameWidth() != _myFrameWidth) setFrameWidth(_myFrameWidth); if (getFrameHeight() != _myFrameHeight) setFrameHeight(_myFrameHeight); theTargetRaster->resize(getFrameWidth(), getFrameHeight()); std::copy(_curBuffer->begin(), _curBuffer->end(), theTargetRaster->pixels().begin()); libvlc_time_t curTimeCode = libvlc_media_player_get_time(_mediaPlayer); AC_TRACE << "-- timestamp from vlc: " << curTimeCode; setTimeCode(as_string(curTimeCode)); // delete the current buffer, marking that we already copied it to the texture AC_TRACE << "freeing " << _curBuffer->size() << " bytes after copying to texture."; delete _curBuffer; _curBuffer = NULL; }
void Animation::Update(sf::RenderWindow &Window) { if(active) frameCounter += (int)Window.GetFrameTime(); else frameCounter = 0; if (frameCounter >= switchFrame) { frameCounter = 0; currentFrameX += getFrameWidth(); if(currentFrameX >= spriteImage.GetImage()->GetWidth()) currentFrameX = 0; } spriteImage.SetSubRect(sf::IntRect(currentFrameX, currentFrameY * getFrameHeight(), currentFrameX +getFrameWidth(), currentFrameY + getFrameHeight())); spriteImage.SetPosition(x, y); }
void Animation::Update(sf::RenderWindow &win) /* unused win /!\ */ { if (active) frameCounter += clock.GetElapsedTime(); else frameCounter = 0; if (frameCounter >= switchFrame) { frameCounter = 0; clock.Reset(); currentFrameX += getFrameWidth(); if (currentFrameX >= spriteImage.GetImage()->GetWidth()) currentFrameX = 0; } spriteImage.SetSubRect(sf::IntRect(currentFrameX, currentFrameY * getFrameHeight(), currentFrameX + getFrameWidth(), currentFrameY * getFrameHeight() + getFrameHeight())); spriteImage.SetPosition(x, y); }
void WindowGL33::setFullscreen(bool fullscreen) { if (isFullscreen() && !fullscreen) { this->setPos(m_windowedX, m_windowedY); this->setSize(m_windowedWidth, m_windowedHeight); } else if (!isFullscreen() && fullscreen) { m_windowedWidth = getFrameWidth(); m_windowedHeight = getFrameHeight(); m_windowedX = getX(); m_windowedY = getY(); this->setPos(0, 0); this->setSize(m_fullscreenWidth, m_fullscreenHeight); } m_isFullscreen = fullscreen; }