⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 font.h

📁 VC++ DEMO, used for the beginners and the amour
💻 H
字号:
#ifdef CGE_HEADER_H
#ifndef CGE_FONT_H
#define CGE_FONT_H

namespace CGE
{
	namespace FONT
	{
		#define FONT_NUM_IN_LINE 1024
		enum
		{
			ALIGN_ACROSS = 0,
				ALIGN_ERECT,
		};
		
		struct CARD2DVERTEX 
		{ 
			union {
				FLOAT    sx;             /* Screen coordinates */
				FLOAT    dvSX;
			};
			union {
				FLOAT    sy;
				FLOAT    dvSY;
			};
			union {
				FLOAT    sz;
				FLOAT    dvSZ;
			};
			union {
				FLOAT    rhw;        /* Reciprocal of homogeneous w */
				FLOAT    dvRHW;
			};
			union {
				D3DCOLOR    color;          /* Vertex color */
				D3DCOLOR    dcColor;
			};
			union {
				FLOAT    tu;             /* Texture coordinates */
				FLOAT    dvTU;
			};
			union {
				FLOAT    tv;
				FLOAT    dvTV;
			};
			CARD2DVERTEX(const D3DXVECTOR3 & p,FLOAT _rhw,DWORD clr,FLOAT _tu,FLOAT _tv)
			{
				sx = p.x; sy = p.y; sz = p.z; rhw = _rhw;
				color = clr; tu = _tu; tv = _tv;
			};
			enum
			{
				FVF_CARD2DVERTEX = (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1),
			};
		};

		typedef class CardFont
		{
		public: 
			VOID BeginCardOut();
			VOID SetCardOffSet(LONG sx,LONG sy);
			VOID CardInScene();
			VOID UnlockCardBuffer();
			BOOL LockCardBuffer();
			VOID SetCardFile( TCHAR * strFileName,LONG wsize,LONG hsize);
			VOID Out2DCard(LONG x, LONG y,FLOAT fSize,DWORD clr);
			VOID SetOut2DCard(LONG sx, LONG sy, LONG cx,LONG cy,UINT nAlign);
			VOID SetfreeContext();
			BOOL CreateCardFont(LPDIRECT3DDEVICE8 device,DWORD clrKey);
			CardFont();
			~CardFont();
		protected:
			LPDIRECT3DTEXTURE8 m_CardFontMap;
			LPDIRECT3DDEVICE8 m_pD3DDevice;
			LPDIRECT3DVERTEXBUFFER8 m_Buffer;
			TCHAR * m_strFileName;
			LONG m_CardWidth;
			LONG m_CardHeight;
			LONG m_CardMapWidth;
			LONG m_CardMapHeight;
			LONG m_CardNumberToRender;
			LONG m_CardOffsetSX,m_CardOffsetSY;
			UINT m_Align;
			LONG m_sx,m_sy;
			CARD2DVERTEX * m_CardBufferPtr;
		}*LPCARDFONT;

		typedef class EnFont
		{
		public:
			BOOL CreateContext(LPDIRECT3DDEVICE8 device);
			VOID EndTextOut();
			VOID BeginTextOut();
			BOOL SetEnFont(LPDIRECT3DDEVICE8 device,TCHAR *strFontface, LONG dwFontHeight, LONG dwBold, BOOL bItalic, BOOL bUnderline);
			VOID SetfreeContext();
			VOID Text2DOut(const TCHAR * pText, LONG x, LONG y,DWORD rgbFontColour);
			EnFont();
			~EnFont();
		protected:
			LPDIRECT3DDEVICE8 m_dyEnFontDevice;
			LPDIRECT3DVERTEXBUFFER8 m_dyEnFontVB;
			LPDIRECT3DTEXTURE8 m_dyEnFontCache;
			DWORD m_dwTexWidth,m_dwTexHeight;
			DWORD m_dwFontHeight;
			FLOAT m_fTextScale;
			FLOAT   m_fTexCoords[128-32][4];
			DWORD   m_dwSavedStateBlock;
			DWORD   m_dwDrawTextStateBlock;
		}*LPENFONT;

	}
}
#endif
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -