Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff
Koop een snellere computer
No kidding, layered windows (WS_EX_LAYERED) leveren een flinke performancehit op tov. normale windows. Op een 2Ghz bak loopt het allemaal perfect, maar op 500Mhz of minder is het best pijnlijk hier en daar.
No kidding, layered windows (WS_EX_LAYERED) leveren een flinke performancehit op tov. normale windows. Op een 2Ghz bak loopt het allemaal perfect, maar op 500Mhz of minder is het best pijnlijk hier en daar.
Tja, ik had daar een klein beetje rekening mee gehouden, maar in principe is een AMD 1.4 en geforce 2 gts pro 64mb toch voldoende, hmmz.
Is er dan nog een andere manier om de windows doorzichtig te maken, of moet ik dan weer direct aan opengl gaan denken?
Is er dan nog een andere manier om de windows doorzichtig te maken, of moet ik dan weer direct aan opengl gaan denken?
Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff
wat bedoel je met transparent? als je bepaalde delen gewoon 100% transparent en andere helemaal niet (als een GIF dus) gaat het quasi even snel. Alpha blend (ie waarbij de voor en achtergrond worden gemengd is altijd traag) OpenGL is hier geen oplossing want de GDI van windows gebruikt die niet (OS-X wel).
en dan nog een kwestie van smaak: semi transparent gedoe ziet er maar crap uit imho...
en dan nog een kwestie van smaak: semi transparent gedoe ziet er maar crap uit imho...
* curry684 heeft alles transparent op z'n desktop en vindt het er subliem uitzien en heerlijk werken dat je niet meer kwijtraakt 
Ontopic: AMD 1.4 met GF2GTS moet ruim voldoende zijn voor transparante windows...
Mag ik vragen hoe je de transparatie maakt?
Ontopic: AMD 1.4 met GF2GTS moet ruim voldoende zijn voor transparante windows...
Nou curry684 ik denk of door de W indows 2000 ingebouwde alpha blend functionaliteit (zat in GDI+ volgens mij) of maakt eerst het hele venster transparent. Vervolgens pak je met GeTDC() de image van de onderliggende area en vervolgens pas je een alpha routine toe (notie: je weet dan namelijk zowel de voorgrond als de achtergrond bitmap).
Ik zal de alpha blend routine nog wel eens opzoeken, weet ik zo niet uit me hoofd.
Overigens kun je ook de functie SetLayeredWindowAttributes in user32.dll gebruiken, maar dat werkt dus alleen in Windows 2000 en hoger.
Ik zal de alpha blend routine nog wel eens opzoeken, weet ik zo niet uit me hoofd.
Overigens kun je ook de functie SetLayeredWindowAttributes in user32.dll gebruiken, maar dat werkt dus alleen in Windows 2000 en hoger.
de alphablend op true en dan is de alphablendvalue variabel.curry684 schreef op 09 July 2003 @ 14:00:
Ontopic: AMD 1.4 met GF2GTS moet ruim voldoende zijn voor transparante windows...Mag ik vragen hoe je de transparatie maakt?
Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff
Lol @ alienfruit, dank voor het heel uitgebreid beantwoorden van mijn vraag maar ik denk dat je toch iets gemist hebt in mijn vraagstelling
Ik mag toch hopen dat ie het niet met de functie AlphaBlend doet (die overigens vanaf Win2k bestaat en in de normale GDI zit: GDI+ is een class-based nieuwe variant erop) want die maakt het inderdaad getikt langzaam.
De correcte methode is een window te maken met WS_EX_LAYERED extended style en idd SetLayeredWindowAttributes te gebruiken. Op die manier kan het echt niet op een 1.4Ghz continu onacceptabel traag zijn.
Ik mag toch hopen dat ie het niet met de functie AlphaBlend doet (die overigens vanaf Win2k bestaat en in de normale GDI zit: GDI+ is een class-based nieuwe variant erop) want die maakt het inderdaad getikt langzaam.
De correcte methode is een window te maken met WS_EX_LAYERED extended style en idd SetLayeredWindowAttributes te gebruiken. Op die manier kan het echt niet op een 1.4Ghz continu onacceptabel traag zijn.
Dan heb ik mijn antwoord want ik had het inderdaad met de gewone functie alphablend gedaancurry684 schreef op 09 July 2003 @ 17:35:
Lol @ alienfruit, dank voor het heel uitgebreid beantwoorden van mijn vraag maar ik denk dat je toch iets gemist hebt in mijn vraagstelling![]()
Ik mag toch hopen dat ie het niet met de functie AlphaBlend doet (die overigens vanaf Win2k bestaat en in de normale GDI zit: GDI+ is een class-based nieuwe variant erop) want die maakt het inderdaad getikt langzaam.
De correcte methode is een window te maken met WS_EX_LAYERED extended style en idd SetLayeredWindowAttributes te gebruiken. Op die manier kan het echt niet op een 1.4Ghz continu onacceptabel traag zijn.
Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff
hmmz. Ik heb nu dit gebruikt voor mijn window transparant te maken.
Eigenlijk levert dit niet veel betere prestaties op, maar al die applicaties die transparant zijn, hebben meestal een breedte van niet meer dan 150 pixels of zoiets. Dat geeft inderdaad absoluut geen problemen, maar als ik naar een breedt van meer dan 400 pixels ga, nou dan merk je dat wel.
btw. Ik denk dat ik ook een mindere grafische kaart heb. Leadtek winfast geforce2 gts pro 64mb.
C++:
1
2
3
4
| SetWindowLong(Handle,GWL_EXSTYLE, GetWindowLong(Handle,GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(Handle,NULL,150,LWA_ALPHA); |
Eigenlijk levert dit niet veel betere prestaties op, maar al die applicaties die transparant zijn, hebben meestal een breedte van niet meer dan 150 pixels of zoiets. Dat geeft inderdaad absoluut geen problemen, maar als ik naar een breedt van meer dan 400 pixels ga, nou dan merk je dat wel.
btw. Ik denk dat ik ook een mindere grafische kaart heb. Leadtek winfast geforce2 gts pro 64mb.
Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff
heeft niets met je graphics kaart te maken wel met cpu en snelheid van je normale mem. als je graphics kaart het alpha-blending zou doen je met een 400Mhz alles transparent zetten met een TNT2 kaartje. Alpha blend in software is gewoon traag voor volgende redenen:
a) mathematisch is het niet eenvoudig (echt geet pixel1+pixel2/2).
b) met grotere windows zijn er enorm veel pixels
c) doordat je window nu transparant is moet windows ook alles wat eronder staat gaan updaten. Net dit laatste is waar de GDI van Win32 zo enorm goed is. Tekent geen pixel te veel.
ik heb hier Trillian dat kun je ook transparent zetten en als het window klein is - geen probleem maar zodra het groter wordt of ik het moet gaan draggen over een andere app - een heel pak trager. (TNT2 + 400Mhz).
Overigens kun je in W2K+ ergens iets downloaden dat alle windows transparant kan zetten. Best wel grappig...
a) mathematisch is het niet eenvoudig (echt geet pixel1+pixel2/2).
b) met grotere windows zijn er enorm veel pixels
c) doordat je window nu transparant is moet windows ook alles wat eronder staat gaan updaten. Net dit laatste is waar de GDI van Win32 zo enorm goed is. Tekent geen pixel te veel.
ik heb hier Trillian dat kun je ook transparent zetten en als het window klein is - geen probleem maar zodra het groter wordt of ik het moet gaan draggen over een andere app - een heel pak trager. (TNT2 + 400Mhz).
Overigens kun je in W2K+ ergens iets downloaden dat alle windows transparant kan zetten. Best wel grappig...
Hobbit_be: ik snap wel dat je op 400Mhz + TNT2 problemen hebt, maar op een 1400Mhz bak met Gf2 mag het gewoon nauwelijks merkbaar zijn. Ik denk dat koli-man een beetje paranoia is 
Tevens gebeurt de alphablending indien beschikbaar wel hardwareaccelerated afaik.
Tevens gebeurt de alphablending indien beschikbaar wel hardwareaccelerated afaik.
als windows het hardware matig doet: hoedje af. Maar ik vraag me dan wel af: hoe?
en waarom is die dan zo traag? (als iets in hardware gebeurt maakt het bijna niets uit hoe groot iets is). En het gaat net even traag als ik mijn GF2 erin prop. (zit in mijn snelle machine: een 450
MET geluid zelfs
).
Ooh Sorry. Naja, nu weet je in iedergeval hoe het moet of kancurry684 schreef op 09 July 2003 @ 17:35:
De correcte methode is een window te maken met WS_EX_LAYERED extended style en idd SetLayeredWindowAttributes te gebruiken. Op die manier kan het echt niet op een 1.4Ghz continu onacceptabel traag zijn.
Heb de andere methode in iets andere vorm ook toegepast in één van me projecten voor school. Heb alleen nooit gekeken of het sneller of vergelijkbaar was met de windows2000 implementatie. Ach zo lang de leraar het snapt (grafisch opleiding en Delphi niet goeie combinatie <g>) is alles goed
Hmm. Overigens heb je helemaal gelijk over GDI/GDI+, heb volgens mij wat door elkaar gehaald.
[ Voor 8% gewijzigd door alienfruit op 09-07-2003 21:50 ]
Kan goed dat ik een beetje paranoia bencurry684 schreef op 09 July 2003 @ 20:58:
Hobbit_be: ik snap wel dat je op 400Mhz + TNT2 problemen hebt, maar op een 1400Mhz bak met Gf2 mag het gewoon nauwelijks merkbaar zijn. Ik denk dat koli-man een beetje paranoia is
Tja ik kan het niet laten zien, want als ik screenshots neem, dan ziet het er allemaal even scherp en zo uit.
Ach hou het er maar op dat ik een beetje paranoia ben
Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff
Pagina: 1