Jak maxsymalnie i bezpiecznie przyspieszyć graphic w JFrame gdyż miałem zrobić silnik graficzny i chyba zbyt wolny by był...
Pisz bezpośredno po pamięci karty graficznej zapalając piksele które ci potrzebne. Szybciej nie będzie.
Coś o tym słyszałem ale jak to zrobić w JAVA ?!
Może LWJGL ?
Podajcie mi konkretny kod który mi pixela narysuje w okienku tą metodą :) Bo innaczej to pewnie nam dłułgo zejdzie na gadaniu a ja i tak nic z tego nie zrozumeim :)
Ale to ty masz napisac silnik
Czy w końcu mi pomożecie ? Na początku to coś jeszcze mi pomagaliście...Rozumiem że bardzo się zżyliśmy na tym forum ale chce się też czegoś dowiedzieć... :)
Odpowiedź jest prosta - Swing nie służy do tego typu aplikacji, ich koncepcja jest zupełnie różna. Propozycje czegoś innego już dostałeś, to m.in. LWJGL
No przecież @Shalom Ci napisał. Chcesz przyspieszać frameworki, które ktoś wcześniej optymalizował? Bierz ASM i pisz po pamięci karty. Przecież uczysz się ASM. Na jaką pomoc liczysz w ogóle? Że ktoś Ci przepisze całe biblioteki po to, żeby zrobić optymalizację czegoś co ktoś już dostatecznie zoptymalizował?
Czyli JFrame odpada ? No to gdzie tą grę napisać by była maxsymalnie szybka ?
Całkiem się już pogubiłem... Da się to zrobić w Java ?
Może zacznijmy od początku... Jaki problem masz z obecnym rozwiązaniem które wykorzystujesz? Co w ogóle próbujesz na tym JFrame rysować?
Wydajne graficznie rzeczy w Javie da się zrobić, ale nie w Swingu czy innych podobnych frameworkach bardziej do aplikacji okienkowych niż do gier. Wysoko wydajną grafikę możesz osiągnąć wykorzystując LWJGL, JOGL, libGDX czy chociażby jMonkeyEngine.
A jak zrobili LWJGL skoro to nie jest wbudowane w Java ? No to musi być jakiś sposób ! @Shalom musi wiedzieć jak przspieszyć grafikę !!!
Dajcie mi gotowy kod który mi tymi waszymi metodami narysuje pixela. Wtedy będę szczęśliwy :) Nie chce z takich gotowców korzystać. No może to takie do końca gotowce nie są ale chyba da się to zrobić bez LWJGL. No bo w takim razie jak to w LWJGL zrobili ? Skoro bez gotowców w LWJGL zrobili to jest jakiś sposób :)
Dajcie mi gotowy kod który mi tymi waszymi metodami narysuje pixela. Wtedy będę szczęśliwy
Proszzzzz...
org 100h
; Ustawienie trypu VGA 16 kolorow
mov ax,012h
int 10h
; Zapalenie piksela i ustawienie koloru
mov ah,0ch
mov al,12; 12 - kolor czerwony
int 10h
; Koniec programu
mov ax, 4c00h
int 21h
Zapalenie jednego piksela na ekranie (o wybranym kolorze, a co!)
Kompilujesz przez nasm -o plik.exe plik.asm
gdzie plik.asm
to plik z powyższym kodem. Najlepiej pod DOSBoxem.
A dalej... to już tylko Twoja kreatywność...
@Xix daj sobie spokoj z tym programowaniem moze, jest tyle ciekawych rzeczy ktore mozna robic w tym zakresie a ty akurat wybrales zakladanie niepowaznych tematow na forum, ja rozumiem za masz duzo wolnego czasu, ale sa pewne granice :)
Powiedzcie jak konkretnie to wszystko zrobić z użyciem bibliotek standardowych Java i czy tak się w ogóle da ?
Dobra decyduje się na razie na LWJGL.
LWJGL korzysta z natywnych bibliotek poprzez interfejs JNI.
Obecnie nie pisze się bezpośrednio po pamięci karty graficznej z poziomu aplikacji, bo taki putpixel musi być:
- przetworzony przez sterownik,
- zapakowany w polecenie dla karty graficznej,
- przesłany przez szynę PCI-Express,
- polecenie musi być wykonane przez kartę graficzną,
- a następnie trzeba czekać na sygnał, że polecenie się zakończyło,
Narzut ogromny.
Kolejna sprawa to środowisko:
- system operacyjny ma własny kompozytor okien (czy jak to tam nazwać), który renderuje zawartość okien i to jemu trzeba zgłaszać polecenia do wykonania,
- można jednak użyć trybu pełnoekranowego, gdzie ma się pełną władzę nad ekranem, ale tu i tak są problemy typu synchronizacja,