mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 02:35:41 +00:00
04b273259e
First, we generate StyleComputedTimingFunction by cbindgen from Rust, and use it in nsTimingFunction, so we could copy it directly without handling the different memory layout. However, we have to rewrite the nsTimingFunction and mozilla::ComputedTimingFunction for this. Second, the rust-bindgen seems cannot generate the correct generic members from complex C++ templates, especially for the nested template struct, (https://github.com/rust-lang-nursery/rust-bindgen/issues/1429) So we have to hide StyleTimingFunction to avoid the compilation errors. Depends on D9312 Differential Revision: https://phabricator.services.mozilla.com/D9313 --HG-- extra : moz-landing-system : lando
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef nsTimingFunction_h
|
|
#define nsTimingFunction_h
|
|
|
|
#include "mozilla/ServoStyleConsts.h"
|
|
|
|
struct nsTimingFunction
|
|
{
|
|
mozilla::StyleComputedTimingFunction mTiming;
|
|
|
|
explicit nsTimingFunction(mozilla::StyleTimingKeyword aKeyword =
|
|
mozilla::StyleTimingKeyword::Ease)
|
|
: mTiming(mozilla::StyleComputedTimingFunction::Keyword(aKeyword))
|
|
{
|
|
}
|
|
|
|
nsTimingFunction(float x1, float y1, float x2, float y2)
|
|
: mTiming(mozilla::StyleComputedTimingFunction::CubicBezier(x1, y1, x2, y2))
|
|
{
|
|
}
|
|
|
|
bool IsLinear() const
|
|
{
|
|
return mTiming.IsKeyword() &&
|
|
mTiming.keyword._0 == mozilla::StyleTimingKeyword::Linear;
|
|
}
|
|
|
|
bool operator==(const nsTimingFunction& aOther) const
|
|
{
|
|
return mTiming == aOther.mTiming;
|
|
}
|
|
|
|
bool operator!=(const nsTimingFunction& aOther) const
|
|
{
|
|
return !(*this == aOther);
|
|
}
|
|
};
|
|
|
|
#endif // nsTimingFunction_h
|