diff options
author | Chris Xiong <chirs241097@gmail.com> | 2015-08-14 23:45:02 +0800 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2015-08-14 23:45:02 +0800 |
commit | 92f17580846c88108aab023092c23e6bcdcf2f75 (patch) | |
tree | 0b05ee9215e46c02482e545989a8f92041bcc4f6 /include/smbmfont.hpp | |
parent | fff589be8d4a363c01c698c052fc43de806f5055 (diff) | |
download | bullet-lab-remix-92f17580846c88108aab023092c23e6bcdcf2f75.tar.xz |
SMELT is finally finished! Add the SMELT library for future use.
Add .gitignore.
Diffstat (limited to 'include/smbmfont.hpp')
-rw-r--r-- | include/smbmfont.hpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/include/smbmfont.hpp b/include/smbmfont.hpp new file mode 100644 index 0000000..8dffc1f --- /dev/null +++ b/include/smbmfont.hpp @@ -0,0 +1,62 @@ +// -*- C++ -*- +/* + * Simple MultimEdia LiTerator(SMELT) + * by Chris Xiong 2015 + * api level 1 + * Bitmap font support header + * + * WARNING: This library is in development and interfaces would be very + * unstable. + * + */ + #ifndef SMBMFONT_H +#define SMBMFONT_H +#include "smanim.hpp" +#include <cwchar> +#ifndef ALIGN_LEFT +#define ALIGN_LEFT 0 +#define ALIGN_RIGHT 1 +#define ALIGN_CENTER 2 +#endif +class smBMFont +{ +private: + static SMELT *sm; + smDtpFileR anm; + float sc,hadv; + smEntity2D* chars[256]; + int pdb[256],pda[256],b; + DWORD color; + std::map<std::string,SMTEX> xm; + void parseMeta(char* meta,DWORD size); +public: + bool loadAnmFromMemory(char* ptr,DWORD size); + void close(); + void render(float x,float y,float z,int align,float *rw,const char* text); + void printf(float x,float y,float z,int align,float *rw,const char* format,...); + void setColor(DWORD col){color=col;} + void setBlend(int blend){b=blend;} + void setScale(float scale){sc=scale;} +}; +class smBMFontw +{ +private: + static SMELT *sm; + smDtpFileR anm; + float sc,hadv; + int b; + DWORD color; + std::map<std::string,SMTEX> xm; + std::map<wchar_t,smEntity2D*> chars; + std::map<wchar_t,int> pdb,pda; + void parseMeta(char* meta,DWORD size); +public: + bool loadAnmFromMemory(char* ptr,DWORD size); + void close(); + void render(float x,float y,float z,int align,float *rw,const wchar_t* text); + void printf(float x,float y,float z,int align,float *rw,const wchar_t* format,...); + void setColor(DWORD col){color=col;} + void setBlend(int blend){b=blend;} + void setScale(float scale){sc=scale;} +}; +#endif |