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

📄 15-6.c

📁 《linux应用开发技术详解》的配套代码
💻 C
字号:
#include <SDL.h>
#include <SDL_ttf.h>

SDL_Surface *screen;

void Init_SDL()
{
  if ( SDL_Init( SDL_INIT_VIDEO) < 0 ) {
    fprintf(stderr,"Can't init SDL: %s\n",SDL_GetError());
    exit(1);
  }
  screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
  if ( screen == NULL ) {
    fprintf(stderr, "Error: %s\n",SDL_GetError());
    exit(1);
  }
  atexit(SDL_Quit);
}

int main()
{
  SDL_Surface *text;
  SDL_Rect dest_rect;
  TTF_Font *font;
  SDL_Color green={ 0, 255, 0, 0 };   /* 绿色 */
  int fontsize=38;                  /* 字号38 */

  Init_SDL();                     /* 初始化SDL */
  if(TTF_Init()!=0){               /* 初始化TTF库 */
    fprintf(stderr, "Can't init ttf font!\n");
    exit(1);
  }

  font=TTF_OpenFont("/usr/share/fonts/simsun.ttf",fontsize);  /* 打开字体文件 */
  TTF_SetFontStyle(font,TTF_STYLE_NORMAL);         /* 设置字体类型 */
  text=TTF_RenderUTF8_Blended(font,"TureType中文字体显示(Utf8)", green); /* 渲染文字生成新的surface */
  if(text==NULL){
    fprintf(stderr, "Can't render ttf text!\n");
    exit(1);
  }
  TTF_CloseFont(font);  /* “画”好字后就可以关闭字体文件了 */
  TTF_Quit();          /* 关闭TTF引擎 */

  dest_rect.x=100;       /* 将在 (100,200) 处显示 */
  dest_rect.y=200;
  dest_rect.w=text->w;
  dest_rect.h=text->h;
  SDL_BlitSurface(text, NULL, screen, &dest_rect);  /* 将绘好文字的平面“贴”到屏幕上 */
  SDL_UpdateRect(screen,0,0,0,0);                /* 更新屏幕 */
  SDL_FreeSurface(text);                        /* 释放surface */

  SDL_Delay(5000);
}

⌨️ 快捷键说明

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