Tworzę grę w java i używam BufferedImages do renderowania treści na ekranie. Miałem problemy z wydajnością na komputerach o niskim końcu, gdzie gra ma działać, więc przełączyłem się na VolatileImage, które zwykle są szybsze. Chyba że spowalniają całą sprawę.Java: VolatileImage wolniej niż BufferedImage
Obrazy są tworzone za pomocą GraphicsConfiguration.createCompatibleVolatileImage (...) i są rysowane na ekranie za pomocą Graphics.drawImage(...) (należy kliknąć link, aby zobaczyć, który konkretnie). Są rysowane na płótnie za pomocą podwójnego buforowania.
Czy ktoś ma pojęcie, co dzieje się tutaj?
Zauważyłem to samo. – Hardcoded
Jeśli brakuje ci pamięci na karcie graficznej, to oczywiście nie pomoże. IIRC, "BufferedImage" miał kilka przyspieszeń, więc różnica może nie być tak duża jak kiedyś. –
@Norswap: Naprawdę uważam, że znalezienie na to świetnej odpowiedzi polega na znalezieniu najlepszych gier Java w Open Source (na pewno jest ich kilka) lub świetnym świetnym demo Java (z "sceny demo") i spróbowania zrozumieć zrobili. Kiedyś programowałem gry i dema na * bardzo * egzotycznym sprzęcie (takim jak Amiga, SNES, tryb 13x itd.) I nadal nie wiem jak poprawnie "wypychać piksele" w Javie. Jest to po raz kolejny domena, w której Java została "nadmiernie wyolbrzymiona" i jest niepotrzebnie skomplikowana. Nie wstrzymuję oddechu dla kogoś, kto jest tutaj na tyle, by móc naprawdę pomóc. – SyntaxT3rr0r