移植SDL2_ttf到ARM

2024-06-23 06:08
文章标签 移植 arm sdl2 ttf

本文主要是介绍移植SDL2_ttf到ARM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载最新源码,最新的才支持SDL2

然后执行命令,,编译通过,,,,前期准备是要成功安装freetype 和sdl2

./configure --prefix=/gzz/cross_compile/SDL --host=arm-linux --with-sdl-prefix=/gzz/cross_compile/SDL --with-freetype-prefix=/gzz/cross_compile/SDL --with-gnu-ld  CPPFLAGS="-I/gzz/cross_compile/SDL/include" LDFLAGS="-L/gzz/cross_compile/SDL/lib"

make ; make install;

测试程序:

#include "SDL.h"
#include<stdio.h>
#include "SDL_ttf.h"
SDL_Window* Main_Window;
SDL_Renderer* Main_Renderer;
int main(int argc,char *argv[]){char *file;int w,h;Uint8 bpp;Uint32 flags;TTF_Font *font;    SDL_Color red = {255,0,0};SDL_Color green = {0,255,0};SDL_Surface *message1,*message2;SDL_Texture *Tx_message1,*Tx_message2;SDL_Rect SrcR;SDL_Rect DestR1,DestR2;DestR1.x = 100;DestR1.y =  0;DestR1.h = 50;DestR1.w =  50;DestR2.x = 100;DestR2.y =  50;DestR2.h = 150;DestR2.w =  150;w = 480;h = 272;bpp = 0; flags = SDL_SWSURFACE;if(SDL_Init(SDL_INIT_VIDEO) < 0){fprintf(stderr,"Couldn't initialize SDL:%s\n",SDL_GetError());return (1);}Main_Window= SDL_CreateWindow("ttf test",0,0, w, h, 0);Main_Renderer = SDL_CreateRenderer(Main_Window, -1, SDL_RENDERER_ACCELERATED);if(TTF_Init() == -1)return -1;font = TTF_OpenFont("STZHONGS.TTF",16);if(!font){printf("TTF_OpenFont:Open simsun.ttf %s\n",TTF_GetError());return -1;}message1 = TTF_RenderText_Solid(font, "ttf test", red);message2 = TTF_RenderUTF8_Solid(font, "字体显示", green);Tx_message1 = SDL_CreateTextureFromSurface(Main_Renderer, message1);SDL_FreeSurface(message1);  // we got the texture now -> free surfaceTx_message2 = SDL_CreateTextureFromSurface(Main_Renderer, message2);SDL_FreeSurface(message2); 
while(1){if(message1||message2){SDL_RenderCopy(Main_Renderer, Tx_message1, NULL, &DestR1);/* render the current animation step of our shape */SDL_RenderCopy(Main_Renderer, Tx_message2, NULL, &DestR2);  }
SDL_RenderPresent(Main_Renderer);
}
TTF_CloseFont(font);
SDL_DestroyTexture(Tx_message1);
SDL_DestroyTexture(Tx_message2);
SDL_DestroyRenderer(Main_Renderer);
SDL_DestroyWindow(Main_Window);
SDL_Quit();return 0;
}



这篇关于移植SDL2_ttf到ARM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086344

相关文章

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A7中断向量表中仅为外部中断设置了一个中断向量可以看出。本文介绍ARM官方推荐使用的嵌套中断实现机

ARM 虚拟化介绍

0.目录 文章目录 0.目录1.概述 1.1 Before you begin 2.虚拟化介绍 2.1 虚拟化为什么重要2.2 hypervisors的两种类型2.3 全虚拟化和半虚拟化2.4 虚拟机和虚拟CPUs 3.AArch64中的虚拟化4.stage 2 转换 4.1 什么是stage 2 转换4.2 VMIDs4.3 VMID vs ASID4.4 属性整合和覆盖4.5模拟

RT-Thread(Nano版本)的快速移植(基于NUCLEO-F446RE)

目录 概述 1 RT-Thread 1.1 RT-Thread的版本  1.2 认识Nano版本 2 STM32F446U上移植RT-Thread  2.1 STM32Cube创建工程 2.2 移植RT-Thread 2.2.1 安装RT-Thread Packet  2.2.2 加载RT-Thread 2.2.3 匹配相关接口 2.2.3.1 初次编译代码  2.2.3.

Untiy TTF转换为SDF

Untiy TTF转换为SDF 原因 下载的字体是TTF格式,但是TMP使用的是SDF格式,不支持TTF,需要转换网络没有检索到TTF转SDF的教程,可能是太简单了,自己记录一下吧 Unity内转换即可 在Asset中找到自己的TTF右键点击TTF,找到TMP,选择Font Asset 即可将自己下载的TTF字体转换为SDF格式 补充-修改默认的SDF 就是每次都自己拖动SDF效率低

SylixOS ARM平台下内存对齐访问

1.内存对齐 1.1     内存对齐概要 现代计算机中内存空间都是按照byte划分的,从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 1.2     内存对齐作用和原因 各个硬件平台对存储空间的处理上有很大的不同。一些平

element-ui打包之后图标不显示,woff、ttf加载404

1、bug 起因 昨天在 vue 项目中编写 element-ui 的树形结构的表格,发现项目中无法生效,定位问题之后发现项目使用的 element-ui 的版本是 2.4.11 。看了官方最新版本是 2.15.14,然后得知 2.4.11 版本是不支持表格树形结构的。于是决定升级 element-ui 的版本,方便后续的开发。 升级之后本地简单的过了一遍系统功能,并没有发现有什么不妥,于

ubuntu22.04 qemu 安装windows on arm虚拟机

ubuntu22.04 qemu 安装windows on arm虚拟机 iso: https://uupdump.net/ https://massgrave.dev/windows_arm_links vivo driver: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/