Robot(GD) specifies that this constructor is actually meant for multi-monitor setup with 2 independent screens and any coordinates passed to createScreenCapture() method would be interpreted as being in the same coordinate system as the specified screen.
Say I am creating a frame on the secondary monitor whose 'X' value starts at 1152. When I call Robot.createScreenCapture() with the above X coordinate where robot is created for the secondary monitor, it captures a black area on win32 but on linux+xinerama, it captures the contents properly. I feel win32 behavior is correct. It interprets 1152 with respect to sec. monitor assuming sec monitor starts at 0,0. So it captures some location that does not exist. But on Xinerama, Robot did not consider 1152 with respect to mon-2 and considers that as a virtual screen location which deviates from the spec.
This method must behave consistantly across all virtual screen setups, be it win32 or xinerama. This is reproducible since 1.4
I have attached a sample test. Execute the sample test on win32 as well as linux having virtual screen setups. You would see 2 frames. Click on 'capture'. Check whether the image shown on the other frame is captured properly. Click 'Move Frame'. This would change the GD associated with the frame. Click 'Capture' again. If it shows a black frame on win32 and captures the frame properly on xinerama, the bug is reproduced.
###@###.### 11/2/04 12:51 GMT