void ImageBox::updateSelectIndex(size_t _index) { mIndexSelect = _index; if ((_index == ITEM_NONE) || (_index >= mItems.size())) { _setTextureName(""); return; } else { _setTextureName(mCurrentTextureName); } VectorImages::iterator iter = mItems.begin() + _index; if (iter->images.size() < 2) { frameAdvise(false); } else { if ( ! mFrameAdvise) { mCurrentTime = 0; mCurrentFrame = 0; } frameAdvise(true); } if ( ! iter->images.empty()) { _setUVSet(iter->images.front()); } }
void Canvas::loadResource( Ogre::Resource* _resource ) { if( mTexPtr.get() == _resource ) { mTexPtr->createInternalResources(); _setTextureName( mGenTexName ); correctUV(); requestUpdateCanvas( this, Event( true, true, false ) ); } }
void Canvas::createExactTexture( int _width, int _height, TextureUsage _usage, PixelFormat _format ) { int width = std::max(1, _width); int height = std::max(1, _height); destroyTexture(); mTexture = RenderManager::getInstance().createTexture(mGenTexName); mTexture->setInvalidateListener(this); mTexture->createManual( width, height, _usage, _format ); mTexManaged = true; _setTextureName( mGenTexName ); correctUV(); requestUpdateCanvas( this, Event( true, true, mInvalidateData ) ); }
void ImageBox::setImageTexture(const std::string& _texture) { mCurrentTextureName = _texture; mSizeTexture = texture_utility::getTextureSize(mCurrentTextureName); // если первый раз, то ставим во всю текстуру if (mItems.empty()) { _setUVSet(FloatRect(0, 0, 1, 1)); _setTextureName(mCurrentTextureName); } else { recalcIndexes(); updateSelectIndex(mIndexSelect); } }