Files
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

66 lines
1.2 KiB
C++

#include "GraphicsLayer.h"
#include <cmath>
namespace Aggplus
{
CGraphicsLayer::CGraphicsLayer(BYTE *pBuffer, bool bExternalBuffer)
: m_pBuffer(pBuffer), m_bExternalBuffer(NULL != pBuffer && bExternalBuffer)
{
SetDefaultSettings();
}
CGraphicsLayer::~CGraphicsLayer()
{
ClearBuffer();
}
bool CGraphicsLayer::Empty() const
{
return NULL == m_pBuffer;
}
BYTE *CGraphicsLayer::GetBuffer()
{
return m_pBuffer;
}
void CGraphicsLayer::SetDefaultSettings()
{
m_oSettings.m_uchOpacity = 255;
}
void CGraphicsLayer::ClearBuffer(bool bDeleteData)
{
if (bDeleteData && !m_bExternalBuffer)
RELEASEARRAYOBJECTS(m_pBuffer);
m_pBuffer = NULL;
}
void CGraphicsLayer::SetSettings(const TGraphicsLayerSettings &oSettings)
{
m_oSettings = oSettings;
}
const TGraphicsLayerSettings &CGraphicsLayer::GetSettings() const
{
return m_oSettings;
}
void CGraphicsLayer::SetOpacity(double dOpacity)
{
if (dOpacity > 1. || dOpacity < 0.)
m_oSettings.m_uchOpacity = 255;
else
{
m_oSettings.m_uchOpacity = ceil(255 * dOpacity);
}
}
void CGraphicsLayer::SetOpacity(BYTE uchOpacity)
{
m_oSettings.m_uchOpacity = uchOpacity;
}
}