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

📄 fastfont.cc

📁 基于SDL实现的GUI
💻 CC
字号:
#include <assert.h>#include <string.h>#include <stdlib.h>#include "SDL_gui.h"GUI_FastFont::GUI_FastFont(const char *fn): GUI_Font(fn){	image = new GUI_Surface(fn);	char_width = image->GetWidth() / 256;	char_height = image->GetHeight();}GUI_FastFont::~GUI_FastFont(){	image->DecRef();}void GUI_FastFont::DrawText(GUI_Surface *surface, const char *s, int x, int y){	SDL_Rect sr, dr;	int n, i, max;		assert(s != 0);	if (x > surface->GetWidth() || y > surface->GetHeight())		return;	n = strlen(s);	max = (surface->GetWidth() - x) / char_width;	if (n > max)		n = max;	dr.x = x;	dr.y = y;	dr.w = char_width;	dr.h = char_height;	sr = dr;	sr.y = 0;	for (i=0; i<n; i++)	{		sr.x = s[i] * char_width;		image->Blit(&sr, surface, &dr);		dr.x += char_width;	}}GUI_Surface *GUI_FastFont::RenderFast(const char *s, SDL_Color fg){	assert(s != 0);		GUI_Surface *surface = 	new GUI_Surface("text", SDL_SWSURFACE,		strlen(s) * char_width, char_height, 16, 		0, 0, 0, 0);	DrawText(surface, s, 0, 0);	return surface;}GUI_Surface *GUI_FastFont::RenderQuality(const char *s, SDL_Color fg){	return RenderFast(s, fg);}SDL_Rect GUI_FastFont::GetTextSize(const char *s){	assert(s != 0);		SDL_Rect r = { 0, 0, 0, 0 };	r.w = strlen(s) * char_width;	r.h = char_height;	return r;	}GUI_Surface *GUI_FastFont::GetFontImage(void){	return image;}extern "C" GUI_Font *GUI_FontLoadBitmap(char *fn){	return new GUI_FastFont(fn);}

⌨️ 快捷键说明

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