ScreenRes
Initializes a graphics mode by specifying horizontal and vertical resolution
Syntax
`
Declare Sub ScreenRes ( ByVal width As Integer, ByVal height As Integer, ByVal depth As Integer = 8, ByVal num_pages As Integer = 1, ByVal flags As Integer = 0, ByVal refresh_rate As Integer = 0 )
`
Usage
`
ScreenRes width, height [, [depth] [, [num_pages] [, [flags] [, refresh_rate ]]]]
`
Parameters
`width`, `height`
The display width and height, respectively. For fullscreen mode, the user should check the availability of the resolution using `ScreenList`.
`depth`
The color depth in bits per pixel. Valid color depths are: `1`, `2`, `4`, `8`, `16` and `32`. Values of `15` and `24` are also allowed as aliases for `16` and `32`, respectively. If omitted, the default is 8 bits per pixel. 8 bits and below will give a palette image. The default palette will be the first `2 ^ depth` colors of the 256-color palette used in `Screen 13`.
`num_pages`
The number of video pages to create, defaults to `1`. (see below)
`flags`
Used to set various properties of the screen, including fullscreen mode and the graphics driver used. (see `Screen` or the standard header "fbgfx.bi" for available flags)
`refresh_rate`
The refresh rate of the screen, defaults to an appropriate value. (invalid refresh rates will be ignored)
Description
`ScreenRes` tells the compiler to link the GfxLib and initializes a QB-only, QB-on-GUI or OpenGL graphics mode, depending on the `flags` setting
In non-fullscreen modes, the resolution does not have to match any resolution of the graphics card. Resolutions like `555x111` are possible, GfxLib will create a window of such size. See Platform differences for DOS issues.
The font size in `ScreenRes` modes is set to 8x8 by default. This can be changed by setting the number of text rows/columns, using the `Width` function.
In QB-only modes a dumb window or fullscreen resolution is set, one or more buffers in standard memory are created, console commands are redirected to their graphic versions, a default palette is set and an automatic screen refresh thread is started. QB-like graphics and console statements can be used.
In QB-on-GUI modes one or more buffers in standard memory are created, console commands are redirected to their graphic versions and a default palette is set. QB-like graphics and console statements can be used. It is up to the user to create a window and to refresh it with the contents of the graphics buffers.
In OpenGL modes a dumb window or fullscreen resolution is set, one or more buffers in standard memory are created, and the system's OpenGL library is initialized. From here only OpenGL commands can be used to write to the graphics buffer. QB-like and console commands are forbidden. This mode allows to initialize OpenGL in a portable way.
See the details in `Screen (Graphics)` keyword.
Example
`
Dim a As Integer, b As Integer
ScreenRes 640, 480, 8 'This line will set the screen mode to 640x480x8.
'The following code block will draw diagonal lines over the whole screen.
For a = 1 To 640
For b = 1 To 480
PSet (a,b),(a + b) And 255
Next b
Next a
'The following line will print "Hello World!" over the lines we've drawn.
Print "Hello world!!"
Sleep
End
`
Platform Differences

- In DOS, Windowing and OpenGL related switches are not available, see also GfxLib overview

Dialect Differences

- Not available in the -lang qb dialect unless referenced with the alias `__Screenres`.

Differences from QB

- New to FreeBASIC

See also

- `Screen` The QB-like way to set graphics mode
- `ScreenList` Check display modes available for FB GfxLib to use
- `ScreenControl` Select driver and more
- `ScreenLock`
- `ScreenUnlock`
- `ScreenPtr` Semi-low level access
- `ScreenSet`
- `ScreenCopy`
- `ScreenInfo`
- `ScreenGLProc`
- `Internal pixel formats`