void gravManager::scaleSelectedObjects( float scaleAmt ) { for ( unsigned int i = 0; i < selectedObjects->size(); i++ ) { RectangleBase* temp = (*selectedObjects)[i]; temp->setScale( temp->getScaleX()+temp->getScaleX()*scaleAmt, temp->getScaleY()+temp->getScaleY()*scaleAmt ); } }
void VenueClientController::rearrange() { std::map<std::string, std::string> opts; std::map<std::string, std::vector<RectangleBase*> > data; data["objects"] = objects; RectangleBase smaller = *this; // uneven since most screens will be widescreen - so make vertical area // bigger so objects on top/bottom are bigger and text more readable smaller.setScale( smaller.getScaleX() * 0.6f, smaller.getScaleY() * 0.45f ); layouts.arrange( "perimeter", *this, smaller, data, opts ); }
void VideoSource::resizeBuffer() { // get intended size so we can resize, since the width might change here RectangleBase intended; intended.setScale( intendedWidth, intendedHeight ); float posX = getDestX(); float posY = getDestY(); if ( !lastFillFull ) { posX += getCenterOffsetX(); posY += getCenterOffsetY(); } intended.setPos( posX, posY ); listener->updatePixelCount( -( vwidth * vheight ) ); vwidth = videoSink->getImageWidth(); vheight = videoSink->getImageHeight(); listener->updatePixelCount( vwidth * vheight ); if ( vheight > 0 ) destAspect = (float)vwidth / (float)vheight; else destAspect = 1.33f; if ( animated ) aspectAnimating = true; else aspect = destAspect; tex_width = GLUtil::getInstance()->pow2( vwidth ); if ( videoSink->getImageFormat() == VIDEO_FORMAT_YUV420 ) tex_height = GLUtil::getInstance()->pow2( 3*vheight/2 ); else tex_height = GLUtil::getInstance()->pow2( vheight ); gravUtil::logVerbose( "VideoSource::resizeBuffer: image size is %ix%i\n", vwidth, vheight ); gravUtil::logVerbose( "VideoSource::resizeBuffer: texture size is %ix%i\n", tex_width, tex_height ); // if it's not the first time we're allocating a texture // (ie, it's a resize) delete the previous texture if ( !init ) glDeleteTextures( 1, &texid ); glGenTextures( 1, &texid ); glBindTexture( GL_TEXTURE_2D, texid ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); unsigned char *buffer = new unsigned char[ tex_width * tex_height * 3 ]; memset( buffer, 128, tex_width * tex_height * 3 ); glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, tex_width, tex_height, 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, buffer ); delete[] buffer; // fill to intended size fillToRect( intended, lastFillFull ); // update text bounds since the width might be different updateTextBounds(); }