Exemplo n.º 1
0
        void CachedWidget::frameEntered(float dt) {
            MyGUI::IntSize size = getSize();
            size.width = next_pot(size.width);
            size.height = next_pot(size.height);
            bool need_recreate = !m_target;
            if (!need_recreate) {
                if (size.width > m_target->getWidth())
                    need_recreate = true;
                if (size.height > m_target->getHeight())
                    need_recreate = true;
            }
            if (need_recreate) {
                if (m_target) {
                    m_target->resize(size);
                } else {
                    m_target = static_cast<mygui::RenderManager*>(MyGUI::RenderManager::getInstancePtr())->createTarget(size);
                }
                setRenderItemTexture(m_target->getTexture());
                _updateView();
            } else {
                if (!m_replaced_layer->isOutOfDate() && !m_render_content)
                    return;
            }

            if (m_target) {
                m_target->begin();
                Sandbox::Transform2d tr = m_target->graphics()->GetTransform();
                m_target->graphics()->SetTransform(tr.translated(-getAbsoluteLeft(),-getAbsoluteTop()).translated(m_suboffset));
                doRenderToTarget(m_target);
                m_target->graphics()->SetTransform(tr);
                m_target->end();
            }
        }
Exemplo n.º 2
0
	void SkinItem::_setTextureName(const std::string& _texture)
	{
		mTextureName = _texture;
		mTexture = RenderManager::getInstance().getTexture(mTextureName);

		setRenderItemTexture(mTexture);
	}
Exemplo n.º 3
0
 void CachedWidget::initialiseOverride() {
     Base::initialiseOverride();
     MyGUI::Gui::getInstance().eventFrameStart += MyGUI::newDelegate( this, &CachedWidget::frameEntered );
     m_target = static_cast<mygui::RenderManager*>(MyGUI::RenderManager::getInstancePtr())->createTarget(getSize());
     if (m_target)
         setRenderItemTexture(m_target->getTexture());
 }
Exemplo n.º 4
0
	void SkinItem::_createSkinItem(ResourceSkin* _info)
	{
		mStateInfo = _info->getStateInfo();

		// все что с текстурой можно тоже перенести в скин айтем и setRenderItemTexture
		mTextureName = _info->getTextureName();
		mTexture = RenderManager::getInstance().getTexture(mTextureName);

		setRenderItemTexture(mTexture);

		std::string categoryName = SubWidgetManager::getInstance().getCategoryName();
		// загружаем кирпичики виджета
		FactoryManager& factory = FactoryManager::getInstance();
		for (VectorSubWidgetInfo::const_iterator iter = _info->getBasisInfo().begin(); iter != _info->getBasisInfo().end(); ++iter)
		{
			IObject* object = factory.createObject(categoryName, (*iter).type);
			if (object == nullptr)
				continue;

			ISubWidget* sub = object->castType<ISubWidget>();
			sub->_setCroppedParent(static_cast<Widget*>(this));
			sub->setCoord((*iter).coord);
			sub->setAlign((*iter).align);

			mSubSkinChild.push_back(sub);
			addRenderItem(sub);

			// ищем дефолтные сабвиджеты
			if (mMainSkin == nullptr)
				mMainSkin = sub->castType<ISubWidgetRect>(false);
			if (mText == nullptr)
				mText = sub->castType<ISubWidgetText>(false);
		}

		_setSkinItemState("normal");
	}