Ottenere le dimensioni del monitor e la sua posizione sullo schermo con le funzioni esterne del API di Allegro 5

Da Gambas-it.org - Wikipedia.

La versione 5 della libreria Allegro consente anche di conoscere le dimensioni del monitor e la sua posizione sullo schermo.

Per poter fruire in Gambas delle risorse della libreria di Allegro 5, è necessario installare e richiamare la libreria dinamica e condivisa: "liballegro.so.5.0.10"


Mostriamo un semplice esempio:

Library "liballegro:5.0.10"

Public Struct ALLEGRO_MONITOR_INFO
  x1 As Integer
  y1 As Integer
  x2 As Integer
  y2 As Integer
End Struct

' uint32_t al_get_allegro_version (void)
' Returns the (compiled) version of the Allegro library.
Private Extern al_get_allegro_version() As Integer

' bool al_install_system (int version, int (*atexit_ptr)(void (*)(void)))
' Initialize the Allegro system.
Private Extern al_install_system(version As Integer, atexit_ptr As Pointer) As Boolean

' int al_get_num_video_adapters(void)
' Get the number of video "adapters" attached to the computer.
Private Extern al_get_num_video_adapters() As Integer

' bool al_get_monitor_info(int adapter, ALLEGRO_MONITOR_INFO *info)
' Get information about a monitor's position on the desktop.
Private Extern al_get_monitor_info(adapter As Integer, info As ALLEGRO_MONITOR_INFO) As Boolean

' void al_uninstall_system (void)
' Closes down the Allegro system.
Private Extern al_uninstall_system()


Public Sub Main()
 
 Dim monitor As New ALLEGRO_MONITOR_INFO
 Dim adapters As Integer
 Dim bo As Boolean
 
  If al_install_system(al_get_allegro_version(), 0) = False Then Error.Raise("Impossibile inizializzare la libreria Allegro 5 !")
   
  adapters = al_get_num_video_adapters()
   
  bo = al_get_monitor_info(adapters - 1, monitor)
  If bo = False Then Error.Raise("Impossibile ottenere informazioni del monitor !")
   
  With monitor
    Print .x1
    Print .y1
    Print .x2
    Print .y2
  End With
   
' Chiude la libreria "Allegro 5":
  al_uninstall_system()
  
End



Riferimenti