SCREENRES
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgScreenres
- 最后更新: 2024-04-06
SCREENRES — 初始化图形模式
语法
语句形式:
vb
Screenres width, height [, [depth] [, [num_pages] [, [flags] [, refresh_rate] ] ] ]函数形式:
vb
result = Screenres( width, height [, [depth] [, [num_pages] [, [flags] [, refresh_rate] ] ] ] )参数
| 参数 | 类型 | 说明 |
|---|---|---|
width | Long | 水平分辨率(显示宽度,以像素为单位) |
height | Long | 垂直分辨率(显示高度,以像素为单位) |
depth | Long | 每像素颜色深度(位数)。默认 = 8。有效值:1、2、4、8、16、32(15 视为 16;24 视为 32) |
num_pages | Long | 视频页面数。默认 = 1 |
flags | Long | 屏幕属性标志。默认 = 0 |
refresh_rate | Long | 刷新率(仅全屏模式)。默认 = 0 |
返回值
- 成功时:返回
0 - 失败时:返回非零错误代码(同时抛出运行时错误)
标志
图形模式标志
| 标志 | 说明 |
|---|---|
GFX_NULL | 启动 QB-on-GUI 图形模式:创建图形缓冲区但不创建窗口 |
GFX_OPENGL | 初始化 OpenGL 模式(只能使用 OpenGL 命令) |
| (无) | 进入纯 QB 图形模式(默认) |
窗口模式标志
| 标志 | 说明 |
|---|---|
GFX_WINDOWED | 窗口模式(默认) |
GFX_FULLSCREEN | 全屏模式 |
GFX_NO_SWITCH | 禁用 Alt+Enter 在全屏/窗口之间切换 |
GFX_NO_FRAME | 创建无边框窗口 |
GFX_SHAPED_WINDOW | 创建异形/透明窗口(RGBA(255,0,255,0) = 透明) |
GFX_ALWAYS_ON_TOP | 窗口始终置于其他窗口之上 |
选项标志
| 标志 | 说明 |
|---|---|
GFX_ALPHA_PRIMITIVES | 为所有绘图图元启用 alpha 通道支持 |
GFX_HIGH_PRIORITY | 启用更高优先级的图形处理 |
GFX_NO_X86_MMX | 禁用 MMX 位图传输器(x86 平台,fbc 1.20.0 起) |
OpenGL 缓冲区标志(仅与 GFX_OPENGL 一起使用)
| 标志 | 说明 |
|---|---|
GFX_STENCIL_BUFFER | 使用模板缓冲区 |
GFX_ACCUMULATION_BUFFER | 使用累积缓冲区 |
GFX_MULTISAMPLE | 请求全场景抗锯齿 |
说明
Screenres 初始化图形模式。支持三种模式:
- QB 兼容图形模式 — 窗口或全屏。标准 FreeBASIC 图形命令按预期工作。
- QB-on-GUI 模式(
GFX_NULL)— 用户手动管理窗口和刷新。创建图形缓冲区但不显示窗口。 - OpenGL 模式(
GFX_OPENGL)— 提供初始化 OpenGL 的可移植方式。只应使用 OpenGL 命令;FreeBASIC 图形图元不可用。
默认字体为 8×8 像素。Width 函数可用于调整文本行数和列数。控制台命令如 Locate 和 Print 在图形模式下工作。
示例
vb
' Set a 320x200 resolution with 8-bit color depth
ScreenRes 320, 200, 8
' Draw a colored diagonal pattern
For y As Long = 0 To 200 - 1
For x As Long = 0 To 320 - 1
PSet (x, y), (x + y) And 255
Next x
Next y
' Display text in the upper-left corner
Print "Hello world!!"
' Wait for a key press
Sleep平台差异
- DOS 下不支持窗口模式和 OpenGL 标志。
另请参阅
- KeyPgScreengraphics —
Screen(图形):QB 风格图形模式初始化 - KeyPgScreenlist —
Screenlist:查询可用显示模式 - KeyPgScreencontrol —
Screencontrol:选择驱动程序等 - KeyPgScreenptr —
Screenptr:半底层帧缓冲区访问