refactor functions

This commit is contained in:
Nomango 2018-04-06 11:31:24 +08:00
parent fff3e8c370
commit 15e039f278
5 changed files with 64 additions and 64 deletions

View File

@ -6,10 +6,10 @@ static std::map<size_t, ID2D1Bitmap*> s_mBitmapsFromFile;
e2d::Image::Image() e2d::Image::Image()
: m_pBitmap(nullptr) : m_pBitmap(nullptr)
, m_fSourceClipX(0) , m_fSourceCropX(0)
, m_fSourceClipY(0) , m_fSourceCropY(0)
, m_fSourceClipWidth(0) , m_fSourceCropWidth(0)
, m_fSourceClipHeight(0) , m_fSourceCropHeight(0)
{ {
} }
@ -18,10 +18,10 @@ e2d::Image::Image(String strFileName)
this->open(strFileName); this->open(strFileName);
} }
e2d::Image::Image(String strFileName, double nClipX, double nClipY, double nClipWidth, double nClipHeight) e2d::Image::Image(String strFileName, double nCropX, double nCropY, double nCropWidth, double nCropHeight)
{ {
this->open(strFileName); this->open(strFileName);
this->clip(nClipX, nClipY, nClipWidth, nClipHeight); this->crop(nCropX, nCropY, nCropWidth, nCropHeight);
} }
e2d::Image::~Image() e2d::Image::~Image()
@ -42,35 +42,35 @@ void e2d::Image::open(String strFilePath)
} }
m_pBitmap = s_mBitmapsFromFile.at(strFilePath.getHashCode()); m_pBitmap = s_mBitmapsFromFile.at(strFilePath.getHashCode());
m_fSourceClipX = m_fSourceClipY = 0; m_fSourceCropX = m_fSourceCropY = 0;
m_fSourceClipWidth = m_pBitmap->GetSize().width; m_fSourceCropWidth = m_pBitmap->GetSize().width;
m_fSourceClipHeight = m_pBitmap->GetSize().height; m_fSourceCropHeight = m_pBitmap->GetSize().height;
} }
void e2d::Image::clip(double x, double y, double width, double height) void e2d::Image::crop(double x, double y, double width, double height)
{ {
if (m_pBitmap) if (m_pBitmap)
{ {
m_fSourceClipX = min(max(x, 0), this->getSourceWidth()); m_fSourceCropX = min(max(x, 0), this->getSourceWidth());
m_fSourceClipY = min(max(y, 0), this->getSourceHeight()); m_fSourceCropY = min(max(y, 0), this->getSourceHeight());
m_fSourceClipWidth = min(max(width, 0), this->getSourceWidth() - m_fSourceClipX); m_fSourceCropWidth = min(max(width, 0), this->getSourceWidth() - m_fSourceCropX);
m_fSourceClipHeight = min(max(height, 0), this->getSourceHeight() - m_fSourceClipY); m_fSourceCropHeight = min(max(height, 0), this->getSourceHeight() - m_fSourceCropY);
} }
} }
double e2d::Image::getWidth() const double e2d::Image::getWidth() const
{ {
return m_fSourceClipWidth; return m_fSourceCropWidth;
} }
double e2d::Image::getHeight() const double e2d::Image::getHeight() const
{ {
return m_fSourceClipHeight; return m_fSourceCropHeight;
} }
e2d::Size e2d::Image::getSize() const e2d::Size e2d::Image::getSize() const
{ {
return Size(m_fSourceClipWidth, m_fSourceClipHeight); return Size(m_fSourceCropWidth, m_fSourceCropHeight);
} }
double e2d::Image::getSourceWidth() const double e2d::Image::getSourceWidth() const
@ -109,19 +109,19 @@ e2d::Size e2d::Image::getSourceSize() const
} }
} }
double e2d::Image::getClipX() const double e2d::Image::getCropX() const
{ {
return m_fSourceClipX; return m_fSourceCropX;
} }
double e2d::Image::getClipY() const double e2d::Image::getCropY() const
{ {
return m_fSourceClipY; return m_fSourceCropY;
} }
e2d::Point e2d::Image::getClipPos() const e2d::Point e2d::Image::getCropPos() const
{ {
return Point(m_fSourceClipX, m_fSourceClipY); return Point(m_fSourceCropX, m_fSourceCropY);
} }
bool e2d::Image::preload(String fileName) bool e2d::Image::preload(String fileName)

View File

@ -22,7 +22,7 @@ e2d::Sprite::Sprite(String imageFileName, double x, double y, double width, doub
: m_pImage(nullptr) : m_pImage(nullptr)
{ {
open(imageFileName); open(imageFileName);
clip(x, y, width, height); crop(x, y, width, height);
} }
e2d::Sprite::~Sprite() e2d::Sprite::~Sprite()
@ -47,12 +47,12 @@ void e2d::Sprite::open(String imageFileName)
open(new Image(imageFileName)); open(new Image(imageFileName));
} }
void e2d::Sprite::clip(double x, double y, double width, double height) void e2d::Sprite::crop(double x, double y, double width, double height)
{ {
m_pImage->clip(x, y, width, height); m_pImage->crop(x, y, width, height);
Node::setSize( Node::setSize(
min(max(width, 0), m_pImage->getSourceWidth() - m_pImage->getClipX()), min(max(width, 0), m_pImage->getSourceWidth() - m_pImage->getCropX()),
min(max(height, 0), m_pImage->getSourceHeight() - m_pImage->getClipY()) min(max(height, 0), m_pImage->getSourceHeight() - m_pImage->getCropY())
); );
} }
@ -66,8 +66,8 @@ void e2d::Sprite::onRender()
if (m_pImage && m_pImage->getBitmap()) if (m_pImage && m_pImage->getBitmap())
{ {
// »ñȡͼƬ²Ã¼ôλÖà // »ñȡͼƬ²Ã¼ôλÖÃ
float fClipX = static_cast<float>(m_pImage->getClipX()); float fCropX = static_cast<float>(m_pImage->getCropX());
float fClipY = static_cast<float>(m_pImage->getClipY()); float fCropY = static_cast<float>(m_pImage->getCropY());
// äÖȾͼƬ // äÖȾͼƬ
Renderer::getRenderTarget()->DrawBitmap( Renderer::getRenderTarget()->DrawBitmap(
m_pImage->getBitmap(), m_pImage->getBitmap(),
@ -75,10 +75,10 @@ void e2d::Sprite::onRender()
m_fDisplayOpacity, m_fDisplayOpacity,
D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
D2D1::RectF( D2D1::RectF(
fClipX, fCropX,
fClipY, fCropY,
fClipX + m_fWidth, fCropX + m_fWidth,
fClipY + m_fHeight fCropY + m_fHeight
) )
); );
} }

View File

@ -490,11 +490,11 @@ public:
// 从本地文件中读取资源 // 从本地文件中读取资源
Image( Image(
String strFilePath,/* 图片文件路径 */ String strFilePath, /* 图片文件路径 */
double nClipX, /* 裁剪位置 X 坐标 */ double nCropX, /* 裁剪位置 X 坐标 */
double nClipY, /* 裁剪位置 Y 坐标 */ double nCropY, /* 裁剪位置 Y 坐标 */
double nClipWidth, /* 裁剪宽度 */ double nCropWidth, /* 裁剪宽度 */
double nClipHeight /* 裁剪高度 */ double nCropHeight /* 裁剪高度 */
); );
virtual ~Image(); virtual ~Image();
@ -504,12 +504,12 @@ public:
String strFilePath String strFilePath
); );
// 裁剪图片 // 将图片裁剪为矩形
void clip( void crop(
double nClipX, /* 裁剪位置 X 坐标 */ double nCropX, /* 裁剪位置 X 坐标 */
double nClipY, /* 裁剪位置 Y 坐标 */ double nCropY, /* 裁剪位置 Y 坐标 */
double nClipWidth, /* 裁剪宽度 */ double nCropWidth, /* 裁剪宽度 */
double nClipHeight /* 裁剪高度 */ double nCropHeight /* 裁剪高度 */
); );
// 获取宽度 // 获取宽度
@ -531,13 +531,13 @@ public:
virtual Size getSourceSize() const; virtual Size getSourceSize() const;
// 获取裁剪位置 X 坐标 // 获取裁剪位置 X 坐标
virtual double getClipX() const; virtual double getCropX() const;
// 获取裁剪位置 Y 坐标 // 获取裁剪位置 Y 坐标
virtual double getClipY() const; virtual double getCropY() const;
// 获取裁剪位置 // 获取裁剪位置
virtual Point getClipPos() const; virtual Point getCropPos() const;
// 获取 ID2D1Bitmap 对象 // 获取 ID2D1Bitmap 对象
ID2D1Bitmap * getBitmap(); ID2D1Bitmap * getBitmap();
@ -551,10 +551,10 @@ public:
static void clearCache(); static void clearCache();
protected: protected:
double m_fSourceClipX; double m_fSourceCropX;
double m_fSourceClipY; double m_fSourceCropY;
double m_fSourceClipWidth; double m_fSourceCropWidth;
double m_fSourceClipHeight; double m_fSourceCropHeight;
ID2D1Bitmap * m_pBitmap; ID2D1Bitmap * m_pBitmap;
}; };

View File

@ -487,7 +487,7 @@ public:
String imageFileName String imageFileName
); );
// 从文件图片创建精灵并裁剪 // 创建精灵并裁剪图片
Sprite( Sprite(
String imageFileName, String imageFileName,
double x, double x,
@ -508,8 +508,8 @@ public:
Image * image Image * image
); );
// 裁剪图片 // 将图片裁剪为矩形
virtual void clip( virtual void crop(
double x, double x,
double y, double y,
double width, double width,