亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gssurface.h

?? 連連看這個游戲都玩過吧
?? H
字號:
    // DxSurface.h: interface for the CDxSurface class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DXSURFACE_H__EDD923B5_BFEA_4EE9_92BB_D34EC9F72AB7__INCLUDED_)
#define AFX_DXSURFACE_H__EDD923B5_BFEA_4EE9_92BB_D34EC9F72AB7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


class GSLIB_API CDxSurface  
{
	friend	CGsEngine;
	friend  CGsSurface;
	friend  CGsTexture;
	friend  CGsTextureGroup;

public:
	HRESULT ChangeFormat(DXSF format);
	HRESULT DrawText( HFONT hfont, LPCTSTR lpString, GRECT* lpRect, LONG lWidth, LONG lHeight, UINT uFormat,
		              D3DCOLOR crForeground = D3DRGBA(1.0F,1.0F,1.0F,1.0f), D3DCOLOR crBackground = D3DRGBA(0.0F,0.0F,0.0F,0.0F) );
	HRESULT DrawNumber( HFONT hfont, LPCTSTR lpString, GRECT* lpRect, LONG lWidth, LONG lHeight, UINT uFormat,
		              D3DCOLOR crForeground = D3DRGBA(1.0F,1.0F,1.0F,1.0f), D3DCOLOR crBackground = D3DRGBA(0.0F,0.0F,0.0F,0.0F) );
	VOID AdjustBasePoint(GPOINT point);
	HRESULT LoadFromRGBData(BYTE *pData, LONG lWidth, LONG lHeight, BOOL bReverse = FALSE, LONG x=0, LONG y=0);
	HRESULT LoadFromPGMFile(GSFBUF* pfBuf);
	DWORD ConvertColor(D3DCOLOR color);
	CGsEngine*			 GetGsEngine()		{ return m_pEngine; }
    LPDIRECTDRAWSURFACE7 GetDDrawSurface()	{ return m_pdds; }
	DXSF				 GetSurfaceFormat()	{ return m_dxsf; }
	DWORD				 GetColorCount()	{ return m_dwColorCount; }
    virtual DWORD		 GetWidth()			{ return m_ddsd.dwWidth; }
    virtual DWORD        GetHeight()		{ return m_ddsd.dwHeight; }
    virtual GRECT		 GetRect()			{ return GRECT(0,0,m_ddsd.dwWidth,m_ddsd.dwHeight); }
	virtual DWORD		 GetPixelInfo(LONG x, LONG y,
									  BYTE* pAlpha=NULL,
									  BYTE* pRed=NULL,
									  BYTE* pGreen=NULL,
									  BYTE* pBlue=NULL);

	virtual HRESULT Update( DWORD )			{ return S_OK; }		// for animate surface
	virtual HRESULT ReleaseSurface();		//{ return S_OK; }
	virtual HRESULT	RestoreSurface();		//{ return S_OK; }

	// user custom operation
	virtual HRESULT	BeginLock( BYTE* &pDes, LONG &lPitch )=0;
	virtual HRESULT	EndLock()=0;

	HRESULT LoadFromPixmap(PIXMAP *pPixmap, LONG x=0, LONG y=0);

	HRESULT LoadFromDibmap(DIBMAP &dibmap, DWORD x=0, DWORD y=0, BOOL bKey=0);
	HRESULT LoadFromDibmapEx(DIBMAP &dibmap, GRECT* prcSrc=NULL, GRECT* prcDes=NULL, BOOL bKey=0);

	HRESULT LoadFromJpegFile(const char* strFile, PIX24* pCK = NULL, LONG x = 0, LONG y =0);
	HRESULT LoadFromJpegFile(GSFBUF* pfBuf, PIX24* pCK = NULL, LONG x = 0, LONG y =0);
	HRESULT LoadFromGif(LPCSTR strFile, int index, PIX24* pCK = NULL, LONG x = 0, LONG y =0);
	HRESULT LoadFromGifCache(void* ptrGif, int index, PIX24* pCK = NULL, LONG x = 0, LONG y =0);

	// Functions for user operate surface
	HRESULT Blt( int x, int y,
				 CDxSurface* pSrcSurface,
				 GRECT* pSrcRect = NULL, 
				 BOOL bUseColorKey = false );
	HRESULT Blt( GRECT* pDestRect,
				 CDxSurface* pSrcSurface,
				 GRECT* pSrcRect = NULL, 
				 BOOL bUseColorKey = false );
	HRESULT CopySurface(int x, int y, 
						CDxSurface* pSrcSurface, 
						GRECT* pSrcRect = NULL);
    HRESULT DrawBitmap( HBITMAP hBMP, DWORD dwBMPOriginX = 0, DWORD dwBMPOriginY = 0, 
		                DWORD dwBMPWidth = 0, DWORD dwBMPHeight = 0 );
    HRESULT DrawBitmap( const TCHAR* strBMP, DWORD dwDesiredWidth, DWORD dwDesiredHeight );
    HRESULT DrawTextDirect( HFONT hFont, const TCHAR* strText, DWORD dwOriginX, DWORD dwOriginY,
		              COLORREF crForeground = RGB(255,255,255), COLORREF crBackground = RGB(0,0,0) );
	HRESULT DrawTextCenter( HFONT hFont, const TCHAR* strText, 
							DWORD dwOriginX, DWORD dwOriginY, DWORD dwLineLength,
							COLORREF crForeground = RGB(255,255,255), COLORREF crBackground = RGB(0,0,0) );
	HRESULT DrawTextInRect( HFONT hFont, const TCHAR* strText, 
							DWORD dwOriginX, DWORD dwOriginY,
							DWORD dwLineLength, DWORD dwHeight,
							COLORREF crForeground = RGB(255,255,255), COLORREF crBackground = RGB(0,0,0) );

    DWORD   ConvertGDIColor( COLORREF dwGDIColor );

	HRESULT	Clear( DWORD dwColor, LPRECT pRect = NULL );
	HRESULT	RGBClear( COLORREF dwColor, LPRECT pRect = NULL );

	HRESULT BeginDc( HDC &dc );
	HRESULT EndDc( HDC &dc );

    virtual VOID Cleanup();

	VOID SetGsEngine(CGsEngine* pEngine);
				CDxSurface();
				CDxSurface( CGsEngine* pEngine );
				~CDxSurface();
protected:
	virtual HRESULT OnCreate();
    HRESULT Create( DDSURFACEDESC2* pddsd );
    HRESULT Create( LPDIRECTDRAWSURFACE7 pdds );

	VOID	OnDismiss();

	CGsEngine*			 m_pEngine;

	KEY					m_keySource;


	BOOL				 m_isDismiss;
	BOOL				 m_isUseVideoMemory;
	LPDIRECTDRAWSURFACE7 m_pdds;
	DDSURFACEDESC2       m_ddsd;
	DXSF				 m_dxsf;
	DWORD				 m_dwColorCount;

	GPGM*				m_guid_buf;
	int					m_guid_size;

	GPOINT	m_BasePoint;

    int m_nRShiftL, m_nRShiftR;
    int m_nGShiftL, m_nGShiftR;
    int m_nBShiftL, m_nBShiftR;
    int m_nAShiftL, m_nAShiftR;

private:

};




class GSLIB_API CGsSurface : public CDxSurface  
{
	friend	CGsEngine;

    BOOL	m_bColorKeyed;
	DWORD	m_dwKeyColor;

	BOOL	m_bUseVideoMem;

public:
	HRESULT CreateFromJPEG(const char* strFile);
	BOOL	SetStreamSource( const char* strSource );
	HRESULT CreateEx(int width, int height, BOOL bUseVideoMem = false);
	HRESULT CreateEx(PIXMAP const& pixmap, BOOL bUseVideoMem = false);

	HRESULT CreateFromBitmap( const TCHAR* strBMP, DWORD dwDesiredWidth = 0, DWORD dwDesiredHeight = 0, BOOL bUseVideoMem = false, DWORD KeyColor=0xffffffff );

	virtual VOID ReleaseObjects();
	virtual HRESULT RestoreObjects();
	// user custom operation
	virtual HRESULT	BeginLock( BYTE* &pDes, LONG &lPitch );
	virtual HRESULT	EndLock();


    HRESULT SetColorKey( COLORREF dwColorKey );
    DWORD   ConvertGDIColor( COLORREF dwGDIColor );
	//HRESULT DrawRect(GRECT const& rect, COLORREF color, BOOL bFill);
	//HRESULT DrawPolygon(GPOINT* ppoint, COLORREF 


	CGsSurface( CGsEngine* pEngine=NULL );
	virtual ~CGsSurface();

};




class GSLIB_API CGsTexture : public CGsSurface  
{
	friend	CGsEngine;

protected:
	int					m_nUser;
	DWORD				 m_width;
	DWORD				 m_height;
	BOOL				m_isTexture;
	DWORD	m_dwNumMipMaps;

	//m_is_use_cache=true 時才使用,這里內存緩沖
	union
	{
		char*				m_cache_memory;
		struct
		{
			void*				m_link_cache_gif;	//危險指針+_+
			int					m_cache_pos;
		};
	};
	FFT					m_cache_fft;
	int					m_mode_cache;

public:
	VOID ClearCache();
	HRESULT UpdateFromCache();
	void SetUseCache(int use_cache_mode);
	BOOL	IsUseCache()	{return m_mode_cache>0;}
	HRESULT CreateShare(CGsTexture* pTexture);
	HRESULT LoadFromSurface(GRECT* rcDest, CDxSurface* pSurface, GRECT* rcSrc);
	BOOL	IsTexture()		{return m_isTexture;} 
	HRESULT LoadFromMemory(char* pMem, D3DCOLOR crEdge=D3DRGBA(0.0f, 0.0f, 0.0f, 0.0f));
	LPDIRECTDRAWSURFACE7 GetTexture();
	BOOL SetStreamSource( const char* strSource, int use_cache_mode );
	int Release();
	int AddUser();
	DWORD				 GetWidthEx()		{ return m_width; }
	DWORD				 GetHeightEx()		{ return m_height; }
	VOID CreateVirtual(LONG width, LONG height, LONG baseX=0, LONG baseY=0);
	HRESULT CreateEx( DWORD width, DWORD height, DXSF dxsf=D3DX_SF_A8R8G8B8, DWORD dwNumMipMaps=0 );
	HRESULT CreateFromFile( const TCHAR* strFile, DWORD width=0, DWORD height=0, DXSF dxsf=D3DX_SF_A8R8G8B8, DWORD dwNumMipMaps=0 );
	HRESULT CreateFromFileEx( const TCHAR* strFile, PIX24* pCK=NULL, DXSF dxsf=D3DX_SF_A8R8G8B8, DWORD dwNumMipMaps=0 );

	BOOL CreateFromTGA(const char* strTGA, float fScale = 0.0f, DXSF dxsf=D3DX_SF_A8R8G8B8, DWORD dwNumMipMaps=0 );
	BOOL CreateFromPixmap(PIXMAP *pPixmap, float fScale = 0.0f, DXSF dxsf=D3DX_SF_A8R8G8B8, DWORD dwNumMipMaps=0 );

	HRESULT Import( const TCHAR* strFile );
	HRESULT Import( GSFBUF &gsbuf );
	DWORD	Export( const TCHAR* strFile, BOOL bCompress = false );
	DWORD	Export( GSFBUF &gsbuf, BOOL bCompress = false );


	virtual VOID ReleaseObjects();
	virtual HRESULT RestoreObjects();
	// user custom operation
	virtual HRESULT	BeginLock( BYTE* &pDes, LONG &lPitch );
	virtual HRESULT	EndLock();


	VOID	SetBasePoint(GPOINT BasePoint)	{ m_BasePoint = BasePoint; }
	GPOINT	GetBasePoint()					{ return m_BasePoint; }

    virtual VOID Cleanup();

	CGsTexture( CGsEngine* pEngine=NULL );
	virtual ~CGsTexture();

public:
};


#define		TXG_FLAG_SHADOW		0x00000001

class GSLIB_API CGsTextureGroup  
{
	friend CGsEngine;
	BOOL				m_bLoadAll;
	FFT					m_source_fft;

	int					m_nUser;
	int					m_nRef_in_use;
	DWORD				m_dwNumTeam;
	float				m_fBaseAngle;
	CGsEngine*			m_pEngine;
	KEY					m_keySource;

	DWORD				m_default_delay;
	DWORD				m_tick_last_use;
	FLAG				m_flag;

	DWORD				m_cache_size;
	std::list<int>		m_cache_indices;
	void*				m_extern_cache_data;	//gif: <CGif98a*>
	std::vector<CGsTexture*>	m_apTexture;
public:
	GPOINT				m_base_point;
	CGsTexture*		GetTexture( int index );
	void*			GetExternCacheData()	{return m_extern_cache_data;}

	LPCSTR			GetSourceName()	{return m_keySource.c_str();}

	FFT				GetSourceFFT()	{return m_source_fft;}
	GPOINT			GetBasePoint()	{return m_base_point;}

	VOID			SetDefaultDelay(DWORD delay)	{m_default_delay = delay;}
	DWORD			GetDefaultDelay()			{return m_default_delay;}
	VOID			SetCacheSize(DWORD size=0);//	{m_cache_size	= size;}
	DWORD			GetCacheSize()				{return m_cache_size;}
	
	FLAG			GetFlag()				{return m_flag;}
	VOID			SetFlag(FLAG flag)		{m_flag = flag;}
	VOID			AddFlag(FLAG flag)		{m_flag |= flag;}
	VOID			ClearFlag(FLAG flag)	{m_flag &= !flag;}
	BOOL			TestFlag(FLAG flag)		{return m_flag&flag;}

	int				GetNumTexture()			{ return m_apTexture.size(); }
	BOOL			SetStreamSource( const char* strSource, BOOL bLoadAll = false );

	HRESULT			Import( const TCHAR* strFile, BOOL bLoadAll = false );
	HRESULT			Import( GSFBUF& gsbuf, BOOL bLoadAll = false );

	DWORD			Export( const TCHAR* strFile, BOOL bCompress );
	DWORD			Export( GSFBUF& gsbuf, BOOL bCompress = false );

public:
	CGsTexture* GetPreTexture(int index);
	BOOL LoadFromGif(LPCSTR strFile);
	int SetCurrentUse(BOOL use=TRUE);
	VOID ClearCache();
	BOOL SaveHeader();
	BOOL LoadFromPGG(const char* strFile);
	HRESULT RestoreObjects();
	int AddUser();
	virtual int Release();
	VOID ReleaseObjects();
	CGsTexture*		InsertTexture( int insert_pos=-1 );
	BOOL			DeleteTexture( int delete_pos );
	BOOL			SwapTexture( int pos1, int pos2 );

	VOID			SetTeam(DWORD nTeam)			{ m_dwNumTeam	= nTeam; }
	DWORD			GetTeam()						{ return m_dwNumTeam; }
	VOID			SetBaseAngle(float fAngle)		{ m_fBaseAngle	= fAngle; }
	float			GetBaseAngle()					{ return m_fBaseAngle; }
	VOID			SetBasePoint(LONG x, LONG y);

	VOID			Cleanup();

	CGsTextureGroup( CGsEngine* pEngine, const char* strSource, BOOL bLoadAll = false );
	CGsTextureGroup( CGsEngine* pEngine );
	virtual ~CGsTextureGroup();

protected:
	virtual			VOID OnInitialize()			{ return; }

};



#endif // !defined(AFX_DXSURFACE_H__EDD923B5_BFEA_4EE9_92BB_D34EC9F72AB7__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲私人国产精品va媚药| 亚洲欧美另类综合偷拍| 一区在线观看视频| 日韩激情av在线| 色欧美片视频在线观看在线视频| 欧美成人在线直播| 亚洲国产视频一区二区| 国产成a人亚洲| 日韩女优av电影| 午夜免费欧美电影| 99国产精品国产精品久久| 精品美女在线播放| 亚洲成人动漫av| 色综合久久66| 国产精品免费人成网站| 黄网站免费久久| 欧美日本免费一区二区三区| 日韩美女视频一区二区| 国产成人在线电影| 精品国产乱子伦一区| 日韩制服丝袜先锋影音| 欧美三级日韩三级| 亚洲五月六月丁香激情| 91久久国产综合久久| 日韩一区中文字幕| 成人免费高清视频在线观看| www一区二区| 国产一区二区三区| 精品久久久久久最新网址| 蜜桃av噜噜一区二区三区小说| 欧美色视频在线| 亚洲精品日韩一| 色av综合在线| 午夜亚洲国产au精品一区二区| 欧美亚洲国产怡红院影院| 亚洲最色的网站| 欧美唯美清纯偷拍| 日韩精品电影在线观看| 7777精品伊人久久久大香线蕉最新版 | 欧美日韩综合在线| 亚洲一区二区三区四区五区黄| 91免费看片在线观看| 中文字幕一区二区三区四区不卡 | 国产91清纯白嫩初高中在线观看| 久久综合久久99| 国产福利91精品一区二区三区| 久久夜色精品一区| 福利电影一区二区| 亚洲四区在线观看| 精品视频在线免费| 日韩和的一区二区| 久久尤物电影视频在线观看| 91亚洲永久精品| 亚洲欧美日韩在线不卡| 欧美三级蜜桃2在线观看| 偷拍一区二区三区四区| 精品精品国产高清一毛片一天堂| 国产一区二区91| 亚洲视频电影在线| 这里只有精品免费| 国产成人综合亚洲91猫咪| 国产精品毛片久久久久久| 欧美性受xxxx黑人xyx性爽| 日韩精品一级二级| 日本一区二区视频在线| 在线免费观看不卡av| 久久精品国产999大香线蕉| 久久精品一级爱片| 在线欧美日韩精品| 九九热在线视频观看这里只有精品| 国产精品乱人伦| 欧美精品久久99| 成人免费黄色大片| 日本欧美肥老太交大片| 国产精品国产三级国产aⅴ原创 | 在线播放亚洲一区| 岛国一区二区在线观看| 亚洲国产美女搞黄色| 久久蜜桃av一区精品变态类天堂| 一本一道波多野结衣一区二区| 日产精品久久久久久久性色| 国产精品污网站| 日韩欧美成人激情| 91高清在线观看| 国产成人免费网站| 日韩电影网1区2区| 亚洲综合色网站| 中文一区二区在线观看| 欧美一区二区三区视频免费| 色综合色狠狠天天综合色| 国产一区二区0| 日韩av电影天堂| 一区二区三区精密机械公司| 久久久亚洲精华液精华液精华液| 欧美猛男超大videosgay| 成人美女在线视频| 精品一区二区免费看| 天天色天天爱天天射综合| 一区二区三区日本| 最新中文字幕一区二区三区| 日本一区二区三区国色天香 | 热久久免费视频| 夜夜嗨av一区二区三区网页 | 亚洲一区二区三区四区中文字幕| 国产喷白浆一区二区三区| 日韩亚洲欧美在线观看| 欧美三区免费完整视频在线观看| 99国内精品久久| 成人在线综合网| 国产精品一区二区久久精品爱涩| 麻豆成人91精品二区三区| 日韩专区中文字幕一区二区| 亚洲成人7777| 日韩黄色免费网站| 蜜桃一区二区三区在线观看| 国产成人免费视频一区| 激情综合五月天| 久久国产精品第一页| 捆绑调教一区二区三区| 激情深爱一区二区| 国模无码大尺度一区二区三区| 激情六月婷婷综合| 国产一区二区美女| 福利一区在线观看| av不卡免费电影| 91极品视觉盛宴| 欧美日韩专区在线| 日韩午夜小视频| 久久亚洲捆绑美女| 国产精品久久毛片av大全日韩| 国产精品理伦片| 一区二区三区在线观看动漫| 婷婷久久综合九色综合绿巨人| 天天操天天干天天综合网| 老司机精品视频导航| 国产成人鲁色资源国产91色综| av在线播放不卡| 在线观看成人小视频| 91精品国产综合久久国产大片| 日韩欧美一区在线| 国产日韩精品视频一区| 中文字幕在线不卡一区| 亚洲va韩国va欧美va| 九色|91porny| 色综合久久88色综合天天免费| 欧美巨大另类极品videosbest| 精品国产髙清在线看国产毛片| 久久久久青草大香线综合精品| 亚洲欧洲精品成人久久奇米网| 亚洲在线视频一区| 久久99日本精品| 91国偷自产一区二区三区成为亚洲经典 | 欧美mv和日韩mv国产网站| 国产欧美日韩精品一区| 亚洲电影一区二区三区| 久久99在线观看| 色婷婷综合久久久| 欧美精品一区二区三区高清aⅴ| 国产精品丝袜黑色高跟| 日本在线不卡视频| 成人激情免费网站| 91精品中文字幕一区二区三区| 中文字幕精品三区| 视频一区二区国产| 99久精品国产| 精品久久久久久无| 亚洲亚洲人成综合网络| 成人免费毛片嘿嘿连载视频| 欧美伦理电影网| 亚洲色图第一区| 国产剧情在线观看一区二区| 欧美婷婷六月丁香综合色| 久久久高清一区二区三区| 日韩电影在线观看网站| 色偷偷成人一区二区三区91 | 国产精品久久久久9999吃药| 日韩中文字幕av电影| 一本久道中文字幕精品亚洲嫩| 久久久久久久久99精品| 热久久一区二区| 欧美日韩高清一区二区三区| 中文字幕在线不卡国产视频| 激情五月婷婷综合网| 91精品国产欧美一区二区18| 一区二区在线观看免费| 成人免费视频网站在线观看| 国产精品久久久久桃色tv| 七七婷婷婷婷精品国产| 欧美日本高清视频在线观看| 亚洲精品videosex极品| 99久久伊人精品| 一区二区中文字幕在线| 国产高清成人在线| 久久亚洲二区三区| 激情五月激情综合网| 日韩欧美一二区| 蜜臀久久久99精品久久久久久| 91麻豆精品国产91久久久久久| 午夜欧美在线一二页| 制服丝袜在线91|