FreeType使用

article/2025/8/30 14:08:03

前言

在openGL绘制字体,我们一般都使用freeType字体库,如下图所示
在这里插入图片描述

下载

freeType官网
在这里插入图片描述

编译源码

使用CMake编译源码

在这里插入图片描述
如果嫌麻烦,我这里有编译好的库,包括头文件、lib静态库、dll动态库

编译好的lib和dll库下载地址

例子

// Hacky test//#include "glfreetype/TextRenderer.hpp"
#include "TextRenderer.hpp"
#include "GLFW/glfw3.h"int main(int argc, char **argv)
{GLFWwindow* window;/* Initialize the library */if (!glfwInit()) {return -1;}glfwWindowHint(GLFW_SAMPLES, 4);int windowWidth = 300;int windowHeight = 40;window = glfwCreateWindow(windowWidth, windowHeight, "glfreetype test", NULL, NULL);if (!window) {glfwTerminate();return -1;}/* Make the window's context current */glfwMakeContextCurrent(window);// NEHE's font systemglfreetype::font_data our_font;//font_dataour_font.init("C:/Windows/Fonts/Arial.ttf", 25 /* size */);/* Loop until the user closes the window */while (!glfwWindowShouldClose(window)) {/* Render here */glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glClearColor(255.0, 255.0, 255.0, 0.0);glPushMatrix();glLoadIdentity();// Blue textglColor3ub(0,0,0xff);glfreetype::print(our_font, 20 /* xpos */, 20 /* ypos */, "The quick brown fox blah blah blah");glPopMatrix();/* Swap front and back buffers */glfwSwapBuffers(window);/* Poll for and process events */glfwPollEvents();}our_font.clean();glfwTerminate();return 0;
}

运行结果
在这里插入图片描述

工程源码下载

工程源码下载


http://chatgpt.dhexx.cn/article/mj7E3lpA.shtml

相关文章

【C++】字体文件解析(FreeType)

目录 字体文件解析 一、前言 二、基本排版概念 1.字体文件 2.字符图像和字符表 3.字符和字体指标 三、字形轮廓 四、字形指标 1.基线、笔和布局 2.排版指标和边界框 3.方位与步进 4.网格拟合的效果 5.文本宽度与边界框 五、代码实现 六、使用实例 七、合并缓存优…

FreeType 用法

Freetype是一个跨平台、开源的字体渲染器,网上很多文章介绍,本人就不啰嗦了。本文重点在于实现文章标题所属的各种效果,不是Freetype的基本使用方法介绍文档,所以对于Freetype不熟悉的同学们请先学习下Freetype的基本用法&#xf…

freetype 使用解析---矢量字体

屏幕显示字体(字体点阵): 在内核中有对应的文件fontdata_8x16.c,将字体通过数组8*16来描述,0表示为空,1表示描点,通过通过各个点形成一个字体点阵显示在屏幕上,而在我们所有终端中显示的字体也可以是通过点…

freetype简介与测试

目录 一、简要 二、文字显示过程 三、freetype中的step1 四、在PC上测试freetype 4.1 分析main函数 4.2 修改main函数 4.3 在PC上测试 4.4 得到CBox 一、简要 从点阵文件中把字母或者汉字的字模取出来在LCD上显示这个方式有个缺点,这个文字的大小就固定了不…

Freetype 的安装与使用

4 交叉编译程序 4.1 程序运行的一些基础知识 编译程序时去哪找头文件? 系统目录:就是交叉编译工具链里的某个 include 目录; 也可以自己指定:编译时用 “ -I dir ” 选项指定。 链接时去哪找库文件? 系统目录&#x…

java和web哪个难_web前端和java哪个难学?哪个简单?

说到java很多都人都熟知,但是说到web前端可能是很多人并不知道,随着最近几年的发展,web前端开发人越来越吃香,无论是薪资待遇还是岗位的招聘数量比java差不了多少,最近有同学在咨询web前端和java哪个难学这个问题&…

js和java那个难_javascript与java哪个难?

javascript与java哪个难?答案是:JavaScript比Java更难。那么这是为什么?下面本篇文章就来给大家介绍一下,希望对大家有所帮助。 原因: JavaScript有太多东西需要你自己去理解,这些东西里有很多要么Java已经…

没学历学java很难找工作吗

说实话不是学Java很难找工作,是以后找工作基本都会看学历,学历这个东西说重要也重要,因为它决定了你的简历能不能呈现到面试官面前,如果你的学历不够的话很有可能在第一轮简历就被刷下去了,它根本就不会呈现在面试官面…

java最难的部分_java最难学的是那一块?

原标题:java最难学的是那一块? 对于那些打算通过学习java来找到一份工作的同学来说,可以分为三个学习阶段,初级,中级,高级。不同的学习阶段有不同的难点,下来我就简单的和大家仔细的聊聊&#x…

学习Java开发难不难?好学吗?

学习Java难不难?这是很多希望学习Java的人比较纠结的问题。实际上,Java语言是非常易学的,Java语言机遇C语言,却又高于C语言。Java语言简单易学的特性使得大多数程序员很容易学习和使用Java。 Java是个简单…

零基础Java难学吗?自学怎么样?

在零基础上学习Java难吗?自学呢?要回答这个问题,我们应该从多方面来回答。首先,谁更适合学习Java?   如果仅仅从兴趣上说那么人人都可以胜任,那就像姜子牙70多年的探险生涯。47岁的刘邦在沛县召集民众响应陈胜武广起义。古代的年龄相当于我们现在的六十岁。齐白石,一位…

java学习路线,一个初中生学java要多久,java难学吗

一门永不过时的编程语言——Java 软件开发 java难学吗 java不难,你可以做如下学习 一、到相应的培训机构付费学习 别在这说培训机构没用什么的,不过一定要找正规的培训机构,不然容易被坑。培训机构里面的课程都是现在工作中需要用到的&am…

学Java难吗

Java这门语言你要是单独拎出来,那还是挺复杂的,但你要是把它放到编程里面,那算不上难,因为编程这门行业本来就难,而且,现在大学计算机专业的学生,大学期间,会设置Java这门课程&#…

c语言难还是java难_C语言真的比Java难学吗?

原标题: C语言真的比Java难学吗? 千锋小编觉得C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言语法比较简单便捷,而且性能快速,只比汇编语言…

学习Java很难吗

没有简单的语言,编程语言各有各的优势,同时也各有各的难点,不过这些难点也可以是他们的特点。就像C++难的是语言的细节,Java难的是各种库,各种函数的调用,它的基本语法很简单,但只靠基础是做不出什么东西的,必须去熟悉各种轮子才能进行开发。 第一、 Java入门很简单…

Java难学吗

学习Java说难其实也不难! 毕竟世上无难事,只怕有心人。 Java是编程语言中比较难学的一门语言,它的难度并不低,相对比于C语言来说,Java的学习难度要小一些。 Java的学习中最难得就是,各种各样的框架&#x…

java学起来难不难?

同学们问的最多的一个关于Java的问题就是java学起来到底难不难?java好不好学?小千综合过去毕业学员给大家介绍一下学Java到底难不难。 java语言 单单来说学Java这件事的话,小千认为是不难的,实际上Java经常会用到的代码结构无非就…

关于 高内聚 和 低耦合 的理解

随着一个程序逻辑越来越多,就难免需要微服务来保证程序的高可用性。一个服务宕机或者出问题了,不影响其他的服务。 只要有微服务的存在,两个服务之间有许多代码需要共用。 高内聚低耦合是一种程序设计的思想,高内聚的本质也就抽…

【架构基础】高内聚低耦合

软件设计目标:实现需求、易于重用、易于理解、没有冗余。 Dont reinvent the wheel, just realign it. --Anthony J D’ Angelo 高内聚低耦合,是软件工程中判断软件设计好坏的标准。主要评判模块或类的内聚性是否高,耦合度是否低。目的是使…

神秘的高内聚与低耦合举例

内聚类型: 1.巧合内聚 / 偶然内聚 模块的各成分之间没有关联,只是把分散的功能合并在一起。 例:A模块中有三条语句(一条赋值,一条求和,一条传参),表面上看不出任何联系,但…