| Index: webrtc/modules/desktop_capture/screen_drawer.h
|
| diff --git a/webrtc/modules/desktop_capture/screen_drawer.h b/webrtc/modules/desktop_capture/screen_drawer.h
|
| index 899fc0f043b841f310ec1a2ae3f09f43875cc996..0ee243142ebddddacfb592f784e627de6b696040 100644
|
| --- a/webrtc/modules/desktop_capture/screen_drawer.h
|
| +++ b/webrtc/modules/desktop_capture/screen_drawer.h
|
| @@ -19,26 +19,39 @@
|
|
|
| namespace webrtc {
|
|
|
| -// A set of platform independent functions to draw various of shapes on the
|
| -// screen. This class is for testing ScreenCapturer* implementations only, and
|
| +// A set of basic platform dependent functions to draw various shapes on the
|
| +// screen.
|
| +// Usually ScreenPainter is preferred, instead of using this class directly. As
|
| +// ScreenPainter provides more complex shapes by using ScreenDrawer for each
|
| +// platform. This class is for testing ScreenCapturer* implementations only, and
|
| // should not be used in production logic.
|
| class ScreenDrawer {
|
| public:
|
| - // Creates a ScreenDrawer for the current platform.
|
| + // Creates a ScreenDrawer for the current platform, returns nullptr if no
|
| + // ScreenDrawer implementation available.
|
| static std::unique_ptr<ScreenDrawer> Create();
|
|
|
| ScreenDrawer() {}
|
| virtual ~ScreenDrawer() {}
|
|
|
| - // Returns a rect, on which this instance can draw.
|
| + // Returns a rectangle, on which this instance can draw. Note, this rectangle
|
| + // does not need to map to a physical monitor or a logic screen. ScreenDrawer
|
| + // does not guarantee drawing a point at (0, 0) means the point will be placed
|
| + // at (0, 0) of a monitor or a logic screen. But it guarantees points drawing
|
| + // at (0, 0) will eventually show up, top-left part of the drawable region
|
| + // should not be covered by another window, or out of display area. Refer to
|
| + // CalibrateScreenDrawerPosition() function in screen_capturer_unittest.cc to
|
| + // see how to calibrate the visible region of a ScreenDrawer.
|
| virtual DesktopRect DrawableRegion() = 0;
|
|
|
| - // Draws a rectangle to cover |rect| with color |rgba|. Note, rect.bottom()
|
| + // Draws a rectangle to cover |rect| with color |bgra|. Note, rect.bottom()
|
| // and rect.right() two lines are not included.
|
| - virtual void DrawRectangle(DesktopRect rect, uint32_t rgba) = 0;
|
| + virtual void DrawRectangle(DesktopRect rect, uint32_t bgra) = 0;
|
|
|
| - // Clears all content on the screen.
|
| - virtual void Clear() = 0;
|
| + // Blocks current thread until OS finishes previous Draw* actions.
|
| + // ScreenCapturer should be able to capture the changes after this function
|
| + // finish.
|
| + virtual void WaitForPendingPaintings() = 0;
|
| };
|
|
|
| } // namespace webrtc
|
|
|