Autore Topic: Display server e memoria del processo  (Letto 474 volte)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Display server e memoria del processo
« il: 26 Novembre 2014, 15:10:17 »
Come saprete una Image è memorizzata nelle memoria del processo mentre una Picture è dentro il display server. Non ho mai capito però il perchè di questa differenza e quali sono i vantaggi/svantaggi di queste 2 soluzioni.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.281
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Display server e memoria del processo
« Risposta #1 il: 28 Novembre 2014, 00:29:26 »
Ritengo che con la variabile di tipo Image il caricamento e la eventuale gestione successiva dei dati dell'immagine avviene da parte delle risorse di Gambas attraverso funzioni delle librerie grafiche (magari pure della libreria X11) e probabilmente anche proprie. Ogni procedura avviene, però, - come già scritto - strettamente nell'ambito di Gambas: esso continua a tenere e gestire il controllo diretto dei dati dell'immagine caricata. A riprova di ciò, basta notare quanti metodi e proprietà mette a disposizione la Classe Image.

Nel momento in cui con la proprietà .Picture della Classe Image convertiamo una variabile di tipo Image in una Picture, ritengo che disponiamo la cessione dei dati al server display X. In sostanza consegnamo i dati dell'immagine alle risorse della libreria X, affinché li gestiscano facendo apparire in fine praticamente l'immagine.
Dunque, Gambas, caricati ed eventualmente manipolati i dati dell'immagine, li consegna, li cede al Server X, ossia all'azione, alle procedure ed alle funzioni di X secondo il protocollo di questo. Da questo momento è il server grafico X ad operare: Gambas non esercita più alcuna azione e potere su quei dati (salvo riprenderli in consegna su di sé con la proprietà .Image della Classe Picture).
« Ultima modifica: 28 Novembre 2014, 23:34:03 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 960
    • Mostra profilo
Re: Display server e memoria del processo
« Risposta #2 il: 28 Novembre 2014, 15:01:13 »
Allora se ho capito bene Image serve per lavorare sull'immagine, mentre Picture la visualizza. O dico una boiata? :)
Anche perchè vedo che i metodi di Paint possono lavorare sia sulle Image che sulle Picture.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.281
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Display server e memoria del processo
« Risposta #3 il: 28 Novembre 2014, 23:32:54 »
Allora se ho capito bene Image serve per lavorare sull'immagine, mentre Picture la visualizza.
In Gambas, come si sa, è sostanzialmente così.


Anche perchè vedo che i metodi di Paint possono lavorare sia sulle Image che sulle Picture.
Sì; bisognerebbe vedere nei sorgenti di Gambas ''Paint'' e ''Draw'' a quali librerie grafiche fanno riferimento e come vanno a raccogliere ed operare con quei dati rappresentati in Gambas dalle "Image" e dalle "PIcture".
Tieni conto ad ogni modo che la libreria del sistema X non si limita semplicemente a generare le finestre (...anche in ultima analisi quelle di Gambas) e/o a mostrare in esse le immagini, ma consente anche di effettuare qualche manipolazione a basso livello dei dati immagine:
http://tronche.com/gui/x/xlib/utilities/manipulating-images.html
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »