本文整理汇总了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) );
}
}
示例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);
}
}
示例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 );
}
}
示例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()) );
}
}
示例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;
}
示例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);
}
示例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++;
}
}
示例8: operator
result_type operator()(const WeakPtr &wp) const
{
return wp.lock();
}
示例9: expired
bool expired(const WeakPtr<VaapiDisplay>& weak)
{
return !weak.lock();
}
示例10: operator
void operator()(Args&&... args)
{
auto raii_lock = weak_ref.lock();
if (raii_lock)
handler(std::forward<Args>(args)...);
}
示例11: adjacent
inline
Ptr
adjacent() const
{
return _adjacent.lock();
}
示例12: prec
inline
Ptr
prec() const
{
return _prec.lock();
}
示例13: next
inline
Ptr
next() const
{
return _next.lock();
}