ImagePool.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "CcosLock.h"
  3. #include "ResDataObject.h"
  4. #include "ShareMemory_Circle.h"
  5. #ifndef UnvalidSMBid
  6. #define UnvalidSMBid 0xffffffff
  7. #endif
  8. #define FetchImagePool ("ImageFetchPool")
  9. #define MaxFrameLimits ("MaxFrameLimits")
  10. #define ImageLeftCount ("ImageLeftCount")
  11. #define TotalFrameCount ("TotalFrameCount")
  12. #define CurrentImageIndex ("CurrentImageIndex")
  13. typedef enum _CurFramePos {
  14. FRAME_POS_CUR,
  15. FRAME_POS_FIRST,
  16. FRAME_POS_LAST,
  17. FRAME_POS_INCREASE,
  18. FRAME_POS_DECREASE,
  19. FRAME_POS_MAX
  20. }CURFRAMEPOS;
  21. typedef enum _Block_Image_Type {
  22. FULL_BLOCK_IMG,
  23. PREV_BLOCK_IMG,
  24. MAX_BLOCK_IMG
  25. }BLOCK_IMAGE_TYPE;
  26. class ImagePoolEx : public CcosLock
  27. {
  28. //FullImageQueue Of ShareMemObject
  29. void* m_pFullImageQueue;
  30. //PrevImageQueue Of ShareMemObject
  31. void* m_pPrevImageData;
  32. //
  33. public:
  34. ImagePoolEx();
  35. virtual ~ImagePoolEx();
  36. bool SetMaxBlockSize(const char *pQueName, DWORD BlockSize, DWORD FulBlockCount, DWORD PrevBlockSize, DWORD PrevBlockCount);
  37. unsigned long AddFrameWithHead(BLOCK_IMAGE_TYPE Type, string &imageHead, char* pFrameBuff, DWORD FrameSize);
  38. void ClearPool();
  39. };