在上一篇文章我们知道了如何在android使用SDL2.0来渲染显示一张png图,而且在上上一篇我们知道如何使用sdl来渲染输出bmp图,那么sdl是否可以渲染输出自己喜爱的字体库的字体呢?答案是当然可以。
我们需要移植SDL_ttf字体库来支持相应的字体的渲染输出。
一、移植SDL_ttf库:
使用如下命令,从SDL Mercurial获取SDL_image的源码:
hg clone https://hg.libsdl.org/SDL_ttf/
将 SDL_ttf拷贝到在上一篇文章中的android-project\jni\下,将平台相关的代码去掉以及自动自动化相关的文件去掉,保留android相关的代码与文件。
二、在android中添加相关的引用:
修改android-project\jni\src\Android.mk,添加相关的引用:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := main
SDL_PATH := ../SDL
SDL_IMAGE_PATH := ../SDL2_image
SDL_TTF_PATH := ../SDL_ttf
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SDL_IMAGE_PATH)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(SDL_TTF_PATH)
# Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
SDL_lesson.c
LOCAL_SHARED_LIBRARIES := SDL2
LOCAL_SHARED_LIBRARIES += SDL2_image
LOCAL_SHARED_LIBRARIES += SDL2_ttf
LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog
include $(BUILD_SHARED_LIBRARY)
三、代码中引用相关的头文件:
/*
* SDL_lesson.c
* Clipping Sprite Sheets
* Created on: Aug 12, 2014
* Author: clarck
*/
#include <jni.h>
#include "SDL.h"
#include "SDL_image.h"
#include "SDL_ttf.h"
#include "SDL_logger.h"
#include "SDL_main.h"
#include "SDL_cleanup.h"
//The attributes of the screen
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
struct SDL_Window *window = NULL;
struct SDL_Renderer *render = NULL;
struct SDL_Texture *background = NULL;
struct SDL_Texture *image = NULL;
struct SDL_Surface *surface = NULL;
struct SDL_Texture *texture = NULL;
四、加载图片的部分修改为IMG_LoadTexture: