当前位置: 首页 > news >正文

14、X-Windows与Unix工具的困境剖析

X-Windows与Unix工具的困境剖析

1. X-Windows系统的灾难

1.1 实际使用中的问题

在使用X-Windows系统时,常常会遇到各种恼人的状况。比如连接到打印机的NFS超时,或者文件服务器即将进行维护等情况,屏幕上会不断弹出消息,就像患有妥瑞氏综合征的法庭记录员一样,让人不胜其烦。而且,通常用于刷新屏幕的X命令对此毫无办法,因为X无法访问覆盖层平面。无奈之下,只能用C语言编写一个程序,在xterm窗口中调用,专门清理覆盖层平面上的混乱信息。

另外,3D图形只能在/dev/crt1上运行,而X Windows则在/dev/crt0上运行,这就导致鼠标无法移动到3D图形显示区域。惠普技术支持人员的解释“你为什么要指向3D绘制的东西呢”实在难以让人满意。

1.2 X并非设备独立

所谓X是设备独立的这一说法完全是个神话。实际上,X极其依赖设备,因为所有X图形都是用像素坐标指定的。在不同分辨率的屏幕上绘制图形,其大小会有所不同。如果要绘制特定大小的图形,就必须自己缩放所有坐标。而且,并非所有屏幕的像素都是正方形的,如果不想看到矩形的正方形和椭圆形的圆形,还得根据像素宽高比调整所有坐标。

以填充和描边图形这样简单的任务为例,由于X古怪的面向像素的成像规则,变得相当复杂。使用XFillRectangle填充一个10x10的正方形时,会如预期般填充100个像素。但当使用相同参数调用XDrawRectangle时,会得到额外的“奖励像素”,因为它实际上绘制的是一个11x11的正方形,会在下方和右侧多延伸一个像素。在X手册第1卷第6.1.4节中提到,手册中解释可以通过在填充矩形的x和y位置加1,同时从宽度和高度中

http://www.cnnetsun.cn/news/47431.html

相关文章:

  • 5分钟掌握SciencePlots:Python科研图表的终极色彩解决方案
  • Android截屏自由终极指南:彻底打破应用限制的完整教程
  • SeaORM数据迁移完整教程:从零开始掌握大批量数据处理
  • 超越 `assert`:深入 Pytest 的高级测试哲学与实践
  • 微服务发布翻车现场:我用pig框架实现零风险灰度发布的实战心得
  • 微信自动答题小工具:如何在PC端轻松实现智能答题
  • iOS架构模式终极指南:从MVC到VIPER的完整解析
  • BetterNCM插件管理器实战教程:10分钟玩转网易云音乐插件生态
  • Claude Code Router多提供商集成:OpenRouter深度配置实战
  • mybatis动态sql模块
  • Gossip:一个具备抗量子攻击的双棘轮机制和密封元数据特性的去中心化匿名私密消息协议
  • 基于vue的党员党史研究学习考试管理系统_5lm4919e_springboot php python nodejs
  • 基于vue的动物园管理系统的设计与实现_9u4ese55_springboot php python nodejs
  • 32、Ubuntu使用指南:更新、交流与资讯获取
  • 基于vue的电影票购买系统_0zj3lit9_springboot php python nodejs
  • 条码扫描技术深度解析:从ZXing开源库到商业SDK的架构对比与实战指南
  • OpenWrt负载均衡终极指南:5分钟实现带宽翻倍
  • 21、嵌入式 Linux 存储及软件更新全解析
  • React Native Snap Carousel 实战指南:从零构建流畅轮播体验
  • AI智能体失控怎么办?构建异常监控系统的终极指南
  • 终极方案:Dropzone.js实现高效团队文件协作的完整指南
  • 还在为Revit族库发愁?2万+免费构件让BIM设计效率翻倍!
  • AppSmith完整指南:零基础打造企业级Web应用
  • Android列表性能优化:Glide加载策略深度解析
  • AWR1843毫米波雷达Python数据读取与可视化全解析
  • ThinkPad黑苹果实战指南:从零到完美的高效配置方案
  • 28、游戏网络连接与音频处理全解析
  • 29、Unity 游戏音频系统:从音效播放到音量控制
  • 20、Linux系统应用与打印机使用指南
  • Qwen3-14B技术解析:双模推理架构重塑AI应用效率格局