@@ -38,8 +38,8 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterCreate(
38
38
// Destroy filter
39
39
extern " C" JNIEXPORT void JNICALL
40
40
Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterDestroy (JNIEnv* env,
41
- jclass obj,
42
- jlong classId) {
41
+ jclass obj,
42
+ jlong classId) {
43
43
// Free the heap-allocated shared_ptr
44
44
auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(classId);
45
45
delete ptr;
@@ -48,8 +48,8 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterDestroy(JNIEnv* env,
48
48
// Release filter resources
49
49
extern " C" JNIEXPORT void JNICALL
50
50
Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterFinalize (JNIEnv* env,
51
- jclass obj,
52
- jlong classId) {
51
+ jclass obj,
52
+ jlong classId) {
53
53
// Get shared_ptr and access the object
54
54
auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(classId);
55
55
if (ptr && *ptr) {
@@ -58,7 +58,7 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterFinalize(JNIEnv* env,
58
58
};
59
59
60
60
// Set float property for filter
61
- extern " C" JNIEXPORT void JNICALL
61
+ extern " C" JNIEXPORT bool JNICALL
62
62
Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyFloat (
63
63
JNIEnv* env,
64
64
jclass obj,
@@ -67,16 +67,17 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyFloat(
67
67
jfloat value) {
68
68
auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(classId);
69
69
if (!ptr || !*ptr) {
70
- return ;
70
+ return false ;
71
71
}
72
72
73
73
const char * property = env->GetStringUTFChars (jProperty, 0 );
74
- (*ptr)->SetProperty (property, value);
74
+ bool ret = (*ptr)->SetProperty (property, value);
75
75
env->ReleaseStringUTFChars (jProperty, property);
76
+ return ret;
76
77
};
77
78
78
79
// Set int property for filter
79
- extern " C" JNIEXPORT void JNICALL
80
+ extern " C" JNIEXPORT bool JNICALL
80
81
Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyInt (
81
82
JNIEnv* env,
82
83
jclass obj,
@@ -85,16 +86,17 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyInt(
85
86
jint value) {
86
87
auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(classId);
87
88
if (!ptr || !*ptr) {
88
- return ;
89
+ return false ;
89
90
}
90
91
91
92
const char * property = env->GetStringUTFChars (jProperty, 0 );
92
- (*ptr)->SetProperty (property, value);
93
+ bool ret = (*ptr)->SetProperty (property, value);
93
94
env->ReleaseStringUTFChars (jProperty, property);
95
+ return ret;
94
96
};
95
97
96
98
// Set string property for filter
97
- extern " C" JNIEXPORT void JNICALL
99
+ extern " C" JNIEXPORT bool JNICALL
98
100
Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyString (
99
101
JNIEnv* env,
100
102
jclass obj,
@@ -103,18 +105,19 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyString(
103
105
jstring jValue) {
104
106
auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(classId);
105
107
if (!ptr || !*ptr) {
106
- return ;
108
+ return false ;
107
109
}
108
110
109
111
const char * property = env->GetStringUTFChars (jProperty, 0 );
110
112
const char * value = env->GetStringUTFChars (jValue, 0 );
111
- (*ptr)->SetProperty (property, value);
113
+ bool ret = (*ptr)->SetProperty (property, value);
112
114
env->ReleaseStringUTFChars (jProperty, property);
113
115
env->ReleaseStringUTFChars (jValue, value);
116
+ return ret;
114
117
};
115
118
116
119
// Set float array property for filter
117
- extern " C" JNIEXPORT void JNICALL
120
+ extern " C" JNIEXPORT bool JNICALL
118
121
Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyFloatArray (
119
122
JNIEnv* env,
120
123
jclass clazz,
@@ -123,9 +126,9 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyFloatArray(
123
126
jfloatArray jarray) {
124
127
auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(class_id);
125
128
if (!ptr || !*ptr) {
126
- return ;
129
+ return false ;
127
130
}
128
-
131
+
129
132
const char * property = env->GetStringUTFChars (jProperty, 0 );
130
133
jsize length = env->GetArrayLength (jarray);
131
134
@@ -136,9 +139,69 @@ Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterSetPropertyFloatArray(
136
139
vector.push_back (c_array[i]);
137
140
}
138
141
139
- (*ptr)->SetProperty (property, vector);
142
+ bool ret = (*ptr)->SetProperty (property, vector);
140
143
141
144
env->ReleaseStringUTFChars (jProperty, property);
142
145
// Release Java array memory
143
146
env->ReleaseFloatArrayElements (jarray, c_array, JNI_ABORT);
147
+ return ret;
148
+ }
149
+
150
+ extern " C" JNIEXPORT bool JNICALL Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterHasProperty (
151
+ JNIEnv* env,
152
+ jclass clazz,
153
+ jlong class_id,
154
+ jstring jProperty,
155
+ jstring jType) {
156
+ auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(class_id);
157
+ if (!ptr || !*ptr) {
158
+ return false ;
159
+ }
160
+ auto prop = JavaToStdString (env, jProperty);
161
+ auto type = JavaToStdString (env, jType);
162
+ return (*ptr)->HasProperty (prop, type);
163
+ }
164
+
165
+ extern " C" JNIEXPORT jstring JNICALL Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterGetPropertyString (
166
+ JNIEnv* env,
167
+ jclass clazz,
168
+ jlong class_id,
169
+ jstring jProperty) {
170
+ auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(class_id);
171
+ if (!ptr || !*ptr) {
172
+ return nullptr ;
173
+ }
174
+ std::string ret,prop = JavaToStdString (env, jProperty);
175
+ (*ptr)->GetProperty (prop, ret);
176
+ return JavaStringFromStdString (env, ret);
177
+ }
178
+
179
+ extern " C" JNIEXPORT int JNICALL Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterGetPropertyInt (
180
+ JNIEnv* env,
181
+ jclass clazz,
182
+ jlong class_id,
183
+ jstring jProperty) {
184
+ int ret = 0 ;
185
+ auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(class_id);
186
+ if (!ptr || !*ptr) {
187
+ return ret;
188
+ }
189
+ auto prop = JavaToStdString (env, jProperty);
190
+ (*ptr)->GetProperty (prop, ret);
191
+ return ret;
192
+ }
193
+
194
+ extern " C" JNIEXPORT float JNICALL Java_com_pixpark_gpupixel_GPUPixelFilter_nativeFilterGetPropertyFloat (
195
+ JNIEnv* env,
196
+ jclass clazz,
197
+ jlong class_id,
198
+ jstring jProperty) {
199
+ float ret = 0 ;
200
+ auto * ptr = reinterpret_cast <std::shared_ptr<Filter>*>(class_id);
201
+ if (!ptr || !*ptr) {
202
+ return ret;
203
+ }
204
+ auto prop = JavaToStdString (env, jProperty);
205
+ (*ptr)->GetProperty (prop, ret);
206
+ return ret;
144
207
}
0 commit comments