void IconImageStoreEntry::createImage() { std::stringstream ss; ss << mIconImageStore.mImagesetName << "_" << mPixelPosInImageset.first << "_" << mPixelPosInImageset.second; mImageName = ss.str(); mImage = &CEGUI::ImageManager::getSingleton().create("BasicImage", mImageName); auto area = CEGUI::Rectf(mPixelPosInImageset.first, mPixelPosInImageset.second, mPixelPosInImageset.first + mIconImageStore.mIconSize, mPixelPosInImageset.second + mIconImageStore.mIconSize); CEGUI::BasicImage* basicImage = static_cast<CEGUI::BasicImage*>(mImage); basicImage->setTexture(mIconImageStore.mCeguiTexture); basicImage->setArea(CEGUI::Rectf(mPixelPosInImageset.first, mPixelPosInImageset.second, mPixelPosInImageset.first + mIconImageStore.mIconSize, mPixelPosInImageset.second + mIconImageStore.mIconSize)); basicImage->setNativeResolution(area.getSize()); basicImage->setAutoScaled(CEGUI::ASM_Both); }
TexturePair AssetsManager::createTextureImage(Ogre::TexturePtr texturePtr, const std::string& imageName) { // if (mOgreCEGUITexture) { // GUIManager::getSingleton().getGuiRenderer()->destroyTexture(mOgreCEGUITexture); // mOgreCEGUITexture = 0; // } auto renderer = CEGUI::System::getSingleton().getRenderer(); CEGUI::Texture* ogreCEGUITexture; if (renderer->isTextureDefined(texturePtr->getName())) { ogreCEGUITexture = &renderer->getTexture(texturePtr->getName()); static_cast<CEGUI::OgreTexture*>(ogreCEGUITexture)->setOgreTexture(texturePtr); } else { //create a CEGUI texture from our Ogre texture S_LOG_VERBOSE("Creating new CEGUI texture from Ogre texture."); ogreCEGUITexture = &GUIManager::getSingleton().createTexture(texturePtr); } //assign our image element to the StaticImage widget CEGUI::Image* textureImage; if (CEGUI::ImageManager::getSingleton().isDefined(imageName)) { textureImage = &CEGUI::ImageManager::getSingleton().get(imageName); } else { textureImage = &CEGUI::ImageManager::getSingleton().create("BasicImage", imageName); } CEGUI::BasicImage* basicImage = static_cast<CEGUI::BasicImage*>(textureImage); basicImage->setTexture(ogreCEGUITexture); auto area = CEGUI::Rectf(0, 0, ogreCEGUITexture->getSize().d_width, ogreCEGUITexture->getSize().d_height); basicImage->setArea(area); basicImage->setNativeResolution(area.getSize()); basicImage->setAutoScaled(CEGUI::ASM_Both); return TexturePair(texturePtr, textureImage); }