This is a MIME GnuPG-signed message. If you see this text, it means that
your E-mail or Usenet software does not support MIME signed messages.
The Internet standard for MIME PGP messages, RFC 2015, was published in 1996. To open this message correctly you will need to install E-mail or Usenet software that supports modern Internet standards.
https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:CopyArea
does not specify what happens when src-drawable and dst-drawable are the
same, and the source rectangle overlaps with the destination rectangle.
I would like to efficiently scroll a rectangle within my drawable by a specified amount. That is: shift all the pixels in the rectangle in the horizontal and/or vertical direction by some specified amount. Afterwards
there will be some exposed part of the rectangle that I'll proceed and
render appropriately, but for now I'm trying to determine what is the most efficient way to scroll the rectangle.
Say, for example, I need to take a 100x100 pixel rectangle whose upper-
left coordinates are (0, 0) and scroll it up by 10 pixels. Expressed purely
in CopyArea's terms this would be equivalent to:
src-drawable, dst-drawable: DRAWABLE (same drawable for both)
gc: CONTEXT
src-x: 0
src-y: 10
width: 100
height: 90
dst-x: 0
dst-y: 0
But, CopyArea does not specify how an overlapping CopyArea, like that, gets handled. This would have the expected result if the server copies the rectangle, row by row, from top to bottom; but not bottom to top.
I see only two possible ways to use CopyArea in this fashion:
- use a sequence of CopyArea calls, breaking up the entire rectangle into smaller non-overlapping CopyAreas. This seems to be rather inefficient if
the scrolling distance is very small, since this will translate into many CopyArea calls.
- use two CopyAreas calls, a CopyArea into a separate pixmap, then copy this back into the original drawable, into the destination rectangle. This would then require a pixmap to be as big as the rectangle getting scrolled, and be wasteful if the rectangle is big.
So, there is no preferred approach for scrolling rectangles, that I can see.
-----BEGIN PGP SIGNATURE-----
iQIcBAABAgAGBQJaf7IJAAoJEGs6Yr4nnb8lCy4P/2RQTN1yQALf1G0CvpxGw2H+ fiekj+h+URQ9wZ4bLX8Ak0WuaNpPRDOuhIh5dzrZYEDuEICCtoJtwyvcaUQAC/2V 79LyveOh/Z+ARFlKKQGw083BfY9Uc1G+c1fPEq0OvE7A+ZG49129ZfMDVHvB9V3a hEk45juYp1YjuULjn9CAoiFTJdlvqsc7gZAtQkluXtoE9tJcK3qTA1LqHCEEfN0N zhkB0HJc00yUV7c24Utt+5qQS0riXJh6wN8c4mfPhHaR0N66PBlu/0rLQGcHvSql Ri7sIaZ9Qe9LzQ5g9KxciLreytTlBIGhqbc6zTHD03zciOpL6gNdNE80pvyfgQB6 N/K4wpD5Um570oP/fVn5opQPH+h3uLVKBYb7kPH35JRC1fwBy5X9EmnGlKxIohRe /GR5DA5kUQAWP1gN6POCiSONnob/MzVcjnAgTBxvCfJkMsjuJeWncmWLgoCbAUrB JiXcLjUwUbWsZdeZDklPaEqMr0MDIlt3QIJmGsX+kYUghcPDfr88Bl1DlensWetB GwNwbnaaRH+TMiDJWvPpsTuCknPh2Vs7nwl2r82GS4f552rHUGMEigpq2dDPlPyC mGMk6IG0i8HW8ww4iH+whR1FbeZCGRbhNL4ZkDeozlEbiHXMd/KIgR32gjJDKftg quolp/n2J27+zc+mCfgd
=sVIc
-----END PGP SIGNATURE-----
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)