📄 imagefactory.h
字号:
/*
============================================================================
Name : ImageFactory.h
Author :
Version :
Copyright : Your copyright notice
Description : CImageFactory declaration
============================================================================
*/
#ifndef IMAGEFACTORY_H
#define IMAGEFACTORY_H
#include <e32base.h> // For CActive, link against: euser.lib
#include <e32std.h> // For RTimer, link against: euser.lib
#include <fbs.h> // For CFbsBibmap
#include <ImageConversion.h> // For CImageDecoder
namespace gamespace
{
enum TImageID
{
EImageScene,
EImageHero
};
//
class MImageFactoryObserver
{
public:
virtual void ConvertCompleted(TInt aCurrentIndex,TInt aAllNum)=0;
virtual void ConvertFail(TInt aCurrentIndex,TInt aAllNum,const TDesC& aDes);
};
class CImageFactory : public CActive
{
private:
struct IMAGESTRUCT
{
TImageID iImageId;
CFbsBitmap* iBmp;
CFbsBitmap* iBmpMask;
HBufC* iFilePathName;
};
RArray<IMAGESTRUCT> iArray;
TInt iIndexToConvert;//待转换的图片索引
CImageDecoder* iDecoder;//解码器
MImageFactoryObserver* iObserver;
private:
CImageFactory(MImageFactoryObserver* aObserver);
void ConstructL();
public:
static CImageFactory* NewL(MImageFactoryObserver* aObserver);
~CImageFactory();
public: // New functions
// Function for making the initial request
void StartConvertL();
CImageFactory& AddImageL(const TDesC& aFilaName,TImageID aId);
TBool DeleteImage(TImageID aId);
TBool Image(TImageID id,CFbsBitmap*& aImage,CFbsBitmap*& aImageMask) const;
const CFbsBitmap* Image(TImageID id) const;
const CFbsBitmap* ImageMask(TImageID id) const;
void Reset();
private:// New functions
TInt FindImageId(TImageID id) const;
void ConvertL(TInt aIndex);
static TBool FindImageById(const IMAGESTRUCT& aImage1,const IMAGESTRUCT& aImage2);
//void DeleteFilePathName();
void DestroyImage(IMAGESTRUCT& image);
private: // From CActive
void RunL();
void DoCancel();
// Override to handle leaves from RunL(). Default implementation causes
// the active scheduler to panic.
//void RunError(TInt aError);
};
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -