Hi Guys,
This is Not specifically an Irrlicht question, but it is the kind of question an Irrlicht developer might be able to answer.
The problem is this (and no, it's not a homework problem, or anything like it): On a frame-by-frame basis, overlay the Windows (xp through 7) desktop with an image coming from another application, but combine them using a custom composting algorithm. This should be able to display over any standard window (web browser, word processor, anything non-video for now).
Notes: First- yes, I am aware of windows Layered Windows- their alpha blending does not do what I need. I have written the blending function I need.
Second- I have already tried various screen-shot and screen-cast techniques- grabbing a bmp of the screen, editing it, and redisplaying will (quite predictably) create unacceptable degrees of flicker. Hiding the real desktop has a similar issue, as does hiding and re-displaying the overlay image.
Third- making use of DirectX, OGL, Direct3d, Direct2d, DirectShow or other OS standards is 100% ok. Talking to NVIDIA and ATI/AMD drivers directly is allowed only if potentially reproducible on any modern card (allowing for using different versions for different cards).
Anybody have any thoughts?
Best,
Rob
Low Level Windows Graphics Question- Desktop HUD
Re: Low Level Windows Graphics Question- Desktop HUD
Windows doesn't work on a frame-by-frame basis. It only updates portions of the screen at any one time. Basically, when a Window changes (be it an actual window or a GUI element; if you're not familiar with Windows programming, every element is technically also a window in and of itself), its space on the screen is invalidated and a WM_DRAW message is sent to it.
Put simply, Windows doesn't re-draw the entire screen every frame. It only redraws bits at a time, which would make taking a screenshot and editing it the best option.
On that note,
Put simply, Windows doesn't re-draw the entire screen every frame. It only redraws bits at a time, which would make taking a screenshot and editing it the best option.
On that note,
It wouldn't flicker if you do your edit on a back buffer before posting it to the screen, as opposed to editing the screen image directly.Rob3 wrote:Second- I have already tried various screen-shot and screen-cast techniques- grabbing a bmp of the screen, editing it, and redisplaying will (quite predictably) create unacceptable degrees of flicker. Hiding the real desktop has a similar issue, as does hiding and re-displaying the overlay image.