00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #pragma once
00023
00024 #include "ISubPic.h"
00025
00026 enum {MSP_RGB32,MSP_RGB24,MSP_RGB16,MSP_RGB15,MSP_YUY2,MSP_YV12,MSP_IYUV,MSP_AYUV};
00027
00028
00029
00030 class CMemSubPic : public ISubPicImpl
00031 {
00032 SubPicDesc m_spd;
00033
00034 protected:
00035 STDMETHODIMP_(void*) GetObject();
00036
00037 public:
00038 CMemSubPic(SubPicDesc& spd);
00039 virtual ~CMemSubPic();
00040
00041
00042 STDMETHODIMP GetDesc(SubPicDesc& spd);
00043 STDMETHODIMP CopyTo(ISubPic* pSubPic);
00044 STDMETHODIMP ClearDirtyRect(DWORD color);
00045 STDMETHODIMP Lock(SubPicDesc& spd);
00046 STDMETHODIMP Unlock(RECT* pDirtyRect);
00047 STDMETHODIMP AlphaBlt(RECT* pSrc, RECT* pDst, SubPicDesc* pTarget);
00048 };
00049
00050
00051
00052 class CMemSubPicAllocator : public ISubPicAllocatorImpl
00053 {
00054 int m_type;
00055 CSize m_maxsize;
00056
00057 bool Alloc(bool fStatic, ISubPic** ppSubPic);
00058
00059 public:
00060 CMemSubPicAllocator(int type, SIZE maxsize);
00061 };
00062