Iex 0.3 Coding Progress

Very smooth again! Kudos again to you siwu (Y)

Just one question: how do you get the image for layered windows?

#99070

Originally posted by AndreasV@Jan 13 2004, 12:24 AM

Very smooth again! Kudos again to you siwu  (Y)

Just one question: how do you get the image for layered windows?

Like the others, by calling the PrintWindow() API. Unfortunately I can't find any way to properly capture Layered Windows.

I know there is a way coz when you put the Spy++ on a layered window with a strange shape, it draw around the shape, not around a rect. Like the one returned by GetWindowRect().

I maybe have to try regions, but it will be a pain in the ass.

Or maybe I can tell Windows to make the visible part of a layered window a special color, to enable color keying blitting.

I have to do more search on that :)

#99073

@siwu: check out the CAPTUREBLT constant with Bitblt() :) I hope that helps, I am going to sleep now :)

#99082

siwu, you are so fast man, this rocks. with each one, i get more excited about the final release. :woot: :woot: :woot:

#99084

Originally posted by AndreasV@Jan 12 2004, 10:44 PM

@siwu: check out  the CAPTUREBLT constant  with Bitblt() :) I hope that helps, I am going to sleep now :)

Yup, that should do it. I used that constant for my capture docklet to caputer layered windows. Good luck! :)

#99087

is this app written in c++?

#99094

Well, the problem with BitBlt() is that you can't capture a window that is hidden by another :/

I have to make it active, then capture it. Problem I don't have with PrintWindow().

Am I stupid or is it a known problem ?

@rooskee:

yes, it is written in C++ using Visual Studio .NET 2003 and the DirectX 9.0 SDK :)

#99110

i ran the exe but it crashed my sys and had to restart :(

(i only got black screen, then my sys just stopped, alt+f4 or ctl+alt+del didn`t help, i had to restart)

i wanna try iEx .3 test :cry:

#99120

OH YEA! I like the way this is going... you implemented the capture of windows on all screens now! Whoohoo! In the beginning, I was kinda stunned, then I realized that it was the windows I have open on my other monitor!

Keep it up! :bow:

#99153

I got an error saying I'm missing MSVCR71.dll

#99181

read the thread and do what andreas told someone with the same/similar error to do ;)

#99185

(Y)

Excellent job on the new version so far siwu. I'm sure it's going to be smashing. :D

#99218

Oh Oh !!

Looks like serious thins are begining :)

What you have here is an almost working version of iEx :)

It's still a test app, but in order to test I had to implement some functions and at the end it looks like iEx lol :)

Just start the program, do something else, press F9, see expose :)

click on a window, it brings it to the foreground, wait 5s and exit the program. Just in order for you to see the transition between the real and the directdraw window :)

Enough talking, let's try it ! ;)

DDrawTest.zip

Attachment: DDrawTest.zip

#99219

Oh my God! Brilliant! You're almost there. :woot:

#99223

Wow Siwu, you are continuing to impress me. If this is any indication of how good the final version will be then I totally look forward to it. :naughty: :bow:

#99225

this is insane.

I love it! The movments are pretty smooth so far.

I am definitely glad that you went away form OpenGL, that means that I could very well use this app!

#99237

Looks good Siwu! (Y) (Y) (Y)

#99256

:woot:

Now, looking forward to its release... :naughty:

#99258

o wow, i am thoroughly impressed! this is moving along so quickly!

#99278

excelent work so far... 24 hours and this :blink: thats mind blowing. anyway i was just messing around with the real expose and was wondering if the F11 effect was possible under XP

OSX Expose

anyway, if not, no biggie... just would be a neat feature.

-The Unknown

#99317

siwu: you are right about the bitblt() and covered windows problem, stupid Windows WM_PAINT idea.

For layered windows, you can try to use the following trick: Hide all none layered windows temporarly, bitblt the layered windows (they should be small sized, so it won't take long) and reset the windows again.

Because you probably also want to blt the desktop, you can also take a snapshot of the screen when only layered windows are visible without specifying the CAPTUREBLT flag. This way, you get an image from the current desktop and because layered windows are not copied onto the image and all other windows are hidden, you get your prefered background :) .

Take a look at the BeginDeferWindowPos() and EndDeferWindowPos() functions to reposition all windows within a single refresh-cycle.

Good luck and keep the good work goin',

Andreas

#99331

I am having huge problems:

A. at 1600x1200, the screen turns black and nothing happens

B. at 1280x1024, the screen flickers and nothing happens

Yes I have the runtimes, before I just got an error, and I have direct x 9.

#99341

Originally posted by AndreasV@Jan 13 2004, 02:38 PM

siwu: you are right about the bitblt() and covered windows problem, stupid Windows WM_PAINT idea.

For layered windows, you can try to use the following trick: Hide all none layered windows temporarly, bitblt the layered windows (they should be small sized, so it won't take long) and reset the windows again.

Because you probably also want to blt the desktop, you can also take a snapshot of the screen when only layered windows are visible without specifying the CAPTUREBLT flag. This way, you get an image from the current desktop and because layered windows are not copied onto the image and all other windows are hidden, you get your prefered background :) .

Take a look at the BeginDeferWindowPos() and EndDeferWindowPos() functions to reposition all windows within a single refresh-cycle.

Good luck and keep the good work goin',

Andreas

Oh, I was using a trick in iEx 0.2 to do this:

actually I've done it by deactivating the WS_VISIBLE flag, and when all windows are not visible, do a refresh of the DesktopWindow :)

But maybe this function is faster :) I think it is ;)

Also, I'm starting coding the real iEx so no more test apps for now.

I'll send some betas to some people, but don't ask, I've already choose who's gonna test it :)

But don't deseperate, I still have some tests to do so maybe I'll post some proggies, but it's not guaranteed :)

Also, I would love to see how smooth the test app is going on some low-end machines.

don't forget to tell the CPU used, the total RAM and more important the GRAPHIC card used, because it highly depends on it.

in the mean time :)

#99348

Originally posted by juno@Jan 13 2004, 02:57 PM

I am having huge problems:

A. at 1600x1200, the screen turns black and nothing happens

B. at 1280x1024, the screen flickers and nothing happens

Yes I have the runtimes, before I just got an error, and I have direct x 9.

try to set the screen to 32bpp. Also, when you launched the test app, DON"T click anywhere on the screen, and press F9.

If this don't work, wait iEx 0.3 :)

#99350