Commit c04b7838 authored by Alexey.Musinov's avatar Alexey.Musinov Committed by Alexander Trofimov

refactoring

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@59881 954022d7-b5bf-4e40-9824-e11837661b57
parent db1692b5
This diff is collapsed.
#ifndef _BUILD_IRENDERER_H_
#ifndef _BUILD_IRENDERER_H_
#define _BUILD_IRENDERER_H_
#pragma once
......@@ -7,33 +7,57 @@
#include "Matrix.h"
#include <string>
#include <libkern/OSAtomic.h>
class IGrObject
{
protected:
ULONG m_lRef;
#ifdef __APPLE__
volatile int32_t m_lRef;
#else
ULONG m_lRef;
#endif
public:
IGrObject()
{
m_lRef = 1;
}
virtual ~IGrObject()
{
}
virtual ULONG AddRef()
{
++m_lRef;
return m_lRef;
}
IGrObject()
{
m_lRef = 1;
}
virtual ~IGrObject()
{
}
#ifdef __APPLE__
virtual ULONG AddRef()
{
OSAtomicIncrement32(&m_lRef);
return (ULONG)m_lRef;
}
virtual ULONG Release()
{
ULONG ret = --m_lRef;
if (0 == m_lRef)
delete this;
return ret;
}
{
int32_t ret = OSAtomicDecrement32(&m_lRef);
if (0 == m_lRef)
delete this;
return (ULONG)ret;
}
#else
virtual ULONG AddRef()
{
++m_lRef;
return m_lRef;
}
virtual ULONG Release()
{
ULONG ret = --m_lRef;
if (0 == m_lRef)
delete this;
return ret;
}
#endif
};
// тип в DrawPath
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment