| // Copyright 2021 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef SCREEN_CAPTURE_UTILS_KMSVNC_UTILS_H_ | |
| #define SCREEN_CAPTURE_UTILS_KMSVNC_UTILS_H_ | |
| #include <cstdint> | |
| #include <memory> | |
| #include <utility> | |
| #include <vector> | |
| #include "screen-capture-utils/capture.h" | |
| namespace screenshot { | |
| // Gets the VNC width that's a multiple of 4. If |crtc_width| | |
| // is not a multiple of 4, it'll be rounded up to the next | |
| // multiple of 4. For instance, GetVncWidth(1366) => 1368. | |
| uint32_t GetVncWidth(uint32_t crtc_width); | |
| // Converts the display buffer |from| to an array of bytes |to| | |
| // with |vnc_width| taken into consideration. VNC requires | |
| // the display width to be a multiple of 4, thus |vnc_width| | |
| // may be larger (by 1-3 pixels) than the actual display width. | |
| void ConvertBuffer(const DisplayBuffer::Result& from, | |
| uint32_t* to, | |
| uint32_t vnc_width); | |
| } // namespace screenshot | |
| #endif // SCREEN_CAPTURE_UTILS_KMSVNC_UTILS_H_ |