Prev: For PDO: How to forward request to next lower driver stack automatically in KMDF?
Next: Mirror Driver - how to pass Bitmap to user-mode app thought DrvEscape.
From: Attributesoft on 10 Jun 2007 08:04 On 10 , 14:34, Tim <timothy.j.gr...(a)gmail.com> wrote: > On 10 Jun, 07:05, Attributes...(a)gmail.com wrote: > > > Ivan Brugiolo, thank you very much for your answer.>- When the event rendez-vous has happened, > > >the controlling application will ask the display driver, > > >(for example, via [Ext|Draw]Escape) a convenient > > >representation of the changed content. > > > I want to get all changes for example in 50ms, I think this will more > > better way. > > So I need do that my Win32App will get only those changes thought > > DrvEscape. > > How can I do that my Win32App will get only changes for period 50ms? > > Maybe I need to get bitmap and to clear mirror surface every time when > > I call DrvEscape to get that result with only changes? > > With the Pull model above the mirror driver should accumulate the > dirty regions since the last time the user mode application asked for > the previous accumulation. Getting a normal user mode application to > be precise at 50ms is tricky, so maybe you could mark each record of a > dirty region with the current clock tick, and let the user mode > application sort it out (you're going to have lag over the network > anyway). > > Is this a hobby, or a commercial replacement for VNC, Windows Remote > Desktop ... > > Tim. Hobby. How can I accumulate the dirty regions? Do I need to make local variables or there is another way to do it?
From: Attributesoft on 10 Jun 2007 13:45 I achieve in using Mirror driver with Win32 thought DrvEscape. Now I need to do DrvEscape which returns buffer with screen changes which happened before last DrvEscape call. In which direction I need to do? Sorry for not correct English.
From: Ivan Brugiolo [MSFT] on 10 Jun 2007 16:28 You can accumulate the dirty regions by accumulating the bounding rect(s) and the CLIPOBJ information that is passed to the display driver to each DrvXXX call. By definition, it's a strict enough superset of the changed area. -- -- This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm <Attributesoft(a)gmail.com> wrote in message news:1181477053.513004.310630(a)g4g2000hsf.googlegroups.com... > On 10 , 14:34, Tim <timothy.j.gr...(a)gmail.com> wrote: >> On 10 Jun, 07:05, Attributes...(a)gmail.com wrote: >> >> > Ivan Brugiolo, thank you very much for your answer.>- When the event >> > rendez-vous has happened, >> > >the controlling application will ask the display driver, >> > >(for example, via [Ext|Draw]Escape) a convenient >> > >representation of the changed content. >> >> > I want to get all changes for example in 50ms, I think this will more >> > better way. >> > So I need do that my Win32App will get only those changes thought >> > DrvEscape. >> > How can I do that my Win32App will get only changes for period 50ms? >> > Maybe I need to get bitmap and to clear mirror surface every time when >> > I call DrvEscape to get that result with only changes? >> >> With the Pull model above the mirror driver should accumulate the >> dirty regions since the last time the user mode application asked for >> the previous accumulation. Getting a normal user mode application to >> be precise at 50ms is tricky, so maybe you could mark each record of a >> dirty region with the current clock tick, and let the user mode >> application sort it out (you're going to have lag over the network >> anyway). >> >> Is this a hobby, or a commercial replacement for VNC, Windows Remote >> Desktop ... >> >> Tim. > > Hobby. > How can I accumulate the dirty regions? > Do I need to make local variables or there is another way to do it? >
From: Attributesoft on 10 Jun 2007 17:06 Ivan, what can you about this article http://msdn2.microsoft.com/en-us/library/ms797870.aspx , I wanted to test it, but I don't found WNDDATA structure and DrvVideo function. >You can accumulate the dirty regions by accumulating >the bounding rect(s) and the CLIPOBJ information that >is passed to the display driver to each DrvXXX call. >By definition, it's a strict enough superset of the changed area. Mmm... maybe you right, but I'm afraid of overload because if I store array of CLIPOBJ it will get by time bigger and bigger. Sorry for not correct English. Vit.
From: Ivan Brugiolo [MSFT] on 10 Jun 2007 19:50
The added value of your code would naturally be to meaningfully union the rectangles in the CLIPOBJs. There is no free bread for waht you are trying to do. -- -- This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm <Attributesoft(a)gmail.com> wrote in message news:1181509615.860750.135580(a)g4g2000hsf.googlegroups.com... > Ivan, what can you about this article > http://msdn2.microsoft.com/en-us/library/ms797870.aspx > , I wanted to test it, but I don't found WNDDATA structure and > DrvVideo function. >>You can accumulate the dirty regions by accumulating >>the bounding rect(s) and the CLIPOBJ information that >>is passed to the display driver to each DrvXXX call. >>By definition, it's a strict enough superset of the changed area. > Mmm... maybe you right, but I'm afraid of overload because if I store > array of CLIPOBJ it will get by time bigger and bigger. > Sorry for not correct English. > > Vit. > |