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

Side by Side Diff: Source/WebCore/platform/graphics/IntSize.h

Issue 10379031: Merge 114095 - Background width (or height) is wrong if width (or height) * zoom < 1. (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1084/
Patch Set: Created 8 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006 Apple Computer, Inc. All rights reserve d. 2 * Copyright (C) 2003, 2004, 2005, 2006 Apple Computer, Inc. All rights reserve d.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 bool isEmpty() const { return m_width <= 0 || m_height <= 0; } 73 bool isEmpty() const { return m_width <= 0 || m_height <= 0; }
74 bool isZero() const { return !m_width && !m_height; } 74 bool isZero() const { return !m_width && !m_height; }
75 75
76 float aspectRatio() const { return static_cast<float>(m_width) / static_cast <float>(m_height); } 76 float aspectRatio() const { return static_cast<float>(m_width) / static_cast <float>(m_height); }
77 77
78 void expand(int width, int height) 78 void expand(int width, int height)
79 { 79 {
80 m_width += width; 80 m_width += width;
81 m_height += height; 81 m_height += height;
82 } 82 }
83
84 void scale(float widthScale, float heightScale)
85 {
86 m_width = static_cast<int>(static_cast<float>(m_width) * widthScale);
87 m_height = static_cast<int>(static_cast<float>(m_height) * heightScale);
88 }
83 89
84 void scale(float scale) 90 void scale(float scale)
85 { 91 {
86 m_width = static_cast<int>(static_cast<float>(m_width) * scale); 92 this->scale(scale, scale);
87 m_height = static_cast<int>(static_cast<float>(m_height) * scale);
88 } 93 }
89 94
90 IntSize expandedTo(const IntSize& other) const 95 IntSize expandedTo(const IntSize& other) const
91 { 96 {
92 return IntSize(m_width > other.m_width ? m_width : other.m_width, 97 return IntSize(m_width > other.m_width ? m_width : other.m_width,
93 m_height > other.m_height ? m_height : other.m_height); 98 m_height > other.m_height ? m_height : other.m_height);
94 } 99 }
95 100
96 IntSize shrunkTo(const IntSize& other) const 101 IntSize shrunkTo(const IntSize& other) const
97 { 102 {
98 return IntSize(m_width < other.m_width ? m_width : other.m_width, 103 return IntSize(m_width < other.m_width ? m_width : other.m_width,
99 m_height < other.m_height ? m_height : other.m_height); 104 m_height < other.m_height ? m_height : other.m_height);
100 } 105 }
101 106
102 void clampNegativeToZero() 107 void clampNegativeToZero()
103 { 108 {
104 *this = expandedTo(IntSize()); 109 *this = expandedTo(IntSize());
105 } 110 }
106 111
112 void clampToMinimumSize(const IntSize& minimumSize)
113 {
114 if (m_width < minimumSize.width())
115 m_width = minimumSize.width();
116 if (m_height < minimumSize.height())
117 m_height = minimumSize.height();
118 }
119
107 int diagonalLengthSquared() const 120 int diagonalLengthSquared() const
108 { 121 {
109 return m_width * m_width + m_height * m_height; 122 return m_width * m_width + m_height * m_height;
110 } 123 }
111 124
112 IntSize transposedSize() const 125 IntSize transposedSize() const
113 { 126 {
114 return IntSize(m_height, m_width); 127 return IntSize(m_height, m_width);
115 } 128 }
116 129
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 } 196 }
184 197
185 inline bool operator!=(const IntSize& a, const IntSize& b) 198 inline bool operator!=(const IntSize& a, const IntSize& b)
186 { 199 {
187 return a.width() != b.width() || a.height() != b.height(); 200 return a.width() != b.width() || a.height() != b.height();
188 } 201 }
189 202
190 } // namespace WebCore 203 } // namespace WebCore
191 204
192 #endif // IntSize_h 205 #endif // IntSize_h
OLDNEW
« no previous file with comments | « Source/WebCore/loader/cache/CachedImage.cpp ('k') | Source/WebCore/rendering/RenderBoxModelObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698