Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DirectX & Delphi

[es] :: Pascal / Delphi / Kylix :: DirectX & Delphi

[ Pregleda: 1348 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon DirectX & Delphi05.03.2014. u 15:07 - pre 82 meseci
Da li se neko zezao sa DirectX-om u Delphiju? Konkretno bih trebao da odradim 2D igru, trenutno iscrtavam sve pomocu GDI-ja, ali posto imam 50+ layera i javlja se potreba za animacijama, treba mi neko bolje resenje od iscrtavanja promocu GDI-ja. Poceo sam da radim sa AsphyreSphinx frameworkom (http://www.afterwarp.net/products/asphyresphinx3), i sve radi super, medjutim u jednom trenutku mogu da budu otvorena 4-5 ista prozora igre koja renderuju scenu, a ne mogu da se snadjem u Asphyre-u kako da ovo izvedem. Cini mi se da nemaju bas najsrecnije odradjenu podrsku za ovo, ili nesto ne znam. Pokusao sam da dodam elemente u SwapChain, po jedan za svaki prozor, pa da renderujem odredjeni element po prozoru, ali mi ne radi kako treba, javljaju se cudni glitchevi. Pokusao sam i da kreiram po jedan DX device za svaki prozor, ali ni to ne pije vodu.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 790
..ppoe.dyn.broadband.blic.net.



+61 Profil

icon Re: DirectX & Delphi06.03.2014. u 17:19 - pre 81 meseci
A da dodas thread-ove za dodatne prozore?

Koliko se secam rada sa Asphyre komponentima, DirectX engine sve sto mu nabacujes baferuje, a prikaz odradjuje sam hardver kartice. Prema tome, probaj da radis rendering iz thread-a (ili vise njih).

Pozz

P.S. Davno bilo, pa ako sam nesto omasio, nije namerno... ali se bas secam da sam radio/crtao iz (bar jednog) worker thread-a.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: DirectX & Delphi06.03.2014. u 17:27 - pre 81 meseci
Hvala, resio sam problem u medjuvremenu. Moja ideja je bila da koristim po jedan element u swapchainu za svaki prozor (sto je i najbolje resenje za renderovanje vise prozora, koliko sam izguglao) umesto pravljenja posebnog device-a za svaki prozor, ali mi Asphyre nije dozvoljavao da dodam novi element (kada se otvori nova forma) u chain, jer je device already in use. Tako da sam kreirao dummy window sa AllocateHwnd(), unapred dodao 32 elementa sa tim wnd handleom, i onda kada se otvori novi prozor, prodjem kroz swapchain array, nadjem prvi element koji ima dummy window hwnd, zamenim ga sa handleom prozora u kojem treba da se iscrtava i to radi perfektno. Kada se zatvori prozor, taj element samo resetujem nazad na dummy hwnd, kako bi sledeci prozori mogli da ga koriste.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: DirectX & Delphi

[ Pregleda: 1348 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.