зеркало из https://github.com/mozilla/moz-skia.git
add asScalars() to document when we want to treat SkPoint or SkRect as an array
of SkScalars. Review URL: https://codereview.chromium.org/12530010 git-svn-id: http://skia.googlecode.com/svn/trunk@8041 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
Родитель
a224072836
Коммит
c7d0ea3cd3
|
@ -504,6 +504,11 @@ struct SK_API SkPoint {
|
|||
fY = -tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* cast-safe way to treat the point as an array of (2) SkScalars.
|
||||
*/
|
||||
const SkScalar* asScalars() const { return &fX; }
|
||||
};
|
||||
|
||||
typedef SkPoint SkVector;
|
||||
|
|
|
@ -769,6 +769,11 @@ struct SK_API SkRect {
|
|||
* other. When this returns, left <= right && top <= bottom
|
||||
*/
|
||||
void sort();
|
||||
|
||||
/**
|
||||
* cast-safe way to treat the rect as an array of (4) SkScalars.
|
||||
*/
|
||||
const SkScalar* asScalars() const { return &fLeft; }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -8,8 +8,20 @@
|
|||
// Unit tests for src/core/SkPoint.cpp and its header
|
||||
|
||||
#include "SkPoint.h"
|
||||
#include "SkRect.h"
|
||||
#include "Test.h"
|
||||
|
||||
static void test_casts(skiatest::Reporter* reporter) {
|
||||
SkPoint p = { 0, 0 };
|
||||
SkRect r = { 0, 0, 0, 0 };
|
||||
|
||||
const SkScalar* pPtr = SkTCast<const SkScalar*>(&p);
|
||||
const SkScalar* rPtr = SkTCast<const SkScalar*>(&r);
|
||||
|
||||
REPORTER_ASSERT(reporter, p.asScalars() == pPtr);
|
||||
REPORTER_ASSERT(reporter, r.asScalars() == rPtr);
|
||||
}
|
||||
|
||||
// Tests that SkPoint::length() and SkPoint::Length() both return
|
||||
// approximately expectedLength for this (x,y).
|
||||
static void test_length(skiatest::Reporter* reporter, SkScalar x, SkScalar y,
|
||||
|
@ -37,6 +49,8 @@ static void test_Normalize(skiatest::Reporter* reporter,
|
|||
}
|
||||
|
||||
static void PointTest(skiatest::Reporter* reporter) {
|
||||
test_casts(reporter);
|
||||
|
||||
test_length(reporter, SkIntToScalar(3), SkIntToScalar(4), SkIntToScalar(5));
|
||||
test_length(reporter, SkFloatToScalar(0.6f), SkFloatToScalar(0.8f),
|
||||
SK_Scalar1);
|
||||
|
|
Загрузка…
Ссылка в новой задаче