summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/style/CollapsedBorderValue.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/style/CollapsedBorderValue.h')
-rw-r--r--Source/WebCore/rendering/style/CollapsedBorderValue.h33
1 files changed, 17 insertions, 16 deletions
diff --git a/Source/WebCore/rendering/style/CollapsedBorderValue.h b/Source/WebCore/rendering/style/CollapsedBorderValue.h
index 120173bda..e0f62bf05 100644
--- a/Source/WebCore/rendering/style/CollapsedBorderValue.h
+++ b/Source/WebCore/rendering/style/CollapsedBorderValue.h
@@ -22,39 +22,35 @@
*
*/
-#ifndef CollapsedBorderValue_h
-#define CollapsedBorderValue_h
+#pragma once
#include "BorderValue.h"
+#include "LayoutUnit.h"
namespace WebCore {
class CollapsedBorderValue {
public:
CollapsedBorderValue()
- : m_color(0)
- , m_colorIsValid(false)
- , m_width(0)
- , m_style(BNONE)
+ : m_style(BNONE)
, m_precedence(BOFF)
, m_transparent(false)
{
}
CollapsedBorderValue(const BorderValue& border, const Color& color, EBorderPrecedence precedence)
- : m_color(color.rgb())
- , m_colorIsValid(color.isValid())
- , m_width(border.nonZero() ? border.width() : 0)
+ : m_width(LayoutUnit(border.nonZero() ? border.width() : 0))
+ , m_color(color)
, m_style(border.style())
, m_precedence(precedence)
, m_transparent(border.isTransparent())
{
}
- unsigned width() const { return m_style > BHIDDEN ? m_width : 0; }
+ LayoutUnit width() const { return m_style > BHIDDEN ? m_width : LayoutUnit::fromPixel(0); }
EBorderStyle style() const { return static_cast<EBorderStyle>(m_style); }
bool exists() const { return m_precedence != BOFF; }
- Color color() const { return Color(m_color, m_colorIsValid); }
+ const Color& color() const { return m_color; }
bool isTransparent() const { return m_transparent; }
EBorderPrecedence precedence() const { return static_cast<EBorderPrecedence>(m_precedence); }
@@ -63,15 +59,20 @@ public:
return width() == o.width() && style() == o.style() && precedence() == o.precedence();
}
+ static LayoutUnit adjustedCollapsedBorderWidth(float borderWidth, float deviceScaleFactor, bool roundUp);
+
private:
- RGBA32 m_color;
- unsigned m_colorIsValid : 1;
- unsigned m_width : 23;
+ LayoutUnit m_width;
+ Color m_color;
unsigned m_style : 4; // EBorderStyle
unsigned m_precedence : 3; // EBorderPrecedence
unsigned m_transparent : 1;
};
-} // namespace WebCore
+inline LayoutUnit CollapsedBorderValue::adjustedCollapsedBorderWidth(float borderWidth, float deviceScaleFactor, bool roundUp)
+{
+ float halfCollapsedBorderWidth = (borderWidth + (roundUp ? (1 / deviceScaleFactor) : 0)) / 2;
+ return floorToDevicePixel(halfCollapsedBorderWidth, deviceScaleFactor);
+}
-#endif // CollapsedBorderValue_h
+} // namespace WebCore