Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: Top Fuel - 26 Novembre 2014, 15:10:17

Titolo: Display server e memoria del processo
Inserito da: Top Fuel - 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.
Titolo: Re: Display server e memoria del processo
Inserito da: vuott - 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).
Titolo: Re: Display server e memoria del processo
Inserito da: Top Fuel - 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.
Titolo: Re: Display server e memoria del processo
Inserito da: vuott - 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