pximage.h
来自「symbian 下的helix player源代码」· C头文件 代码 · 共 595 行 · 第 1/2 页
H
595 行
~PXImageIteratorBTRL() {};
PXImageIterator& operator ++ ();
};
inline PXImageIterator::PXImageIterator(PXImage* pImg, INT32 lX, INT32 lY)
{
HX_ASSERT(pImg);
m_pImage = pImg;
m_lX = lX;
m_lY = lY;
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_pPixel = NULL;
}
m_pImage->AddRef();
}
inline PXImageIterator::~PXImageIterator()
{
HX_RELEASE(m_pImage);
}
inline BOOL PXImageIterator::operator == (const PXImageIterator& itr)
{
BOOL bRet = FALSE;
if (m_pImage == itr.m_pImage &&
m_lX == itr.m_lX &&
m_lY == itr.m_lY)
{
bRet = TRUE;
}
return bRet;
}
inline BOOL PXImageIterator::operator != (const PXImageIterator& itr)
{
return !(*this == itr);
}
inline UINT32& PXImageIterator::operator * ()
{
HX_ASSERT(m_pPixel);
return *m_pPixel;
}
inline UINT32& PXImageIterator::GetPixel()
{
HX_ASSERT(m_pPixel);
return *m_pPixel;
}
inline PXImageIterator& PXImageIteratorLRTB::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lX++;
if (m_lX < m_pImage->GetWidth())
{
m_pPixel++;
}
else
{
m_lY++;
if (m_lY < m_pImage->GetHeight())
{
m_lX = 0;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorLRBT::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lX++;
if (m_lX < m_pImage->GetWidth())
{
m_pPixel++;
}
else
{
m_lY--;
if (m_lY >= 0)
{
m_lX = 0;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorRLTB::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lX--;
if (m_lX >= 0)
{
m_pPixel--;
}
else
{
m_lY++;
if (m_lY < m_pImage->GetHeight())
{
m_lX = m_pImage->GetWidth() - 1;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorRLBT::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lX--;
if (m_lX >= 0)
{
m_pPixel--;
}
else
{
m_lY--;
if (m_lY >= 0)
{
m_lX = m_pImage->GetWidth() - 1;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorTBLR::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lY++;
if (m_lY < m_pImage->GetHeight())
{
m_pPixel += m_pImage->GetRowJump32();
}
else
{
m_lX++;
if (m_lX < m_pImage->GetWidth())
{
m_lY = 0;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorTBRL::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lY++;
if (m_lY < m_pImage->GetHeight())
{
m_pPixel += m_pImage->GetRowJump32();
}
else
{
m_lX--;
if (m_lX >= 0)
{
m_lY = 0;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorBTLR::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lY--;
if (m_lY >= 0)
{
m_pPixel -= m_pImage->GetRowJump32();
}
else
{
m_lX++;
if (m_lX < m_pImage->GetWidth())
{
m_lY = m_pImage->GetHeight() - 1;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
inline PXImageIterator& PXImageIteratorBTRL::operator ++ ()
{
if (m_lX >= 0 && m_lX < m_pImage->GetWidth() &&
m_lY >= 0 && m_lY < m_pImage->GetHeight())
{
m_lY--;
if (m_lY >= 0)
{
m_pPixel -= m_pImage->GetRowJump32();
}
else
{
m_lX--;
if (m_lX >= 0)
{
m_lY = m_pImage->GetHeight() - 1;
m_pPixel = (UINT32*) m_pImage->GetPixel(m_lX, m_lY);
}
else
{
m_lX = m_pImage->GetWidth();
m_lY = m_pImage->GetHeight();
}
}
}
return *this;
}
#define GETALPHA32(p) ( (p) >> 24)
#define GETRED32(p) (((p) & 0x00FF0000) >> 16)
#define GETGREEN32(p) (((p) & 0x0000FF00) >> 8)
#define GETBLUE32(p) ( (p) & 0x000000FF )
#define BLENDMULT(A,B,a) (((A)*(a) + (B)*(256-(a))) >> 8)
#define ALPHA_EXACT(A,B,a) ((((A)*(a) + (B)*(255-(a))) + 127) / 255)
#define ALPHABLEND(A,B,a) (((A)*(a) + (B)*(256-(a)) + 128) >> 8)
#define MAKEPIXEL32(r,g,b) (((r) << 16) | ((g) << 8) | (b))
#define MAKE_RGB32(r,g,b) (((r) << 16) | ((g) << 8) | (b))
#define MAKE_RGBA32(r,g,b,a) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b))
#define FILTER_OUT_UNSUPPORTED_FORMATS \
if (m_cBitmapInfo.biBitCount != 32 || \
m_cBitmapInfo.biCompression != HX_RGB) \
{ \
HX_ASSERT(FALSE); \
return HXR_FAIL; \
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?