| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |   2  *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 
|   3  * |   3  * | 
|   4  *  Use of this source code is governed by a BSD-style license |   4  *  Use of this source code is governed by a BSD-style license | 
|   5  *  that can be found in the LICENSE file in the root of the source |   5  *  that can be found in the LICENSE file in the root of the source | 
|   6  *  tree. An additional intellectual property rights grant can be found |   6  *  tree. An additional intellectual property rights grant can be found | 
|   7  *  in the file PATENTS.  All contributing project authors may |   7  *  in the file PATENTS.  All contributing project authors may | 
|   8  *  be found in the AUTHORS file in the root of the source tree. |   8  *  be found in the AUTHORS file in the root of the source tree. | 
|   9  */ |   9  */ | 
|  10  |  10  | 
|  11 #ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_ |  11 #ifndef WEBRTC_MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_ | 
|  12 #define WEBRTC_MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_ |  12 #define WEBRTC_MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_ | 
|  13  |  13  | 
|  14 #include <stdint.h> |  14 #include <stdint.h> | 
|  15  |  15  | 
|  16 #include <memory> |  16 #include <memory> | 
|  17  |  17  | 
 |  18 #include "webrtc/modules/desktop_capture/color.h" | 
|  18 #include "webrtc/modules/desktop_capture/desktop_geometry.h" |  19 #include "webrtc/modules/desktop_capture/desktop_geometry.h" | 
|  19  |  20  | 
|  20 namespace webrtc { |  21 namespace webrtc { | 
|  21  |  22  | 
|  22 // A set of platform independent functions to draw various of shapes on the |  23 // A set of basic platform dependent functions to draw various shapes on the | 
|  23 // screen. This class is for testing ScreenCapturer* implementations only, and |  24 // screen. | 
|  24 // should not be used in production logic. |  | 
|  25 class ScreenDrawer { |  25 class ScreenDrawer { | 
|  26  public: |  26  public: | 
|  27   // Creates a ScreenDrawer for the current platform. |  27   // Creates a ScreenDrawer for the current platform, returns nullptr if no | 
 |  28   // ScreenDrawer implementation available. | 
|  28   static std::unique_ptr<ScreenDrawer> Create(); |  29   static std::unique_ptr<ScreenDrawer> Create(); | 
|  29  |  30  | 
|  30   ScreenDrawer() {} |  31   ScreenDrawer() {} | 
|  31   virtual ~ScreenDrawer() {} |  32   virtual ~ScreenDrawer() {} | 
|  32  |  33  | 
|  33   // Returns a rect, on which this instance can draw. |  34   // Returns the region inside which DrawRectangle() function are expected to | 
 |  35   // work, in capturer coordinates (assuming ScreenCapturer::SelectScreen has | 
 |  36   // not been called). This region may excludes regions of the screen reserved | 
 |  37   // by the OS for things like menu bars or app launchers. | 
|  34   virtual DesktopRect DrawableRegion() = 0; |  38   virtual DesktopRect DrawableRegion() = 0; | 
|  35  |  39  | 
|  36   // Draws a rectangle to cover |rect| with color |rgba|. Note, rect.bottom() |  40   // Draws a rectangle to cover |rect| with |color|. Note, rect.bottom() and | 
|  37   // and rect.right() two lines are not included. |  41   // rect.right() two lines are not included. The part of |rect| which is out of | 
|  38   virtual void DrawRectangle(DesktopRect rect, uint32_t rgba) = 0; |  42   // DrawableRegion() will be ignored. | 
 |  43   virtual void DrawRectangle(DesktopRect rect, Color color) = 0; | 
|  39  |  44  | 
|  40   // Clears all content on the screen. |  45   // Clears all content on the screen by filling the area with black. | 
|  41   virtual void Clear() = 0; |  46   virtual void Clear() = 0; | 
 |  47  | 
 |  48   // Blocks current thread until OS finishes previous DrawRectangle() actions. | 
 |  49   // ScreenCapturer should be able to capture the changes after this function | 
 |  50   // finish. | 
 |  51   virtual void WaitForPendingDraws() = 0; | 
|  42 }; |  52 }; | 
|  43  |  53  | 
|  44 }  // namespace webrtc |  54 }  // namespace webrtc | 
|  45  |  55  | 
|  46 #endif  // WEBRTC_MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_ |  56 #endif  // WEBRTC_MODULES_DESKTOP_CAPTURE_SCREEN_DRAWER_H_ | 
| OLD | NEW |