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

Side by Side Diff: Source/core/platform/graphics/LayoutSize.h

Issue 22482004: Add support for the object-fit CSS property. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Oops, sorry! Forgot to update UseCounter.cpp Created 7 years, 4 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) 2012, Google Inc. All rights reserved. 2 * Copyright (c) 2012, Google Inc. All rights reserved.
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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 inline IntSize roundedIntSize(const LayoutSize& s) 163 inline IntSize roundedIntSize(const LayoutSize& s)
164 { 164 {
165 return IntSize(s.width().round(), s.height().round()); 165 return IntSize(s.width().round(), s.height().round());
166 } 166 }
167 167
168 inline LayoutSize roundedLayoutSize(const FloatSize& s) 168 inline LayoutSize roundedLayoutSize(const FloatSize& s)
169 { 169 {
170 return LayoutSize(s); 170 return LayoutSize(s);
171 } 171 }
172 172
173 // Convert the specified scaled size to one that agrees with the specified aspec t ratio
174 // (expressed as a size, too).
ojan 2013/08/08 02:36:55 Blink (and WebKit) style is to leave out "what" co
mstensho (USE GERRIT) 2013/08/08 07:26:42 Done.
175 enum AspectRatioFit { // How to set a size with the specified aspect ratio
176 AspectRatioFitShrink, // Shrink in one dimension to gain aspect ratio
177 AspectRatioFitGrow // Grow in one dimension to gain aspect ratio
178 };
ojan 2013/08/08 02:36:55 Needs another line-break here.
mstensho (USE GERRIT) 2013/08/08 07:26:42 Done.
179 inline LayoutSize fitLayoutSizeToAspectRatio(const LayoutSize& scaledSize, const LayoutSize& aspectRatio, AspectRatioFit fit)
ojan 2013/08/08 02:36:55 I think this method makes more sense as a member o
mstensho (USE GERRIT) 2013/08/08 07:26:42 Done.
180 {
181 // Set a new width or height to get to a size that honors the aspect ratio. If fit is
182 // AspectRatioFitGrow, increase in the dimension that is scaled less. Otherw ise,
183 // decrease in the dimension that is scaled more.
184 float heightScale = scaledSize.height().toFloat() / aspectRatio.height().toF loat();
185 float widthScale = scaledSize.width().toFloat() / aspectRatio.width().toFloa t();
186 if ((widthScale > heightScale) != (fit == AspectRatioFitGrow))
187 return LayoutSize(scaledSize.height() * aspectRatio.width() / aspectRati o.height(), scaledSize.height());
188 return LayoutSize(scaledSize.width(), scaledSize.width() * aspectRatio.heigh t() / aspectRatio.width());
189 }
190
173 } // namespace WebCore 191 } // namespace WebCore
174 192
175 #endif // LayoutSize_h 193 #endif // LayoutSize_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698