Font System Finished!

字体渲染系统升级
本博客介绍了一款字体渲染系统的更新情况,支持多种字体大小及格式,包括字符串与StringBuilder,并实现了从指定位置开始绘制、非均匀缩放、2D旋转等功能。新增DrawStringInRegion()方法可在指定区域显示文字,支持自动换行与文字裁剪。

 

     这几天加强了字体系统, 功能和性能都已经比较完善了:
1.支持任意字体和大小.
2. 支持string和StringBuilder
3. 支持从字符串中的某个指定位置开始绘制.
4. 支持x,y方向上的非均匀缩放
5. 支持2D空间内的旋转.
6. 支持任意颜色
7. 添加了DrawStringInRegion(), 在指定区域内显示文字,支持自动换行, 裁剪超出显示区域的文字. 暂时还不支持缩放和旋转.
8. 低内存占用,大约5mb左右
     最终的接口只包含2个类,Font和FontSystem。非常容易集成到其他系统:

     FontSystem是一个singleton类, 只能通过CreateFontSystem获得. FontTexture负责内部把文字渲染到gid+ bitmap在复制到XNA texture2D的任务. 为了支持各种特性,DrawString有11种重载,DrawStringInRegion有9种:)

测试效果图:

 

我在VMware里安装Ubuntu Server,为什么一到这里就卡住了?【Starting systemd-resolved.serviceNetwork Name Resolution. Starting systemd-update-utmp.servi..ord System Boot/Shutdoun in UTMP.. Starting systemd-timesyncd.service - Network Time Synchronization.. OK1Started vgauth.service -Authentic..virtual machines hosted on VMware. ] Starting cloud-init-local.service.-init: LocalStage(pre-network)...Started open-vm-tools.service - Se. virtual machines hosted on VMware. EOK]Finished systemd-udev-trigger.service - Coldplug All udev Devices. OK]Finished systemd-journal-catalog-u..service - Rebuild Journal Catalog. OK OK Mounting proc-sys-fs-binfmt_misc.m.cutable File Formats File System...Started systemd-ask-password-conso.equests to Console Directory Watch.1 1 OK Reached target cryptsetup.target - Local Encrypted Volumes. OKMounted proc-sys-fs-binfmt_misc.mo.xecutable FileFormatsFile System.Finished systemd-update-utmp.servi..cord System Boot/Shutdown in UTMP. OK OK Finished systemd-binfmt.service - Set Up Additional Binary Formats.Started systemd-timesyncd.service - Network Time Synchronization. OKReached target time-set.target - System Time Set. OKStarted systemd-resolved.service-Network Name Resolution. OK] Finished snapd.apparmor.service -Reached target nss-lookup.target-Host and Network Name Lookups. OK...ofiles managed internally by snapd. OK] Finished ldconfig.service - Rebuild Dynamic Linker Cache. Starting systemd-update-done.service -Update is Completed... ]Finished systemd-update-done.servicee - Update is Completed. OK14.983510] piix4_smbus 0000:00:07.3: SMBus Host Contro1ler not enabled!]Finished console-setup.service - Set console font and keymap. OK]Listening on systemd-rfkill.socket - Load/Save RF Kill Switch Status/dev/rfkill Watch. ]Finished cloud-init-local.service - Cloud-init: Local Stage (pre-network). OK1Reached target network-pre.target - Preparation for Network.Starting systemd-networkd.service - Network Configuration... OK1Started systemd-networkd.service -Network Configuration. ]Reached target network.target-Network.Starting systemd-networkd-wait-online.service- Wait for Network to be Configured.. EOK] Starting cloud-init.service -Cloud-init: Network Stage...Finished systemd-networkd-wait-online.service - Wait for Network to be Configured. E] Reached target sound.target - Sound Card.】
09-11
<think> 我们正在解决用户在VMware中安装Ubuntu Server时卡在“Starting systemd-resolved.service”等启动信息处的问题。根据提供的引用内容,虽然引用是关于Docker容器的,但我们可以从中获得一些关于服务启动问题的通用解决思路。此外,我们需要结合Ubuntu Server启动卡住的具体情况进行分析。 可能的原因及解决方案: 1. **服务依赖问题**:某个服务启动失败导致后续服务无法启动。类似引用[2]中MySQL启动失败是因为缺少必要的环境变量,Ubuntu启动卡住可能是某个关键服务启动失败。 - 解决方法:尝试进入恢复模式,检查服务状态,禁用或重新配置有问题的服务。 2. **网络配置问题**:在虚拟机环境中,网络服务启动可能由于配置错误而卡住。引用[1]和引用[3]都涉及网络服务(Redis和DNS)的配置,这提示我们检查网络配置。 - 解决方法:检查网络配置文件(如`/etc/netplan/*.yaml`),确保配置正确。如果有问题,可以尝试使用恢复模式修复。 3. **虚拟机资源不足**:如果虚拟机分配的资源(如内存)不足,可能导致服务启动缓慢或卡住。 - 解决方法:增加虚拟机的内存或CPU资源。 4. **系统更新或软件包问题**:安装过程中下载的软件包可能损坏,或者安装过程中断导致依赖不完整。 - 解决方法:尝试重新安装,或者使用恢复模式修复软件包。 5. **虚拟化环境兼容性问题**:VMware的版本与Ubuntu Server版本可能存在兼容性问题。 - 解决方法:确保VMware Tools或Open VM Tools已安装,并检查VMware版本是否支持该Ubuntu版本。 具体步骤: 步骤1:尝试进入恢复模式 - 在虚拟机启动时,长按Shift键(如果是BIOS启动)或Esc键(如果是UEFI启动)进入GRUB菜单。 - 选择“Advanced options for Ubuntu”,然后选择带有“recovery mode”的内核。 - 在恢复模式菜单中,选择“root”进入root shell。 步骤2:检查服务状态 - 使用命令查看失败的服务: $ systemctl list-units --state=failed - 重点关注`systemd-resolved.service`的状态: $ systemctl status systemd-resolved.service - 检查日志: $ journalctl -u systemd-resolved.service 步骤3:禁用或重新配置有问题的服务(如果是`systemd-resolved`的问题) - 如果确认是`systemd-resolved`服务的问题,可以尝试禁用该服务(但注意,这可能会影响DNS解析): $ systemctl disable systemd-resolved.service $ systemctl stop systemd-resolved.service - 然后手动配置DNS(编辑`/etc/resolv.conf`,添加公共DNS如8.8.8.8) 步骤4:检查网络配置 - 查看网络配置文件(Ubuntu Server通常使用Netplan): $ cat /etc/netplan/*.yaml - 检查配置是否正确(例如IP地址、网关、DNS等)。如果需要修改,使用文本编辑器(如nano)进行修改,然后应用: $ netplan apply 步骤5:修复软件包 - 在恢复模式的root shell中,尝试修复损坏的软件包: $ dpkg --configure -a $ apt install -f $ apt update $ apt upgrade 步骤6:检查磁盘空间 - 使用命令检查磁盘空间是否充足: $ df -h 步骤7:重启系统 - 执行`reboot`命令重启系统。 如果以上步骤无法解决,可以考虑重新安装Ubuntu Server,并确保安装过程中网络畅通,避免中断。 注意事项:在虚拟机中安装时,确保虚拟机设置中网络适配器连接正常(如NAT或桥接模式),并且宿主机的网络正常。 生成相关问题: §§相关问题§§ 1. 如何进入Ubuntu Server的恢复模式? 2. 在Ubuntu Server中如何检查和配置网络? 3. 如何查看系统日志以诊断启动问题? 4. 如何禁用Ubuntu中启动失败的服务? 5. VMware虚拟机中安装Linux系统还有哪些常见问题? </think> ### VMware安装Ubuntu Server卡在启动服务时的解决方案 根据您描述的卡在`Starting systemd-resolved.service`等启动信息的问题,结合虚拟机环境特性,以下是系统性的解决方案: #### 1. **检查虚拟机资源配置** - **内存不足**:确保分配的内存 ≥ 2GB(建议4GB),过小内存会导致服务启动超时 - **CPU核心数**:分配至少2个vCPU核心,避免资源争用 - **磁盘空间**:系统分区 ≥ 25GB(使用`df -h`命令验证) #### 2. **禁用问题服务(临时解决方案)** 在GRUB启动菜单中编辑内核参数: ```bash 1. 启动时按Shift键进入GRUB菜单 2. 选择Ubuntu项按"e"编辑 3. 在linux行末尾添加:systemd.unit=rescue.target 4. 按Ctrl+X启动进入救援模式 5. 执行:sudo systemctl disable systemd-resolved.service ``` 这将禁用卡住的DNS解析服务[^1][^3] #### 3. **修复网络配置** 常见于虚拟机网络适配器配置冲突: ```bash sudo nano /etc/netplan/*.yaml ``` 修改配置示例: ```yaml network: ethernets: ens33: # 适配器名需用ip a确认 dhcp4: true optional: true version: 2 ``` 应用配置:`sudo netplan apply` #### 4. **检查服务依赖关系** 排查服务启动链问题: ```bash systemd-analyze critical-chain systemd-resolved.service journalctl -u systemd-resolved -b -p err ``` 若显示`dependency failed`,需修复上游服务 #### 5. **重建systemd服务配置** 在Recovery Mode中执行: ```bash mount -o remount,rw / # 挂载根目录为可写 dpkg-reconfigure systemd systemctl daemon-reload ``` #### 6. **尝试替代安装方式** 若仍失败,建议: - 使用**Ubuntu Live Server镜像**(非传统ISO) - 安装时选择**最小化安装**(减少服务依赖) - 关闭IPv6(在GRUB添加`ipv6.disable=1`) > **关键提示**:VMware环境需确保: > 1. 虚拟机设置中开启**虚拟化引擎**(Intel VT-x/EPT或AMD-V/RVI) > 2. 使用**VMXNET3**网络适配器类型 > 3. 安装`open-vm-tools`:`sudo apt install open-vm-tools`
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值