On Thu, 25 Oct 2001, Sottek, Matthew J wrote:

> 
>  In light of ReputImage(), which I was unaware of. I think the first
> proposal was best. I can make ReputImage() work without copying all
> the data all the time.

   Assuming ReputImage() works.  I've never used it, but others
have (that doesn't mean it works correctly though). 

>   Rather than copy the visible part of the XvImage to the offscreen
> memory starting as the top left of the offscreen buffer, I'll copy
> the visible region to the same x,y coordinates in the offscreen
> memory. When the window moves triggering a Reput() either I can
> show the newly exposed region as zero'd or clip the overlay to the
> area that I actually have data for. Either way it is better than
> leaving the overlay in the wrong screen location.

    That sounds OK.  I didn't consider using Reput unless
I wanted to autohandle exposures, but I guess there's no
need for that since the client will get an expose anyhow.
Hope ReputImage() works as expected.

> 
> Here is the proposal again, if there are on complaints I'll
> implement it this way.
> 
> #define XV_HOLD         0x0
> #define XV_TOP_FIELD    0x1
> #define XV_BOTTOM_FIELD 0x2
> #define XV_FRAME        (XV_TOP_FIELD | XV_BOTTOM_FIELD)

   Sounds OK to me.

> 
> The atom XV_FRAME_TYPE can be set to one of the above values.
> XvShmPutImage takes either an interlaced or progressive image
> and copies both fields to the offscreen area. If XV_FRAME_TYPE
> is not XV_HOLD the overlay is updated with the new data right
> away. When it is XV_HOLD the overlay is not updated.
> 
> At any time the atom can be set to XV_TOP_FIELD or XV_BOTTOM_FIELD
> or XV_FRAME to display the result of the last XvShmPutImage.
> 
> Mark, if we make use of Reput() couldn't you then make Blitted video
> work? Reput() would just update the position during XV_HOLD but
> not make a copy. Then when XV_TOP_FIELD was set the coordinates
> would always be correct. Reput() could either do nothing or just
> update the valid area when XV_FRAME_TYPE != XV_HOLD.
> 
  
   Assuming ReputImage() works properly and you still have the
data around.  Implementations that supply the data via the
DMA buffer (like color expansion data) can't do much about that
unless you saved off a spare copy.


                                Mark.

_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to