diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/CommonMethodModifier.ets b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/CommonMethodModifier.ets index e71ae0e37a217c855f7a5aad1579d4dffcc633b6..e27abd034d4ca1745c712af405b151848150e421 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/CommonMethodModifier.ets +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/generated/CommonMethodModifier.ets @@ -27,6 +27,7 @@ import { LengthMetrics } from "arkui.Graphics" import { ResizableOptions } from "./component/image" import { default as uiEffect } from "@ohos.graphics.uiEffect" import { FocusBoxStyle, FocusPriority } from "./component/focus" +import { default as matrix4 } from "@ohos.matrix4" import { CustomBuilder } from "./component/builder" import { default as uniformTypeDescriptor } from "@ohos.data.uniformTypeDescriptor" import { CircleShape, EllipseShape, PathShape, RectShape } from "@ohos.arkui.shape" @@ -199,7 +200,7 @@ export class CommonMethodModifier implements CommonMethod,AttributeModifier void) | undefined _onDisAppear_0_flag: AttributeUpdaterFlag = AttributeUpdaterFlag.INITIAL @@ -1915,7 +1916,7 @@ export class CommonMethodModifier implements CommonMethod,AttributeModifier void) | undefined): this { @@ -7900,7 +7903,7 @@ export class ArkCommonMethodStyle implements CommonMethod { translate_value?: TranslateOptions | undefined scale_value?: ScaleOptions | undefined rotate_value?: RotateOptions | undefined - transform_value?: Object | undefined + transform_value?: matrix4.Matrix4Transit | undefined onAppear_value?: (() => void) | undefined onDisAppear_value?: (() => void) | undefined onAttach_value?: VoidCallback | undefined @@ -8220,7 +8223,7 @@ export class ArkCommonMethodStyle implements CommonMethod { rotate(value: RotateOptions | undefined): this { return this } - transform(value: Object | undefined): this { + transform(value: matrix4.Matrix4Transit | undefined): this { return this } onAppear(value: (() => void) | undefined): this { @@ -9593,9 +9596,9 @@ export class ArkCommonMethodComponent extends ComponentBase implements CommonMet } return this } - public transform(value: Object | undefined): this { + public transform(value: matrix4.Matrix4Transit | undefined): this { if (this.checkPriority("transform")) { - const value_casted = value as (Object | undefined) + const value_casted = value as (matrix4.Matrix4Transit | undefined) this.getPeer()?.setTransformAttribute(value_casted) return this } diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/arkts/ArkUIAniModule.ts b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/arkts/ArkUIAniModule.ts index bd2a4dcd05ba76ba67207cbf6e154931eabbed7c..48ac222f4bf918cf02a06f24eb111014fd2e047d 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/arkts/ArkUIAniModule.ts +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/arkts/ArkUIAniModule.ts @@ -35,6 +35,9 @@ import { SymbolGlyphModifier } from "arkui.SymbolGlyphModifier" import { NodeAdapter } from 'arkui.FrameNode' import { Scene } from "@ohos.graphics.scene" import { RectShape, CircleShape, EllipseShape, PathShape } from "@ohos.arkui.shape" +import curves from "@ohos.curves" +import matrix4 from "@ohos.matrix4" +import uiEffect from "@ohos.graphics.uiEffect"; export class ArkUIAniModule { static { loadLibrary('arkoala_native_ani') @@ -49,6 +52,10 @@ export class ArkUIAniModule { native static _Extractors_FromEllipseShapePtr(ptr: KPointer): EllipseShape; native static _Extractors_ToPathShapePtr(value: PathShape): KPointer; native static _Extractors_FromPathShapePtr(ptr: KPointer): PathShape; + native static _Extractors_ToICurvePtr(value: curves.ICurve): KPointer; + native static _Extractors_ToMatrix4TransitPtr(value: matrix4.Matrix4Transit): KPointer; + native static _Extractors_ToUiEffectFilterPtr(value: uiEffect.Filter): KPointer; + native static _Extractors_ToUiEffectVisualEffectPtr(value: uiEffect.VisualEffect): KPointer; native static _Image_ColorFilter_TransferStatic(ptr: KPointer): KPointer native static _Image_ColorFilter_TransferDynamic(ptr: KPointer): KPointer native static _Image_ResizableOptions(ptr: KPointer, value: drawing.Lattice): void diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/module.cpp b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/module.cpp index 8e443d707c311d18677df7e08969adc68b61840a..1dbd86bd40e06046f5d8a1d08568b6056cd81776 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/module.cpp +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/module.cpp @@ -1266,6 +1266,26 @@ ANI_EXPORT ani_status ANI_Constructor(ani_vm* vm, uint32_t* result) nullptr, reinterpret_cast(OHOS::Ace::Ani::ExtractorsFromPathShapePtr) }, + ani_native_function { + "_Extractors_ToICurvePtr", + nullptr, + reinterpret_cast(OHOS::Ace::Ani::ExtractorsToICurvePtr) + }, + ani_native_function { + "_Extractors_ToMatrix4TransitPtr", + nullptr, + reinterpret_cast(OHOS::Ace::Ani::ExtractorsToMatrix4TransitPtr) + }, + ani_native_function { + "_Extractors_ToUiEffectFilterPtr", + nullptr, + reinterpret_cast(OHOS::Ace::Ani::ExtractorsToUiEffectFilterPtr) + }, + ani_native_function { + "_Extractors_ToUiEffectVisualEffectPtr", + nullptr, + reinterpret_cast(OHOS::Ace::Ani::ExtractorsToUiEffectVisualEffectPtr) + }, }; auto bindRst = env->Class_BindStaticNativeMethods(cls, staticMethods.data(), staticMethods.size()); diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.cpp b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.cpp index 03cde2a4ec12439be9bb8dd2894cefc2f561f4cb..11cd6e1b41d8a0150fbd880555c5a0c2dabc35b6 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.cpp +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.cpp @@ -74,4 +74,20 @@ ani_object ExtractorsFromPathShapePtr(ani_env* env, ani_object aniClass, ani_lon { return CallFromPtrMethod(env, "PathFromPtr", ptr); } +ani_long ExtractorsToICurvePtr(ani_env* env, ani_object aniClass, ani_object obj) +{ + return GetPropertyName(env, obj, "nativeContext"); +} +ani_long ExtractorsToMatrix4TransitPtr(ani_env* env, ani_object aniClass, ani_object obj) +{ + return GetPropertyName(env, obj, "matrix4Object"); +} +ani_long ExtractorsToUiEffectFilterPtr(ani_env* env, ani_object aniClass, ani_object obj) +{ + return GetPropertyName(env, obj, "filterNativeObj"); +} +ani_long ExtractorsToUiEffectVisualEffectPtr(ani_env* env, ani_object aniClass, ani_object obj) +{ + return GetPropertyName(env, obj, "visualEffectNativeObj"); +} } // namespace OHOS::Ace::Ani diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.h b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.h index 4c77e8adf3157a9475f734c5b9afffb8aaebf82d..29e14495b20406ad713edc740843042c404b3284 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.h +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/ani/native/visual_effect/visual_effect_module.h @@ -27,6 +27,10 @@ ani_long ExtractorsToEllipseShapePtr(ani_env* env, ani_object aniClass, ani_obje ani_object ExtractorsFromEllipseShapePtr(ani_env* env, ani_object aniClass, ani_long ptr); ani_long ExtractorsToPathShapePtr(ani_env* env, ani_object aniClass, ani_object obj); ani_object ExtractorsFromPathShapePtr(ani_env* env, ani_object aniClass, ani_long ptr); +ani_long ExtractorsToICurvePtr(ani_env* env, ani_object aniClass, ani_object obj); +ani_long ExtractorsToMatrix4TransitPtr(ani_env* env, ani_object aniClass, ani_object obj); +ani_long ExtractorsToUiEffectFilterPtr(ani_env* env, ani_object aniClass, ani_object obj); +ani_long ExtractorsToUiEffectVisualEffectPtr(ani_env* env, ani_object aniClass, ani_object obj); } // namespace OHOS::Ace::Ani #endif // KOALA_PROJECTS_ARKOALA_ARKTS_ARKUI_OHOS_ANI_NATIVE_VISUAL_EFFECT_VISUAL_EFFECT_MODULE_H diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/extractors/index.ets b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/extractors/index.ets index c9b3b9a92b7e507a6830f861258bd0352d51467f..0eac5ffe77804628289ba4e4b02fb997b62e3e91 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/extractors/index.ets +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/arkui-ohos/src/extractors/index.ets @@ -146,23 +146,21 @@ export namespace extractors { // end export function toCurvesICurvePtr(value: curves.ICurve): KPointer { - return 123; + return ArkUIAniModule._Extractors_ToICurvePtr(value); } export function fromCurvesICurvePtr(ptr: KPointer): curves.ICurve { - const x: Object = {}; - return x as curves.ICurve; + throw new Error("fromCurvesICurvePtr is not implemented.") } export function toMatrix4Matrix4TransitPtr( value: matrix4.Matrix4Transit ): KPointer { - return 123; + return ArkUIAniModule._Extractors_ToMatrix4TransitPtr(value); } export function fromMatrix4Matrix4TransitPtr( ptr: KPointer ): matrix4.Matrix4Transit { - const x: Object = {}; - return x as matrix4.Matrix4Transit; + throw new Error("fromMatrix4Matrix4TransitPtr is not implemented.") } export function toDrawingCanvasPtr(value: drawing.Canvas): KPointer { @@ -194,23 +192,21 @@ export namespace extractors { } export function toUiEffectFilterPtr(value: uiEffect.Filter): KPointer { - return 123; + return ArkUIAniModule._Extractors_ToUiEffectFilterPtr(value); } export function fromUiEffectFilterPtr(ptr: KPointer): uiEffect.Filter { - const x: Object = {}; - return x as uiEffect.Filter; + throw new Error("fromUiEffectFilterPtr is not implemented.") } export function toUiEffectVisualEffectPtr( value: uiEffect.VisualEffect ): KPointer { - return 123; + return ArkUIAniModule._Extractors_ToUiEffectVisualEffectPtr(value); } export function fromUiEffectVisualEffectPtr( ptr: KPointer ): uiEffect.VisualEffect { - const x: Object = {}; - return x as uiEffect.VisualEffect; + throw new Error("fromUiEffectVisualEffectPtr is not implemented.") } export function toUnifiedDataChannelUnifiedDataPtr( diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h index 90c520ec12ba454e4a5cc78417f671b6b1501f30..8e0303a015ce090f5b4369b030fbda9c9a9e8fd7 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/arkoala_api_generated.h @@ -19770,7 +19770,7 @@ typedef struct GENERATED_ArkUICommonMethodModifier { void (*setRotate)(Ark_NativePointer node, const Opt_RotateOptions* value); void (*setTransform)(Ark_NativePointer node, - const Opt_Object* value); + const Opt_matrix4_Matrix4Transit* value); void (*setOnAppear)(Ark_NativePointer node, const Opt_Callback_Void* value); void (*setOnDisAppear)(Ark_NativePointer node, diff --git a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/bridge_generated.cc b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/bridge_generated.cc index c0dc1983adf1b80f87db62b41c4855878146d7c3..1de620b43154214e3afed1ddfdf0047a95b8308d 100644 --- a/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/bridge_generated.cc +++ b/frameworks/bridge/arkts_frontend/koala_projects/arkoala-arkts/framework/native/src/generated/bridge_generated.cc @@ -3263,13 +3263,13 @@ void impl_CommonMethod_setTransform(Ark_NativePointer thisPtr, KSerializerBuffer Ark_NodeHandle self = reinterpret_cast(thisPtr); DeserializerBase thisDeserializer(thisArray, thisLength); const auto valueValueTempTmpBuf_runtimeType = static_cast(thisDeserializer.readInt8()); - Opt_Object valueValueTempTmpBuf = {}; + Opt_matrix4_Matrix4Transit valueValueTempTmpBuf = {}; valueValueTempTmpBuf.tag = valueValueTempTmpBuf_runtimeType == INTEROP_RUNTIME_UNDEFINED ? INTEROP_TAG_UNDEFINED : INTEROP_TAG_OBJECT; if ((valueValueTempTmpBuf_runtimeType) != (INTEROP_RUNTIME_UNDEFINED)) { - valueValueTempTmpBuf.value = static_cast(thisDeserializer.readObject()); + valueValueTempTmpBuf.value = static_cast(matrix4_Matrix4Transit_serializer::read(thisDeserializer)); } - Opt_Object valueValueTemp = valueValueTempTmpBuf;; - GetNodeModifiers()->getCommonMethodModifier()->setTransform(self, static_cast(&valueValueTemp)); + Opt_matrix4_Matrix4Transit valueValueTemp = valueValueTempTmpBuf;; + GetNodeModifiers()->getCommonMethodModifier()->setTransform(self, static_cast(&valueValueTemp)); } KOALA_INTEROP_DIRECT_V3(CommonMethod_setTransform, Ark_NativePointer, KSerializerBuffer, int32_t) void impl_CommonMethod_setOnAppear(Ark_NativePointer thisPtr, KSerializerBuffer thisArray, int32_t thisLength) { diff --git a/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h b/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h index 90c520ec12ba454e4a5cc78417f671b6b1501f30..8e0303a015ce090f5b4369b030fbda9c9a9e8fd7 100644 --- a/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h +++ b/frameworks/core/interfaces/native/generated/interface/arkoala_api_generated.h @@ -19770,7 +19770,7 @@ typedef struct GENERATED_ArkUICommonMethodModifier { void (*setRotate)(Ark_NativePointer node, const Opt_RotateOptions* value); void (*setTransform)(Ark_NativePointer node, - const Opt_Object* value); + const Opt_matrix4_Matrix4Transit* value); void (*setOnAppear)(Ark_NativePointer node, const Opt_Callback_Void* value); void (*setOnDisAppear)(Ark_NativePointer node, diff --git a/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp b/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp index 1494f9713f33ae247253a898289bfb926658d3ab..7238e6ac8bbd497f6585281b4270f83b89b1876b 100644 --- a/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp +++ b/frameworks/core/interfaces/native/implementation/common_method_modifier.cpp @@ -2168,24 +2168,44 @@ void SetVisualEffectImpl(Ark_NativePointer node, { auto frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); + auto ptrOpt = Converter::OptConvertPtr(value); + if (!ptrOpt || !(ptrOpt.value())) { + return; + } + ViewAbstractModelStatic::SetVisualEffect(frameNode, ptrOpt.value()); } void SetBackgroundFilterImpl(Ark_NativePointer node, const Opt_uiEffect_Filter* value) { auto frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); + auto ptrOpt = Converter::OptConvertPtr(value); + if (!ptrOpt || !(ptrOpt.value())) { + return; + } + ViewAbstractModelStatic::SetBackgroundFilter(frameNode, ptrOpt.value()); } void SetForegroundFilterImpl(Ark_NativePointer node, const Opt_uiEffect_Filter* value) { auto frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); + auto ptrOpt = Converter::OptConvertPtr(value); + if (!ptrOpt || !(ptrOpt.value())) { + return; + } + ViewAbstractModelStatic::SetForegroundFilter(frameNode, ptrOpt.value()); } void SetCompositingFilterImpl(Ark_NativePointer node, const Opt_uiEffect_Filter* value) { auto frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); + auto ptrOpt = Converter::OptConvertPtr(value); + if (!ptrOpt || !(ptrOpt.value())) { + return; + } + ViewAbstractModelStatic::SetCompositingFilter(frameNode, ptrOpt.value()); } void SetOpacityImpl(Ark_NativePointer node, const Opt_Union_Number_Resource* value) @@ -3194,14 +3214,16 @@ void SetRotateImpl(Ark_NativePointer node, ViewAbstractModelStatic::SetRotate(frameNode, convValue->vec5f); ViewAbstractModelStatic::SetPivot(frameNode, convValue->center); } -void SetTransformImpl(Ark_NativePointer node, - const Opt_Object* value) +void SetTransformImpl(Ark_NativePointer node, const Opt_matrix4_Matrix4Transit* value) { auto frameNode = reinterpret_cast(node); CHECK_NULL_VOID(frameNode); - std::optional convValue = std::nullopt; - LOGE("ARKOALA:Transform1Impl: Opt_Object is not supported"); - ViewAbstractModelStatic::SetTransformMatrix(frameNode, convValue); + auto matrixOpt = OptConvertPtr(value); + if (!matrixOpt.has_value()) { + ViewAbstract::SetTransformMatrix(frameNode, Matrix4::CreateIdentity()); + return; + } + ViewAbstract::SetTransformMatrix(frameNode, matrixOpt.value()); } void SetOnAppearImpl(Ark_NativePointer node, const Opt_Callback_Void* value) diff --git a/frameworks/core/interfaces/native/utility/converter.cpp b/frameworks/core/interfaces/native/utility/converter.cpp index 0b4a04385e1802cf66d16b1d7ffd67182f79f167..6419f3a14e5960670a7ce290ab8f2057fac7ca15 100644 --- a/frameworks/core/interfaces/native/utility/converter.cpp +++ b/frameworks/core/interfaces/native/utility/converter.cpp @@ -3316,4 +3316,35 @@ void AssignCast(std::optional& dst, const Ark_UIContext& src) { dst = static_cast(reinterpret_cast(src)); } + +template<> +void AssignCast(std::optional& dst, const Ark_matrix4_Matrix4Transit& src) +{ + Matrix4_Obj* matrixObj = reinterpret_cast(src); + if (!matrixObj) { + dst = std::nullopt; + return; + } + dst = matrixObj->matrix4x4; +} + +template<> +void AssignCast(std::optional& dst, const Ark_uiEffect_VisualEffect& src) +{ + if (!src) { + dst = std::nullopt; + return; + } + dst = reinterpret_cast(src); +} + +template<> +void AssignCast(std::optional& dst, const Ark_uiEffect_Filter& src) +{ + if (!src) { + dst = std::nullopt; + return; + } + dst = reinterpret_cast(src); +} } // namespace OHOS::Ace::NG::Converter diff --git a/frameworks/core/interfaces/native/utility/converter.h b/frameworks/core/interfaces/native/utility/converter.h index 1261ce3b040dc9cc2ee2e452c57373cbbac776e4..0578ee6db19d2156d2ab66cbd530529fe3a75f64 100644 --- a/frameworks/core/interfaces/native/utility/converter.h +++ b/frameworks/core/interfaces/native/utility/converter.h @@ -845,6 +845,9 @@ namespace Converter { template<> void AssignCast(std::optional& dst, const Ark_Resource& src); template<> void AssignCast(std::optional& dst, const Ark_Number& src); template<> void AssignCast(std::optional& dst, const Ark_UIContext& src); + template<> void AssignCast(std::optional& dst, const Ark_matrix4_Matrix4Transit& src); + template<> void AssignCast(std::optional& dst, const Ark_uiEffect_VisualEffect& src); + template<> void AssignCast(std::optional& dst, const Ark_uiEffect_Filter& src); // Long declarations goes below. DO NOT ADD SHORT DECLARATIONS HERE! template<> diff --git a/interfaces/ets/ani/curves/ets/@ohos.curves.ets b/interfaces/ets/ani/curves/ets/@ohos.curves.ets index 2e1c14099f44c88467e34162db355f7475fa2e80..592a4656e4a521cb9e4eaac769b32fd06b764d17 100644 --- a/interfaces/ets/ani/curves/ets/@ohos.curves.ets +++ b/interfaces/ets/ani/curves/ets/@ohos.curves.ets @@ -32,7 +32,6 @@ export default namespace curves { }; export native function cubicBezierCurve(x1: number, y1: number, x2: number, y2: number):ICurve; - export native function cubicBezier(x1: number, y1: number, x2: number, y2: number):string; export native function springMotion(response?: number, dampingFraction?: number, overlapDuration?: number): ICurve; export native function initCurve(curve?: Curve):ICurve; export native function interpolatingSpring(velocity: number, mass: number, stiffness: number, damping: number):ICurve; @@ -43,16 +42,14 @@ export default namespace curves { export interface ICurve { - interpolate(fraction: number) : number; + interpolate(fraction: number): number; } - class Curves implements ICurve + class ICurveImpl implements ICurve { - private nativeContext:long = 0; + private nativeContext: long = 0; constructor(context:long) { - if(this.nativeContext == 0){ - this.nativeContext = context; - } + this.nativeContext = context; } public native interpolate(fraction: number): number; } diff --git a/interfaces/ets/ani/curves/src/curves.cpp b/interfaces/ets/ani/curves/src/curves.cpp index a11e994688cc5da0fe5b6c1574735bc00ccfb758..1c9dac768d6b00b0f629f368f9871e2197b74df0 100644 --- a/interfaces/ets/ani/curves/src/curves.cpp +++ b/interfaces/ets/ani/curves/src/curves.cpp @@ -52,6 +52,7 @@ typedef enum Curve { Friction = 12, } Curve; +const char* ICURVE_CLASS_NAME = "@ohos.curves.curves.ICurveImpl"; } std::string GetCubicBezierCurveString(ani_double x1, ani_double y1, ani_double x2, ani_double y2) @@ -160,7 +161,7 @@ static CurvesObj* unwrapp(ani_env *env, ani_object object) return reinterpret_cast(curvesObj); } -static ani_double Interpolate([[maybe_unused]] ani_env* env, [[maybe_unused]] ani_object object, ani_double fraction) +static ani_double Interpolate(ani_env* env, ani_object object, ani_double fraction) { auto curveObject = unwrapp(env, object); auto curveInterpolate = curveObject->curve; @@ -169,21 +170,11 @@ static ani_double Interpolate([[maybe_unused]] ani_env* env, [[maybe_unused]] an return curveValue; } -static ani_string CubicBezier([[maybe_unused]] ani_env *env, +static ani_object CubicBezierCurve(ani_env *env, ani_double x1, ani_double y1, ani_double x2, ani_double y2) { - auto curvesStr = GetCubicBezierCurveString(x1, y1, x2, y2); - ani_string ret; - env->String_NewUTF8(curvesStr.c_str(), curvesStr.size(), &ret); - return ret; -} - -static ani_object CubicBezierCurve([[maybe_unused]] ani_env *env, - ani_double x1, ani_double y1, ani_double x2, ani_double y2) -{ - static const char *className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { return nullptr; } @@ -203,12 +194,11 @@ static ani_object CubicBezierCurve([[maybe_unused]] ani_env *env, return curve_object; } -static ani_object SpringCurve([[maybe_unused]] ani_env* env, +static ani_object SpringCurve(ani_env* env, ani_double velocity, ani_double mass, ani_double stiffness, ani_double damping) { - static const char* className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { return nullptr; } @@ -289,19 +279,18 @@ std::string GetSpringResponsiveMotionCurveString(ani_env *env, return curve->ToString(); } -static ani_object SpringResponsiveMotion([[maybe_unused]] ani_env *env, +static ani_object SpringResponsiveMotion(ani_env *env, ani_object response, ani_object dampingFraction, ani_object overlapDuration) { - CurvesObj* springResponsiveMotion = new CurvesObj(); - static const char *className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { return nullptr; } ani_method ctor; if (ANI_OK != env->Class_FindMethod(cls, "", nullptr, &ctor)) { return nullptr; } + CurvesObj* springResponsiveMotion = new CurvesObj(); std::string curveString = GetSpringResponsiveMotionCurveString(env, response, dampingFraction, overlapDuration); springResponsiveMotion->curve = OHOS::Ace::Framework::CreateCurve(curveString); ani_object curve_object; @@ -312,12 +301,11 @@ static ani_object SpringResponsiveMotion([[maybe_unused]] ani_env *env, return curve_object; } -static ani_object SpringMotion([[maybe_unused]] ani_env *env, +static ani_object SpringMotion(ani_env *env, ani_object response, ani_object dampingFraction, ani_object overlapDuration) { - static const char *className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { return nullptr; } @@ -336,28 +324,29 @@ static ani_object SpringMotion([[maybe_unused]] ani_env *env, return curve_object; } -static ani_object InitCurve([[maybe_unused]] ani_env* env, ani_enum_item enumItem) +static ani_object InitCurve(ani_env* env, ani_enum_item enumItem) { ani_boolean isUndefined; env->Reference_IsUndefined(enumItem, &isUndefined); - ani_int curveType; + ani_int curveType = Curve::Linear; if (isUndefined) { curveType = Curve::Linear; } else { if (ANI_OK != env->EnumItem_GetValue_Int(enumItem, &curveType)) { + LOGW("InitCurve input enum is invalid"); + curveType = Curve::Linear; } } std::string curveString = GetCurvesInitInternalMap(curveType); - static const char* className = "@ohos.curves.curve.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { - std::cerr << "Not found '" << className << "'" << std::endl; + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { + LOGW("InitCurve not found class"); return nullptr; } ani_method ctor; if (ANI_OK != env->Class_FindMethod(cls, "", nullptr, &ctor)) { - std::cerr << "get ctor Failed'" << className << "'" << std::endl; + LOGW("InitCurve get ctor failed"); return nullptr; } CurvesObj* curvesInitInternal = new CurvesObj(); @@ -370,19 +359,18 @@ static ani_object InitCurve([[maybe_unused]] ani_env* env, ani_enum_item enumIte return curve_object; } -static ani_object InterpolatingSpring([[maybe_unused]] ani_env* env, +static ani_object InterpolatingSpring(ani_env* env, ani_double velocity, ani_double mass, ani_double stiffness, ani_double damping) { - static const char* className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { - std::cerr << "Not found '" << className << "'" << std::endl; + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { + LOGW("InterpolatingSpring not found class"); return nullptr; } ani_method ctor; if (ANI_OK != env->Class_FindMethod(cls, "", nullptr, &ctor)) { - std::cerr << "get ctor Failed'" << className << "'" << std::endl; + LOGW("InterpolatingSpring get ctor failed"); return nullptr; } @@ -409,18 +397,17 @@ static ani_object InterpolatingSpring([[maybe_unused]] ani_env* env, return curve_object; } -static ani_object StepsCurve([[maybe_unused]] ani_env* env, ani_double count, ani_boolean end) +static ani_object StepsCurve(ani_env* env, ani_double count, ani_boolean end) { - static const char* className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { - std::cerr << "Not found '" << className << "'" << std::endl; + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { + LOGW("StepsCurve not found class"); return nullptr; } ani_method ctor; if (ANI_OK != env->Class_FindMethod(cls, "", nullptr, &ctor)) { - std::cerr << "get ctor Failed'" << className << "'" << std::endl; + LOGW("StepsCurve get ctor failed"); return nullptr; } @@ -461,18 +448,17 @@ static ani_object createDouble(ani_env *env, double value) return personInfoObj; } -static ani_object CustomCurve([[maybe_unused]] ani_env* env, ani_object callbackObj) +static ani_object CustomCurve(ani_env* env, ani_object callbackObj) { - static const char* className = "@ohos.curves.curves.Curves"; ani_class cls; - if (ANI_OK != env->FindClass(className, &cls)) { - std::cerr << "Not found '" << className << "'" << std::endl; + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &cls)) { + LOGW("CustomCurve not found class"); return nullptr; } ani_method ctor; if (ANI_OK != env->Class_FindMethod(cls, "", nullptr, &ctor)) { - std::cerr << "get ctor Failed'" << className << "'" << std::endl; + LOGW("CustomCurve get ctor failed"); return nullptr; } @@ -519,7 +505,6 @@ ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result) return ANI_ERROR; } std::array methods = { - ani_native_function {"cubicBezier", nullptr, reinterpret_cast(CubicBezier)}, ani_native_function {"cubicBezierCurve", nullptr, reinterpret_cast(CubicBezierCurve)}, ani_native_function {"springMotion", nullptr, reinterpret_cast(SpringMotion)}, ani_native_function {"initCurve", nullptr, reinterpret_cast(InitCurve)}, @@ -533,9 +518,8 @@ ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result) return ANI_ERROR; } - static const char *classNameCurves = "@ohos.curves.curves.Curves"; ani_class clsCurves; - if (ANI_OK != env->FindClass(classNameCurves, &clsCurves)) { + if (ANI_OK != env->FindClass(ICURVE_CLASS_NAME, &clsCurves)) { return ANI_ERROR; } std::array methodsCurves = { diff --git a/interfaces/ets/ani/matrix4/ets/@ohos.matrix4.ets b/interfaces/ets/ani/matrix4/ets/@ohos.matrix4.ets index 94294d51dab8683ae34a306abe3d11d5b10500b6..1651b8ba322d7e76d8afe078f16761d8ee8b2a0c 100644 --- a/interfaces/ets/ani/matrix4/ets/@ohos.matrix4.ets +++ b/interfaces/ets/ani/matrix4/ets/@ohos.matrix4.ets @@ -70,16 +70,14 @@ export default namespace matrix4 { } class Matrix4TransitInner implements Matrix4Transit { - private matrix4Object:long = 0; + private matrix4Object: long = 0; static { loadLibrary("matrix4_ani"); } - constructor(context:long) { - if(this.matrix4Object == 0){ - this.matrix4Object = context; - } + constructor(context: long) { + this.matrix4Object = context; } static matrixTransferStatic(input: Any): Any {