tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

desktop_frame_rotation.h (2059B)


      1 /*
      2 *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
      3 *
      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
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 #ifndef MODULES_DESKTOP_CAPTURE_DESKTOP_FRAME_ROTATION_H_
     12 #define MODULES_DESKTOP_CAPTURE_DESKTOP_FRAME_ROTATION_H_
     13 
     14 #include "modules/desktop_capture/desktop_frame.h"
     15 #include "modules/desktop_capture/desktop_geometry.h"
     16 
     17 namespace webrtc {
     18 
     19 // Represents the rotation of a DesktopFrame.
     20 enum class Rotation {
     21  CLOCK_WISE_0,
     22  CLOCK_WISE_90,
     23  CLOCK_WISE_180,
     24  CLOCK_WISE_270,
     25 };
     26 
     27 // Rotates input DesktopFrame `source`, copies pixel in an unrotated rectangle
     28 // `source_rect` into the target rectangle of another DesktopFrame `target`.
     29 // Target rectangle here is the rotated `source_rect` plus `target_offset`.
     30 // `rotation` specifies `source` to `target` rotation. `source_rect` is in
     31 // `source` coordinate. `target_offset` is in `target` coordinate.
     32 // This function triggers check failure if `source` does not cover the
     33 // `source_rect`, or `target` does not cover the rotated `rect`.
     34 void RotateDesktopFrame(const DesktopFrame& source,
     35                        const DesktopRect& source_rect,
     36                        const Rotation& rotation,
     37                        const DesktopVector& target_offset,
     38                        DesktopFrame* target);
     39 
     40 // Returns a reverse rotation of `rotation`.
     41 Rotation ReverseRotation(Rotation rotation);
     42 
     43 // Returns a rotated DesktopSize of `size`.
     44 DesktopSize RotateSize(DesktopSize size, Rotation rotation);
     45 
     46 // Returns a rotated DesktopRect of `rect`. The `size` represents the size of
     47 // the DesktopFrame which `rect` belongs in.
     48 DesktopRect RotateRect(DesktopRect rect, DesktopSize size, Rotation rotation);
     49 
     50 }  // namespace webrtc
     51 
     52 #endif  // MODULES_DESKTOP_CAPTURE_DESKTOP_FRAME_ROTATION_H_