Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java, AWT ja monen kuvan DoubleBuffering

jumitusta [13.09.2010 15:01:34]

#

Seuraava ongelma... Aloin AWT:llä rakenteleen jotain(ennen Swingillä) mutta nyt en saa piirtämistä oikein toimiin.

1. Kysymys: Miten saan tehtyä, että erillisessä classissa piirrettäisiin jokin kuva(jota muutellaan vähän väliä) ja sitten se kuva lähetetään aina pää ohjelmalle(Applet)? Olen yrittänyt tehdä kuvan createImage:lla ja sitten createGraphics:n avulla piirtää, mutta pääohjelmalle lähetetty kuva on aina null. Minkä tyyppinen class pitäisi edes tehdä? Olen yrittänyt Canvasia, mutta onko ongelma että kun sitä itse canvasia ei lisätä ikinä pääohjelmaan, niin java ei vaivaudu suorittamaan paint komentoo ollenkaan?

2. Kysymys: Miten on paras tehdä monen kuvan tuplapuskurointi. Tarkoituksena on että ohjelmassani on 5 kuvaa, joita muutellaan vähän väliä(mieluiten erillisissä class tiedostoissa). Itse ajattelin tehdä sillain että kuvia muokataan erillisissä classeissa, ja sitten nämä kuvat lähetetään pääohjelmalle, joka sitten piirtää yhteen off-screen kuvaan nämä kaikki 5 saatua kuvaa jonka off-screen kuva piirretään näytölle.

Onko parempia ehdotuksia? esim. jos piirtää erillisiin Canvaseihin ja sitten lisää ne pääohjelmaan, mutta pystyykö silloin tekeen tuplapuskurointia?

jumitusta [14.09.2010 13:55:30]

#

No, tein tuon nyt sillain että kaikki muuttuva piirto tapahtuu pääohjelmassa. Ja sain tuon eri classissa kuvan piirtämisen toimiin vaihtamalla Imagen BufferedImageksi.

kpzpt [15.09.2010 10:06:50]

#

Doublebuffering!

Tuplabuffaamisessa tuo BufferedImage menettää teho käytössä aika usein kiihdytyksensä, eli siintä tulee aika hiton hidas.

Minä käyttäisin ainoastaan VolatileImage kuvia tuplabuffaamiseen, ovat hieman monimutkaisempia, mutta, vain hieman ja toimivat sitten grafiikkapiirin muistissa.

applet.createVolatileImage ( xx , yy );

//.....

Kiitos..

jumitusta [15.09.2010 23:44:17]

#

Kiitos vinkistä. Mutta en taida tehdä jotain oikein, koska nyt kun vaihdoin kaikki piirrettävät kuvat VolatileImage:ksi, niin java käyttää noin 40% tehoa, kun bufferedimageilla vei 20% ja selvästi nykii hiukan nyt.

edit: löysin netistä jotain että tuo olisi ehkä Windows Vista ongelma(itsellä juurikin se). No, taidan palata niihin BufferedImageihin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta