GfxLib - FreeBASIC 图形库概述
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=GfxLib
- 最后更新: 2023-07-09
名为 GfxLib 的库是 FreeBASIC 内置的图形库。除了重新实现所有 QuickBASIC 图形命令外,GfxLib 还内置了处理键盘和鼠标输入的命令。该库的主要贡献者是 Lillo、coderJeff 和 DrV。
该库根据平台支持各种驱动程序:
- 所有平台:
- Windows:
- Linux 及其他:
- DOS:
Screencontrol 可用于(SET_DRIVER_NAME 103)覆盖默认驱动程序首选项。
平台差异
- 在 DOS 上,如果检测到鼠标驱动程序,GfxLib 将创建并"管理"一个鼠标箭头。没有"官方"方法来禁用此功能。另请注意,当屏幕被锁定时,箭头不响应鼠标移动。
- 在 DOS 上,窗口化和 OpenGL 相关命令及开关不可用(它们存在但不执行任何操作,或返回一些无意义的值)。
- 在 DOS 上,刷新率设置不可用(某些 VESA 显卡确实支持,但 FreeBASIC 目前不支持)。
- 在 DOS 上,分辨率必须与显卡支持的分辨率匹配。GfxLib 将尝试从 VGA 模式、ModeX 或 VESA 中找到合适的模式,如果可用则优先选择 VESA LFB 接口,否则选择 bank 切换 VESA。不支持的分辨率目前可能会导致程序崩溃(如果使用前未检查 SCREENPTR 是否为 ZERO),但将来 GfxLib 可能会尝试找到接近的匹配项。为了获得最佳兼容性,您应该支持"安全"分辨率,如 640x480 和 800x600,以及可能的 1024x768。还有各种附加模式如 768x576,但它们是特定供应商的,在许多其他显卡上缺失。此外,1024x768 及以上的模式在旧显卡和笔记本电脑上不可用。
- 已观察到 SCREEN 和 SCREENRES 在 DOS 中可能无法清除屏幕,这实际上可能是 GfxLib 目前未解决的 BIOS 错误。
与 QB 的差异
- 图形支持经过内部重新设计。QB 使用 VGA 图形模式,并直接写入 VGA RAM。只要显卡支持,多个页面就可用。FB 使用后缓冲区,每个定义的页面一个,并在后台将它们复制到视频 RAM(VGA(DOS)、VESA(DOS)、DirectX(Win32)等)。图形命令的工作方式与 QB 中相同,但存在一些显著差异:
参见
- GFX 函数索引
Screen (Graphics)设置图形模式的类 QB 方式ScreenresScreen的更灵活替代方案Screenlist检查 FB GfxLib 可用的显示模式Screencontrol选择驱动程序等ScreenlockScreenunlockScreenptr半低级访问ScreensetScreencopyScreeninfoScreenglproc内部像素格式
返回 程序员指南
返回 目录