当前位置: 首页>>代码示例>>C++>>正文


C++ WeakPtr::lock方法代码示例

本文整理汇总了C++中WeakPtr::lock方法的典型用法代码示例。如果您正苦于以下问题:C++ WeakPtr::lock方法的具体用法?C++ WeakPtr::lock怎么用?C++ WeakPtr::lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WeakPtr的用法示例。


在下文中一共展示了WeakPtr::lock方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: SetCaption

		/*=============================================================================
		-- Sets the caption of the text in the middle.
		=============================================================================*/
		void ButtonCaption::SetCaption(String caption)
		{
			mCaption = caption;
			WeakPtr<Text> text = DynamicPtrCast<Text>(GetChild(IEI_BUTTONCAPTION_TEXT).lock());

			if (!text.expired())
			{
				text.lock()->SetText(caption);
				Font *font = text.lock()->GetFont();

				unsigned width = (unsigned)font->GetTextLengthPx(mCaption.GetStd());
				unsigned height = (unsigned)font->GetCharHeightPx();


				//clip any characters that don't fit inside from the text element
				while (width > GetWidth())
				{
					mCaption.Remove(mCaption.Size()-1,mCaption.Size());
					SetCaption(mCaption);
					width = (unsigned)font->GetTextLengthPx(mCaption.GetStd());
				}

				//properly center the text
				text.lock()->SetRelPos( Vector2D<int>((GetWidth()-width)/2, (GetHeight()-height)/2) );
			}
		}
开发者ID:DanWatkins,项目名称:GlanceEngineSDK,代码行数:29,代码来源:ButtonCaption.cpp

示例2: DropObject

		/*=============================================================================
		-- Drops the object with the id in the inventory if it exists.
		=============================================================================*/
		void Actor::DropObject(int id)
		{
			//place the object on the ground behind the Actor so it does not walk over it right away.
			WeakPtr<Object> object = mInventory->GetObject(id);

			if (!object.expired())
			{
				object.lock()->SetHeld(false);
				object.lock()->SetPos(Vector3D<double>(GetPos().x+32.0, GetPos().y+32.0, GetPos().z+2.0));
				mInventory->RemoveObject(id);
			}
		}
开发者ID:DanWatkins,项目名称:GlanceEngineSDK,代码行数:15,代码来源:Actor.cpp

示例3: ReactToCollision

		/*=============================================================================
		-- Special actions for colliding with certain enity types.
		=============================================================================*/
		void Actor::ReactToCollision(WeakPtr<Entity> entity)
		{
			if (entity.expired())
				return;

			if (entity.lock()->GetType() == OBJECT)
			{
				WeakPtr<Object> object = WeakPtr<Object>(DynamicPtrCast<Object>(entity.lock()));

				if (object.lock()->GetObtainable())
					HoldObject( object );
			}
		}
开发者ID:DanWatkins,项目名称:GlanceEngineSDK,代码行数:16,代码来源:Actor.cpp

示例4: HoldObject

		/*=============================================================================
		-- Adds the object to the inventory. Effectively "picking up" the object.
		=============================================================================*/
		void Actor::HoldObject(WeakPtr<Object> object)
		{
			if (!object.expired())
			{
				mInventory->AddObject(object);
				object.lock()->SetHost( GetManager()->GetEntity(GetId()) );
			}
		}
开发者ID:DanWatkins,项目名称:GlanceEngineSDK,代码行数:11,代码来源:Actor.cpp

示例5: lock

SharedPtr<OclDevice> OclDevice::getInstance()
{
    AutoLock lock(m_lock);
    SharedPtr<OclDevice> device = m_instance.lock();
    if (device)
        return device;
    device.reset(new OclDevice);
    if (!device->init()) {
        device.reset();
    }
    return device;
}
开发者ID:chivakker,项目名称:libyami,代码行数:12,代码来源:oclcontext.cpp

示例6:

		Box::Box(WeakPtr<SweepBox> sweepBox)
		{
			_SetType(BOX);
			_SetId(sweepBox.lock()->GetId());
			_SetPos(sweepBox.lock()->GetPos());
			_SetSize(sweepBox.lock()->GetWidth(), sweepBox.lock()->GetLength(), sweepBox.lock()->GetHeight());
			_SetVelocity(sweepBox.lock()->GetVelocity());//TODO this is probably unecessary, so optimize out
			mSweepBox = SharedPtr<SweepBox>(new SweepBox);
		}
开发者ID:DanWatkins,项目名称:GlanceEngineSDK,代码行数:9,代码来源:Box.cpp

示例7: SelectCell

		void ListBox::SelectCell(WeakPtr<Cell> cell)
		{
			//ensure the cell is actually a cell in the listbox
			std::vector< WeakPtr<Cell> >::iterator iter = mCells.begin();
			while (iter != mCells.end())
			{
				if ((*iter).lock() == cell.lock())
				{
					mSelectedCell = cell;
					_SendElementMessageToListeners(ElementEvent::SELECTED, mSelectedCell.lock()->GetUID());
					return;
				}

				iter++;
			}
		}
开发者ID:DanWatkins,项目名称:GlanceEngineSDK,代码行数:16,代码来源:ListBox.cpp

示例8: operator

 result_type operator()(const WeakPtr &wp) const
 {
   return wp.lock();
 }
开发者ID:ngzHappy,项目名称:cpc2,代码行数:4,代码来源:slot_base.hpp

示例9: expired

bool expired(const WeakPtr<VaapiDisplay>& weak)
{
    return !weak.lock();
}
开发者ID:01org,项目名称:libyami,代码行数:4,代码来源:vaapidisplay.cpp

示例10: operator

 void operator()(Args&&... args)
 {
     auto raii_lock = weak_ref.lock();
     if (raii_lock)
         handler(std::forward<Args>(args)...);
 }
开发者ID:Phallanx,项目名称:libbitcoin,代码行数:6,代码来源:weak_bind.hpp

示例11: adjacent

 inline
 Ptr
 adjacent() const
 {
     return _adjacent.lock();
 }
开发者ID:DJoser,项目名称:minko,代码行数:6,代码来源:HalfEdge.hpp

示例12: prec

 inline
 Ptr
 prec() const
 {
     return _prec.lock();
 }
开发者ID:DJoser,项目名称:minko,代码行数:6,代码来源:HalfEdge.hpp

示例13: next

 inline
 Ptr
 next() const
 {
     return _next.lock();
 }
开发者ID:DJoser,项目名称:minko,代码行数:6,代码来源:HalfEdge.hpp


注:本文中的WeakPtr::lock方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。