📄 font5x7.cpp
字号:
/*************************************************************************** DSemu - The Next Generation ** 5x7 bitmap font renderer [font5x7.cpp] ** Copyright Imran Nazar, 2005; released under the BSD public licence. ***************************************************************************/#include <string.h>#include "datadefs.h"#include "font5x7.h"#include "fontdata.h"int Font5x7::xdim, Font5x7::ydim;u32 *Font5x7::buf;// Construct a renderer corresponding to a specific 32-bit framebufferFont5x7::Font5x7(u32 *b, int x, int y){ xdim=x; ydim=y; buf=b; clear();}// Render a character at a certain position, in a 32-bit colourvoid Font5x7::chr(u8 c, int x, int y, u32 col){ int off=(x+y*xdim); u8 bits; c-=32; for(int a=0;a<7;a++) { bits=font[c][a]; if(bits&16) buf[off]=col; off++; if(bits&8) buf[off]=col; off++; if(bits&4) buf[off]=col; off++; if(bits&2) buf[off]=col; off++; if(bits&1) buf[off]=col; off+=(xdim-4); }}// Render a string (parsing newlines) at a certain positionvoid Font5x7::print(char *str, int x, int y, u32 col){ int xorig=x; while(*str) { switch(*str) { case 10: y+=8; x=xorig; break; default: chr(*str, x, y, col); x+=6; break; } str++; }}// Clear the framebuffer to zero'svoid Font5x7::clear(){ memset(buf, 0, xdim*ydim*sizeof(u32));}/*** EOF: font5x7.cpp ****************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -