Move style properties which accept one parameter to vanilla JNI (YogaStyleProperties Part 1)
Summary: Move Yoga style properties to vanilla JNI under a flag. Reviewed By: amir-shalem Differential Revision: D17666048 fbshipit-source-id: 6565acd35ab04ef0c3a2544447a25dc6edc3e7a5
This commit is contained in:
committed by
Facebook Github Bot
parent
c37f5956e4
commit
32a973ebd1
@@ -12,6 +12,31 @@ static inline YGNodeRef _jlong2YGNodeRef(jlong addr) {
|
||||
return reinterpret_cast<YGNodeRef>(static_cast<intptr_t>(addr));
|
||||
}
|
||||
|
||||
#define YG_NODE_JNI_STYLE_PROP(javatype, type, name) \
|
||||
static javatype jni_YGNodeStyleGet##name##JNI( \
|
||||
JNIEnv* env, jobject obj, jlong nativePointer) { \
|
||||
return (javatype) YGNodeStyleGet##name(_jlong2YGNodeRef(nativePointer)); \
|
||||
} \
|
||||
\
|
||||
static void jni_YGNodeStyleSet##name##JNI( \
|
||||
JNIEnv* env, jobject obj, jlong nativePointer, javatype value) { \
|
||||
YGNodeStyleSet##name( \
|
||||
_jlong2YGNodeRef(nativePointer), static_cast<type>(value)); \
|
||||
}
|
||||
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGDirection, Direction);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGFlexDirection, FlexDirection);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGJustify, JustifyContent);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGAlign, AlignItems);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGAlign, AlignSelf);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGAlign, AlignContent);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGPositionType, PositionType);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGWrap, FlexWrap);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGOverflow, Overflow);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGDisplay, Display);
|
||||
YG_NODE_JNI_STYLE_PROP(jfloat, float, FlexGrow);
|
||||
YG_NODE_JNI_STYLE_PROP(jfloat, float, FlexShrink);
|
||||
|
||||
void jni_YGNodeStyleSetFlexJNI(
|
||||
JNIEnv* env,
|
||||
jobject obj,
|
||||
@@ -21,6 +46,9 @@ void jni_YGNodeStyleSetFlexJNI(
|
||||
_jlong2YGNodeRef(nativePointer), static_cast<float>(value));
|
||||
}
|
||||
|
||||
// Yoga specific properties, not compatible with flexbox specification
|
||||
YG_NODE_JNI_STYLE_PROP(jfloat, float, AspectRatio);
|
||||
|
||||
void assertNoPendingJniException(JNIEnv* env) {
|
||||
// This method cannot call any other method of the library, since other
|
||||
// methods of the library use it to check for exceptions too
|
||||
@@ -44,7 +72,86 @@ void registerNativeMethods(
|
||||
}
|
||||
|
||||
static JNINativeMethod methods[] = {
|
||||
{"jni_YGNodeStyleSetFlexJNI", "(JF)V", (void*) jni_YGNodeStyleSetFlexJNI}};
|
||||
{"jni_YGNodeStyleSetFlexJNI", "(JF)V", (void*) jni_YGNodeStyleSetFlexJNI},
|
||||
{"jni_YGNodeStyleGetDirectionJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetDirectionJNI},
|
||||
{"jni_YGNodeStyleSetDirectionJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetDirectionJNI},
|
||||
{"jni_YGNodeStyleGetFlexDirectionJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetFlexDirectionJNI},
|
||||
{"jni_YGNodeStyleSetFlexDirectionJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetFlexDirectionJNI},
|
||||
{"jni_YGNodeStyleGetJustifyContentJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetJustifyContentJNI},
|
||||
{"jni_YGNodeStyleSetJustifyContentJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetJustifyContentJNI},
|
||||
{"jni_YGNodeStyleGetAlignItemsJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetAlignItemsJNI},
|
||||
{"jni_YGNodeStyleSetAlignItemsJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetAlignItemsJNI},
|
||||
{"jni_YGNodeStyleGetAlignSelfJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetAlignSelfJNI},
|
||||
{"jni_YGNodeStyleSetAlignSelfJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetAlignSelfJNI},
|
||||
{"jni_YGNodeStyleGetAlignContentJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetAlignContentJNI},
|
||||
{"jni_YGNodeStyleSetAlignContentJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetAlignContentJNI},
|
||||
{"jni_YGNodeStyleGetPositionTypeJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetPositionTypeJNI},
|
||||
{"jni_YGNodeStyleSetPositionTypeJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetPositionTypeJNI},
|
||||
{"jni_YGNodeStyleGetFlexWrapJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetFlexWrapJNI},
|
||||
{"jni_YGNodeStyleSetFlexWrapJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetFlexWrapJNI},
|
||||
{"jni_YGNodeStyleGetOverflowJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetOverflowJNI},
|
||||
{"jni_YGNodeStyleSetOverflowJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetOverflowJNI},
|
||||
{"jni_YGNodeStyleGetDisplayJNI",
|
||||
"(J)I",
|
||||
(void*) jni_YGNodeStyleGetDisplayJNI},
|
||||
{"jni_YGNodeStyleSetDisplayJNI",
|
||||
"(JI)V",
|
||||
(void*) jni_YGNodeStyleSetDisplayJNI},
|
||||
{"jni_YGNodeStyleGetFlexGrowJNI",
|
||||
"(J)F",
|
||||
(void*) jni_YGNodeStyleGetFlexGrowJNI},
|
||||
{"jni_YGNodeStyleSetFlexGrowJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetFlexGrowJNI},
|
||||
{"jni_YGNodeStyleGetFlexShrinkJNI",
|
||||
"(J)F",
|
||||
(void*) jni_YGNodeStyleGetFlexShrinkJNI},
|
||||
{"jni_YGNodeStyleSetFlexShrinkJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetFlexShrinkJNI},
|
||||
{"jni_YGNodeStyleGetAspectRatioJNI",
|
||||
"(J)F",
|
||||
(void*) jni_YGNodeStyleGetAspectRatioJNI},
|
||||
{"jni_YGNodeStyleSetAspectRatioJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetAspectRatioJNI},
|
||||
};
|
||||
|
||||
void YGJNIVanilla::registerNatives(JNIEnv* env) {
|
||||
registerNativeMethods(
|
||||
|
Reference in New Issue
Block a user