mirror of
https://gitee.com/openharmony/arkui_ace_engine
synced 2025-02-20 04:36:46 +00:00
!48083 回退PR42672 “增加矩阵变换中的参数传递”
Merge pull request !48083 from 马梓健/revertMatrixModifier
This commit is contained in:
commit
a6e7d39214
@ -33,29 +33,20 @@ void AddOrChangeScaleModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSScaleModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSScaleModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
}
|
||||
}
|
||||
|
||||
void AddOrChangeScaleZModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSScaleZModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<float>>& property, const float value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSScaleZModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
}
|
||||
}
|
||||
|
||||
void AddOrChangeSkewModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSSkewModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector3f>>& property, const Rosen::Vector3f& value)
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSSkewModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
@ -66,7 +57,8 @@ void AddOrChangePivotModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSPivotModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSPivotModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
@ -77,7 +69,8 @@ void AddOrChangeTranslateZModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSTranslateZModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<float>>& property, const float value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSTranslateZModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
@ -86,9 +79,10 @@ void AddOrChangeTranslateZModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
|
||||
void AddOrChangePerspectiveModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSPerspModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector4f>>& property, const Rosen::Vector4f& value)
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSPerspModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
@ -99,7 +93,8 @@ void AddOrChangeTranslateModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSTranslateModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSTranslateModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
@ -110,7 +105,8 @@ void AddOrChangeQuaternionModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSQuaternionModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Quaternion>>& property, const Rosen::Quaternion& value)
|
||||
{
|
||||
if (CreateOrSetModifierValue(property, value)) {
|
||||
bool isCreate = CreateOrSetModifierValue(property, value);
|
||||
if (isCreate) {
|
||||
CHECK_NULL_VOID(rsNode);
|
||||
modifier = std::make_shared<Rosen::RSQuaternionModifier>(property);
|
||||
rsNode->AddModifier(modifier);
|
||||
|
@ -27,13 +27,9 @@ void AddOrChangeScaleModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSScaleModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value);
|
||||
|
||||
void AddOrChangeScaleZModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSScaleZModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<float>>& property, const float value);
|
||||
|
||||
void AddOrChangeSkewModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSSkewModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector3f>>& property, const Rosen::Vector3f& value);
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value);
|
||||
|
||||
void AddOrChangeTranslateZModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSTranslateZModifier>& modifier,
|
||||
@ -41,7 +37,7 @@ void AddOrChangeTranslateZModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
|
||||
void AddOrChangePerspectiveModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSPerspModifier>& modifier,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector4f>>& property, const Rosen::Vector4f& value);
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value);
|
||||
|
||||
void AddOrChangeTranslateModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSTranslateModifier>& modifier,
|
||||
@ -56,20 +52,18 @@ void AddOrChangePivotModifier(std::shared_ptr<Rosen::RSNode>& rsNode,
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>>& property, const Rosen::Vector2f& value);
|
||||
|
||||
struct TransformMatrixModifier {
|
||||
std::shared_ptr<Rosen::RSPerspModifier> perspective;
|
||||
std::shared_ptr<Rosen::RSPerspModifier> perspectiveXY;
|
||||
std::shared_ptr<Rosen::RSTranslateModifier> translateXY;
|
||||
std::shared_ptr<Rosen::RSTranslateZModifier> translateZ;
|
||||
std::shared_ptr<Rosen::RSScaleModifier> scaleXY;
|
||||
std::shared_ptr<Rosen::RSScaleZModifier> scaleZ;
|
||||
std::shared_ptr<Rosen::RSSkewModifier> skew;
|
||||
std::shared_ptr<Rosen::RSSkewModifier> skewXY;
|
||||
std::shared_ptr<Rosen::RSPivotModifier> pivotXY;
|
||||
std::shared_ptr<Rosen::RSQuaternionModifier> quaternion;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector4f>> perspectiveValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>> perspectiveXYValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>> translateXYValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<float>> translateZValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>> scaleXYValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<float>> scaleZValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector3f>> skewValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>> skewXYValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Vector2f>> pivotXYValue;
|
||||
std::shared_ptr<Rosen::RSAnimatableProperty<Rosen::Quaternion>> quaternionValue;
|
||||
};
|
||||
|
@ -1814,27 +1814,22 @@ void RosenRenderContext::OnTransformMatrixUpdate(const Matrix4& matrix)
|
||||
AddOrChangeScaleModifier(
|
||||
rsNode_, transformMatrixModifier_->scaleXY, transformMatrixModifier_->scaleXYValue, scaleValue);
|
||||
} else {
|
||||
Rosen::Vector4f perspectiveValue { transform.perspective[0], transform.perspective[1], transform.perspective[2],
|
||||
transform.perspective[3] };
|
||||
Rosen::Vector2f xyPerspectiveValue { transform.perspective[0], transform.perspective[1] };
|
||||
Rosen::Vector2f xyTranslateValue { transform.translate[0], transform.translate[1] };
|
||||
Rosen::Quaternion quaternion { static_cast<float>(transform.quaternion.GetX()),
|
||||
static_cast<float>(transform.quaternion.GetY()), static_cast<float>(transform.quaternion.GetZ()),
|
||||
static_cast<float>(transform.quaternion.GetW()) };
|
||||
Rosen::Vector2f xyScaleValue { transform.scale[0], transform.scale[1] };
|
||||
Rosen::Vector3f skewValue { transform.skew[0], transform.skew[1], transform.skew[2] };
|
||||
Rosen::Vector2f scaleValue { transform.scale[0], transform.scale[1] };
|
||||
Rosen::Vector2f skewValue { transform.skew[0], transform.skew[1] };
|
||||
|
||||
AddOrChangePerspectiveModifier(rsNode_, transformMatrixModifier_->perspective,
|
||||
transformMatrixModifier_->perspectiveValue, perspectiveValue);
|
||||
AddOrChangePerspectiveModifier(rsNode_, transformMatrixModifier_->perspectiveXY,
|
||||
transformMatrixModifier_->perspectiveXYValue, xyPerspectiveValue);
|
||||
AddOrChangeTranslateModifier(rsNode_, transformMatrixModifier_->translateXY,
|
||||
transformMatrixModifier_->translateXYValue, xyTranslateValue);
|
||||
AddOrChangeTranslateZModifier(rsNode_, transformMatrixModifier_->translateZ,
|
||||
transformMatrixModifier_->translateZValue, transform.translate[2]);
|
||||
AddOrChangeScaleModifier(
|
||||
rsNode_, transformMatrixModifier_->scaleXY, transformMatrixModifier_->scaleXYValue, xyScaleValue);
|
||||
AddOrChangeScaleZModifier(rsNode_, transformMatrixModifier_->scaleZ,
|
||||
transformMatrixModifier_->scaleZValue, transform.scale[2]);
|
||||
rsNode_, transformMatrixModifier_->scaleXY, transformMatrixModifier_->scaleXYValue, scaleValue);
|
||||
AddOrChangeSkewModifier(
|
||||
rsNode_, transformMatrixModifier_->skew, transformMatrixModifier_->skewValue, skewValue);
|
||||
rsNode_, transformMatrixModifier_->skewXY, transformMatrixModifier_->skewXYValue, skewValue);
|
||||
AddOrChangeQuaternionModifier(
|
||||
rsNode_, transformMatrixModifier_->quaternion, transformMatrixModifier_->quaternionValue, quaternion);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user