Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    858

    [java] MemoryImageSource double buffering

    ho un problema con un oggetto MemoryImageSource che viene aggiornato da un Timer ogni 33msec richiamando la newPixels, questo provoca un fastidioso sfarfallio...

    ho letto in giro di "double buffer", oggetti VolatileImage con accellerazione 2d ecc...

    nessuno mi spiega meglio, magari facendo esempi?

    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Java, nel forum Java.

    Sposto.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    858
    ho provato a implementare il double buffer ma non cambia nulla

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    858
    nessuna risposta?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Originariamente inviato da submax82
    nessuna risposta?
    Devi avere un po' di pazienza... non tutti sono sempre sul forum.
    Inoltre, non hai riportato nemmeno una riga di codice, quindi, chiunque ti volesse aiutare dovrebbe comunque chiederti di postarlo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    858
    il codice è questo

    codice:
    class MemoryImagePanel extends JPanel {
        	private Image img;
        	private MemoryImageSource mis;
        	private int w,h;
    
        	public MemoryImagePanel(int w, int h, int[] pix, int off, int scan) {
        		this.w =w;
        		this.h = h;
        		setPreferredSize(new Dimension(w,h));
        		DirectColorModel dcm=new DirectColorModel(24, 0x00FF0000, 0x0000FF00, 0x000000FF);
        		mis=new MemoryImageSource(w,h,dcm,pix,off,scan);
        		mis.setAnimated(true);
        		mis.setFullBufferUpdates(true);
        		img=createImage(mis);
        	}
        	
        	 // Overwrite imageUpdate
        	public boolean imageUpdate(Image image, int i1, int j1, int k, int i2, int j2) {
        		return true;
        	} 
    
        	/** Draw the image on the panel. **/
        	public void paintComponent (Graphics g) {
        		mis.newPixels(0, 0, w, h);
        		g.drawImage(img, 0, 0, this);
        	} 
        }
    ma non funziona, o meglio lo sfarfallio e gli strappi rimangono... forse non ho capito il double buffering?

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    858
    idee?

  8. #8
    Non ho mai visto questa classe ma adesso provo a capirne qualcosa dal codice.
    Ma in ogni caso se vuoi sovrascrivere il metodo imageUpdate() devi mettere @Override nella riga precedente.
    Non so se conti molto.

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    858
    ma nessuno ha mai avuto questo problema in java?

    per esempio ho letto molto spesso che il problema si pone nei giochi scritti in java

  10. #10
    Originariamente inviato da liuton2005
    Ma in ogni caso se vuoi sovrascrivere il metodo imageUpdate() devi mettere @Override nella riga precedente.


    http://java.sun.com/docs/books/tutor...notations.html
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.