• 3 odgovora
  • 3.715 pregleda
dual monitor, prozori, directX 29.04.2007. u 03:13 · pre 237 meseci #1


Situacija je sledeca

- aplikacija 1 ... kontrola
- aplikacija 2 ... directX u fullscreenu na drugom monitoru (inace je DLL)

- aplikacija 1 je owner aplikacije 2 (i salje podatke aplikaciji 2)

problem:
- kad se uradi minimize aplikacije 1 drugi (fullscreen) se isto minimizira (izgubi) (isto i ako se klikne negde van app 1)

probao sam u CALLBACKu ukinuti WM_NCACTIVATE message... onda mi meniji ne rade u aplikaciji 1...
WM_ACTIVATEAPP isto ne donosi normalne rezultate

meni bi bilo jako fino da druga aplikacija bude stalno aktivna (vidljiva)

sta da se radi... koje message da blokiram u callbacku?

hvala,
b.
Re: dual monitor, prozori, directX 14.12.2007. u 13:25 · pre 229 meseci #2
Pa stvar je da to ne moze da se postigne u DirectX-u (koliko ja znam, a mozda i gresim).

Problem je u sledecem, cim aplikacija koja ide u fullscreen-u izgubi fokus u tom trenutku se aktivira minimize. To je tako napravljeno u DX9, ne znam da li je ispravljeno u DX10.

Ono sto bi mogao da uradis (kako sam ja resio taj problem), je da uradis slicnu stvar koju radi recimo Adobe Acrobat kada ide u full screen. Nemoj da ides u pravi full screen nego u fake full screen.
Kako to da uradis?
Napravis prozor bez gornjeg dela u kojem stoji ime prozora i stavis mu da bude dialog prozor.

SetWindowLong(Handle,-16,WS_DLGFRAME);

i onda ga pomeris za par piksela van ivice drugog ekrana i povecas ga za dovoljno da se ne vidi border. Mana tog resenja je da nemas punu directX akceleraciju tako da ce ti trazena aplikacija verovatno raditi za nijansu sporije.

Nadam se da ti je odgovor barem malkice pomogao.
Re: dual monitor, prozori, directX 18.12.2007. u 01:24 · pre 229 meseci #3
Mozes da napravis dva nezavisna programa pa da ondak preko message passing-a kontrolni salje podatke onom za prikaz.. to moze da se uradi preko soketa recimo ili RPC ( koji ce biti implementiran interno kao LPC pa su mali gubici u performansama).

ili

Pogledaj u pocetnoj fazi pravljenja prozora i DX device-a i ono sa enumeracijama video karti / monitora gde biras za koju graficku kartu i koji ekran pravis dx device pa napravi dva za svaki monitor po jedan i dva prozora... ako moze...
Potpis
Necu vise da radim ,bre !
Re: dual monitor, prozori, directX 18.12.2007. u 09:00 · pre 229 meseci #4

sve sam te varijante probao (i sockete i messaging)...

stvar je u tome sto aplikacija mora poslati na dx prozor 80ak mb/s (generalno i više) i pri tom ne sme kasniti/stucati ... probao sam srediti to sa share-anom memorijom... tu se isto izgubi dosta u vremena u kopiranju.

... hvala na odgovorima ... zezao sam se ovim pre dosta vremena, onda su me zatrpali neki drugi poslovi ... inace sredio sam delimicno problem sa presretanjem windows message-a ali to nije bas najstabilnije resenje problema.... najvise bih volio kad bih nekako mogao otkaciti moj prozor od aplikacije (inace u pitanju je plugin za after effects,u full screen prozoru su neke analize slike itd...)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme