Revision [16286]
This is an old revision of KeyPgScreenres made by CountingPine on 2012-08-16 07:08:52.
SCREENRES
Initializes a graphics mode by specifying horizontal and vertical resolution
Syntax:
KeyPgDeclare declare KeyPgSub sub Screenres ( KeyPgByval byval width KeyPgAs as KeyPgInteger integer, KeyPgByval byval height KeyPgAs as KeyPgInteger integer, KeyPgByval byval depth KeyPgAs as KeyPgInteger integer = 8, KeyPgByval byval num_pages KeyPgAs as KeyPgInteger integer = 1, KeyPgByval byval flags KeyPgAs as KeyPgInteger integer = 0, KeyPgByval byval refresh_rate KeyPgAs as KeyPgInteger 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 KeyPgScreenlist 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 KeyPgOpExponentiate ^ depth colors of the 256-color palette used in KeyPgScreengraphics 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 KeyPgScreengraphics 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 KeyPgWidth Width function.
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 KeyPgWidth 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 GfxDefPalettes 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 GfxDefPalettes 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 KeyPgScreengraphics Screen (Graphics) keyword.
Examples:
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
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 GfxLib overview
Dialect Differences:
- Not available in the CompilerOptlang -lang qb dialect unless referenced with the alias __Screenres.
Differences from QB:
- New to FreeBASIC
See also:
- KeyPgScreengraphics Screen The QB-like way to set graphics mode
- KeyPgScreenlist Screenlist Check display modes available for FB GfxLib to use
- KeyPgScreencontrol Screencontrol Select driver and more
- KeyPgScreenlock Screenlock
- KeyPgScreenunlock Screenunlock
- KeyPgScreenptr Screenptr Semi-low level access
- KeyPgScreenset Screenset
- KeyPgScreencopy Screencopy
- KeyPgScreeninfo Screeninfo
- KeyPgScreenglproc Screenglproc
- GfxInternalFormats Internal pixel formats
Back to Screen Functions