コード例 #1
0
ファイル: AnimePlayer.cpp プロジェクト: Gingar/port
void AnimePlayer::run() {
    vector<IImageProvider*>::iterator i;
    IImageProvider* provider;
    ISurface* surface;

    if (anime != NULL) {
        while (running) {
            i = anime->begin();
            while (i != anime->end()) {
                provider = *i;
                surface = prepareSurface(provider);
                if (win != NULL) {
                    win->renderFrom(surface);
                }
                delete surface;
                surface = NULL;
                ::usleep(dur);
                ++i;
                if (!running) {
                    unlockConditionSatisfied();
                    return;
                }
            }
        }
    }
    unlockConditionSatisfied();
}
コード例 #2
0
ファイル: gui_widgets.cpp プロジェクト: murkymark/iffanimplay
//todo draw only rectangle
void Panel::draw(SDL_Surface *dst){
	prepareSurface();
	guiPtr->blit(surf, surfMerged, 0, 0);
		
	list<Widget>::iterator i;
	for ( i = wlist.begin(); i != wlist.end(); i++ )
		(*i).draw(surfMerged);
	guiPtr->blit(surfMerged, dst, 0, 0);
}
コード例 #3
0
ファイル: pictureflow.cpp プロジェクト: ashang/fqterm
// get transformed image for specified slide
// if it does not exist, create it and place it in the cache
QImage* PictureFlowPrivate::surface(int slideIndex)
{
  if(slideIndex < 0)
    return 0;
  if(slideIndex >= slideImages.count())
    return 0;

  if(surfaceCache.contains(slideIndex))
    return surfaceCache[slideIndex];

  QImage img = widget->slide(slideIndex);
  if(img.isNull())
  {
    if(blankSurface.isNull())
    {
      blankSurface = QImage(slideWidth, slideHeight, QImage::Format_RGB32);

      QPainter painter(&blankSurface);
      QPoint p1(slideWidth*4/10, 0);
      QPoint p2(slideWidth*6/10, slideHeight);
      QLinearGradient linearGrad(p1, p2);
      linearGrad.setColorAt(0, Qt::black);
      linearGrad.setColorAt(1, Qt::white); 
      painter.setBrush(linearGrad);
      painter.fillRect(0, 0, slideWidth, slideHeight, QBrush(linearGrad));

      painter.setPen(QPen(QColor(64,64,64), 4));
      painter.setBrush(QBrush());
      painter.drawRect(2, 2, slideWidth-3, slideHeight-3);
      painter.end();
      blankSurface = prepareSurface(blankSurface, slideWidth, slideHeight);
    }
    return &blankSurface;
  }

  surfaceCache.insert(slideIndex, new QImage(prepareSurface(img, slideWidth, slideHeight)));
  return surfaceCache[slideIndex];
}
void FlashPlayerWidget::resizeEvent( QResizeEvent* event )
{
    prepareSurface();
}