Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(409)

Unified Diff: webrtc/modules/desktop_capture/rgba_color.cc

Issue 2334853002: Use RgbaColor in DesktopFrameGenerator and add RgbaColorTest (Closed)
Patch Set: Resolve review comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/desktop_capture/rgba_color.cc
diff --git a/webrtc/modules/desktop_capture/rgba_color.cc b/webrtc/modules/desktop_capture/rgba_color.cc
index 2342b46915061a62926149c8464f7ed0590eec44..a5acba9c55af7abf4690a015117ea47e33adc604 100644
--- a/webrtc/modules/desktop_capture/rgba_color.cc
+++ b/webrtc/modules/desktop_capture/rgba_color.cc
@@ -10,6 +10,8 @@
#include "webrtc/modules/desktop_capture/rgba_color.h"
+#include "webrtc/typedefs.h"
+
namespace webrtc {
namespace {
@@ -36,6 +38,15 @@ RgbaColor::RgbaColor(uint8_t blue, uint8_t green, uint8_t red)
RgbaColor::RgbaColor(const uint8_t* bgra)
: RgbaColor(bgra[0], bgra[1], bgra[2], bgra[3]) {}
+// Converting from or to uint32 in big-endian system has not been supported.
+#if defined(WEBRTC_ARCH_LITTLE_ENDIAN)
+RgbaColor::RgbaColor(uint32_t bgra)
+ : RgbaColor((bgra & 0xff000000) >> 24,
Sergey Ulanov 2016/09/20 21:06:41 nit: the old version of this constructor with rein
Hzj_jie 2016/09/20 23:50:12 Then I think we do not need to add big-endian or l
+ (bgra & 0x00ff0000) >> 16,
+ (bgra & 0x0000ff00) >> 8,
+ (bgra & 0x000000ff)) {}
+#endif
+
bool RgbaColor::operator==(const RgbaColor& right) const {
return blue == right.blue && green == right.green && red == right.red &&
AlphaEquals(alpha, right.alpha);
@@ -45,4 +56,11 @@ bool RgbaColor::operator!=(const RgbaColor& right) const {
return !(*this == right);
}
+// Converting from or to uint32 in big-endian system has not been supported.
+#if defined(WEBRTC_ARCH_LITTLE_ENDIAN)
Sergey Ulanov 2016/09/20 21:06:41 It's better to put this inside the body of this fu
Hzj_jie 2016/09/20 23:50:12 Since supporting big-endian is pretty simple, inst
+uint32_t RgbaColor::ToUInt32() const {
+ return (blue << 24) | (green << 16) | (red << 8) | alpha;
+}
+#endif
+
} // namespace webrtc

Powered by Google App Engine
This is Rietveld 408576698