arsa  2.7
Public Member Functions | List of all members
Effekseer::ReferenceObject Class Reference

参照カウンタオブジェクト More...

#include <Effekseer.h>

Inheritance diagram for Effekseer::ReferenceObject:
Effekseer::IReference Effekseer::EffectFactory Effekseer::Setting EffekseerRendererGL::DeviceObjectCollection

Public Member Functions

 ReferenceObject ()
 
virtual ~ReferenceObject ()
 
virtual int AddRef ()
 参照カウンタを加算する。 More...
 
virtual int GetRef ()
 参照カウンタを取得する。 More...
 
virtual int Release ()
 参照カウンタを減算する。0になった時、インスタンスを削除する。 More...
 

Detailed Description

参照カウンタオブジェクト

Definition at line 473 of file Effekseer.h.

Constructor & Destructor Documentation

◆ ReferenceObject()

Effekseer::ReferenceObject::ReferenceObject ( )
inline

Definition at line 480 of file Effekseer.h.

481  : m_reference(1)
482  {
483  }

◆ ~ReferenceObject()

virtual Effekseer::ReferenceObject::~ReferenceObject ( )
inlinevirtual

Definition at line 485 of file Effekseer.h.

486  {}

Member Function Documentation

◆ AddRef()

virtual int Effekseer::ReferenceObject::AddRef ( )
inlinevirtual

参照カウンタを加算する。

Returns
加算後の参照カウンタ

Implements Effekseer::IReference.

Definition at line 488 of file Effekseer.h.

489  {
490  std::atomic_fetch_add_explicit(&m_reference, 1, std::memory_order_consume);
491 
492  return m_reference;
493  }

◆ GetRef()

virtual int Effekseer::ReferenceObject::GetRef ( )
inlinevirtual

参照カウンタを取得する。

Returns
参照カウンタ

Implements Effekseer::IReference.

Definition at line 495 of file Effekseer.h.

496  {
497  return m_reference;
498  }

◆ Release()

virtual int Effekseer::ReferenceObject::Release ( )
inlinevirtual

参照カウンタを減算する。0になった時、インスタンスを削除する。

Returns
減算後の参照カウンタ

Implements Effekseer::IReference.

Definition at line 500 of file Effekseer.h.

501  {
502  bool destroy = std::atomic_fetch_sub_explicit(&m_reference, 1, std::memory_order_consume) == 1;
503  if (destroy)
504  {
505  delete this;
506  return 0;
507  }
508 
509  return m_reference;
510  }

The documentation for this class was generated from the following file: