ScreenControl
 
Sets or gets internal graphics library settings

Syntax

Declare Sub ScreenControl ( ByVal what As Integer, ByRef param1 As Integer = 0, ByRef param2 As Integer = 0, ByRef param3 As Integer = 0, ByRef param4 As Integer = 0 )
Declare Sub ScreenControl ( ByVal what As Integer, ByRef param As String =
"" )

Usage

ScreenControl( what [, [ param1 ][, [ param2 ][, [ param3 ][, [ param4 ]]]]] )
or,
ScreenControl( what [, param ] )

Parameters

what
specifies the function to perform
param1
optional first integer parameter, contains value to be set on entry or value got on exit
param2
optional second integer parameter, contains value to be set on entry or value got on exit
param3
optional third integer parameter, contains value to be set on entry or value got on exit
param4
optional fourth integer parameter, contains value to be set on entry or value got on exit
param
optional string parameter, contains text to be set on entry or text got on exit

Description


This function can be used to set or get internal GfxLib states. The what parameter specifies which operation to perform. On operations that set states, the param* parameters must contain the values to be set. On operations that get states, param* will hold the values returned by GfxLib when the function returns.
The meaning of the param* parameters depend on the what parameter, whose possible values are defined as constants in fbgfx.bi. In lang fb, they are set to be stored in the FB Namespace.
Below is a list of the supported what constants - and their values as defined at time of writing - along with the parameters associated with them.

Supported operations
Note: * denotes operations that are allowed while a graphics mode has not yet been set via Screen (Graphics) or ScreenRes. For all other operations, return values are zero(0) or the empty string("") and the operation has no effect if a graphics mode is not available at call time.

Get operations
  • GET_WINDOW_POS (0) Returns the current window position, in desktop coordinates.
[OUT] param1 x
[OUT] param2 y
  • * GET_WINDOW_TITLE (1) Returns the title of the program window.
[OUT] param title
  • GET_WINDOW_HANDLE (2) Returns a handle to the program window.
[OUT] param1 handle; this is a HWND in Windows, a "Window" XID in X11
  • * GET_DESKTOP_SIZE (3) Returns the desktop size, in pixels.
[OUT] param1 width
[OUT] param2 height
  • GET_SCREEN_SIZE (4) Returns the current screen size in pixels.
[OUT] param1 width
[OUT] param2 height
  • GET_SCREEN_DEPTH (5) Returns current graphics mode screen depth.
[OUT] param1 bits per pixel
  • GET_SCREEN_BPP (6) Returns current graphics mode BPP.
[OUT] param1 bytes per pixel
  • GET_SCREEN_PITCH (7) Returns the current graphics mode framebuffer pitch, in bytes.
[OUT] param1 pitch
  • GET_SCREEN_REFRESH (8) Returns the current graphics mode refresh rate, in hertz.
[OUT] param1 rate
  • GET_DRIVER_NAME (9) Returns the current graphics mode driver name.
[OUT] param name
  • GET_TRANSPARENT_COLOR (10) Returns the transparent color value for the current graphics mode depth.
[OUT] param1 value
  • GET_VIEWPORT (11) Returns the current viewport as set by the View (Graphics) statement, in screen coordinates.
[OUT] param1 x1
[OUT] param2 y1
[OUT] param3 x2
[OUT] param4 y2
  • GET_PEN_POS (12) Returns the last graphical pen position, in screen coordinates. This position is used in graphics functions supporting relative coordinates using the Step keyword.
[OUT] param1 x
[OUT] param2 y
  • GET_COLOR (13) Returns the current graphics mode color.
[OUT] param1 foreground
[OUT] param2 background
  • GET_ALPHA_PRIMITIVES (14) Returns if primitives drawing support for alpha channel is enabled.
[OUT] param1 TRUE (-1) if alpha primitives is enabled, FALSE (0) otherwise
  • GET_GL_EXTENSIONS (15) Returns a string holding all supported GL extensions, or the empty string if not in OpenGL mode.
[OUT] param supported GL extensions
  • GET_HIGH_PRIORITY (16) Returns if GFX_HIGH_PRIORITY was specified in the flags passed to Screen or ScreenRes.
[OUT] param1 higher priority graphics processing enabled

Set operations
  • SET_WINDOW_POS (100) Sets the current program window position, in desktop coordinates.
[IN] param1 x
[IN] param2 y
  • * SET_WINDOW_TITLE (101) Sets the current program window title. This is equivalent to calling WindowTitle( param ).
[IN] param title
  • SET_PEN_POS (102) Sets the current graphical pen position, in screen coordinates. This position is used in graphics functions supporting relative coordinates using the Step keyword.
[IN] param1 x
[IN] param2 y
  • * SET_DRIVER_NAME (103) Sets the name of the internal graphics driver to be used in subsequent calls to Screen or ScreenRes.
[IN] param driver name
  • SET_ALPHA_PRIMITIVES (104) Sets if primitives drawing should honor alpha channel.
[IN] param1 enabled
  • * SET_GL_COLOR_BITS (105) Sets the number of bits dedicated to the OpenGL color buffer
[IN] param1 bits
  • * SET_GL_COLOR_RED_BITS (106) Sets the number of bits dedicated to the red component of the OpenGL color buffer
[IN] param1 bits
  • * SET_GL_COLOR_GREEN_BITS (107) Sets the number of bits dedicated to the green component of the OpenGL color buffer
[IN] param1 bits
  • * SET_GL_COLOR_BLUE_BITS (108) Sets the number of bits dedicated to the blue component of the OpenGL color buffer
[IN] param1 bits
  • * SET_GL_COLOR_ALPHA_BITS (109) Sets the number of bits dedicated to the alpha component of the OpenGL color buffer
[IN] param1 bits
  • * SET_GL_DEPTH_BITS (110) Sets the number of bits dedicated to the OpenGL depth buffer
[IN] param1 bits
  • * SET_GL_STENCIL_BITS (111) Sets the number of bits dedicated to the OpenGL stencil buffer
[IN] param1 bits
  • * SET_GL_ACCUM_BITS (112) Sets the number of bits dedicated to the OpenGL accumulation buffer
[IN] param1 bits
  • * SET_GL_ACCUM_RED_BITS (113) Sets the number of bits dedicated to the red component of the OpenGL accumulation buffer
[IN] param1 bits
  • * SET_GL_ACCUM_GREEN_BITS (114) Sets the number of bits dedicated to the green component of the OpenGL accumulation buffer
[IN] param1 bits
  • * SET_GL_ACCUM_BLUE_BITS (115) Sets the number of bits dedicated to the blue component of the OpenGL accumulation buffer
[IN] param1 bits
  • * SET_GL_ACCUM_ALPHA_BITS (116) Sets the number of bits dedicated to the alpha component of the OpenGL accumulation buffer
[IN] param1 bits
  • * SET_GL_NUM_SAMPLES (117) Sets the number of samples to be used for OpenGL multisampling
[IN] param1 samples

Other operations
  • POLL_EVENTS (200) Cause the library to poll all events, ie to check the system event queue, specifically used for retrieving keyboard and mouse events. This is most useful for OpenGL code where Flip is not used, as normally Flip will cause these events to be polled.

Example

'' include fbgfx.bi for some useful definitions
#include "fbgfx.bi"

Using fb

Dim e As EVENT
Dim As Integer x, y, pressed, col
Dim As Any Ptr img

ScreenRes 384, 64, 32,, GFX_SHAPED_WINDOW

'' create a fancy window shape
img = ImageCreate(48,8)
Draw String img, (0, 0), "GfxLib"
For y = 0 To 63
    For x = 0 To 383
        col = Point(x \ 8, y \ 8, img)
        If (col <> RGB(255, 0, 255)) Then
            col = RGB((x + y) And &hFF, (x + y) And &hFF, (x + y) And &hFF)
        End If
        PSet (x, y), col
    Next x
Next y

pressed = 0
Do
    If (ScreenEvent(@e)) Then
        Select Case e.type
        Case EVENT_MOUSE_BUTTON_PRESS
            pressed = -1
        Case EVENT_MOUSE_BUTTON_RELEASE
            pressed = 0
        Case EVENT_MOUSE_MOVE
            If (pressed) Then
                ScreenControl GET_WINDOW_POS, x, y
                ScreenControl SET_WINDOW_POS, x + e.dx, y + e.dy
            End If
        End Select
    End If
    Sleep 5
Loop While Not MultiKey(1)



Dialect Differences

  • Not available in the -lang qb dialect unless referenced with the alias __Screencontrol.

Differences from QB

  • New to FreeBASIC

See also

Сайт ПДСНПСР. Если ты патриот России - жми сюда!


Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research Institution home page

Боровское исследовательское учреждение - Bourabai Research Bourabai Research Institution