Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
02d5d93c
Commit
02d5d93c
authored
Aug 03, 2011
by
Andrey Pavlenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Java API: code clean-up
Testing: total 1079, failures 584, errors 0.
parent
29bf7384
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
17 additions
and
34 deletions
+17
-34
gen_java.py
modules/java/gen_java.py
+17
-34
No files found.
modules/java/gen_java.py
View file @
02d5d93c
...
...
@@ -12,9 +12,7 @@ class_ignore_list = (
#highgui
"VideoWriter"
,
"VideoCapture"
,
#features2d
"KeyPoint"
,
"MSER"
,
"StarDetector"
,
"KeyPoint"
,
"MSER"
,
"StarDetector"
,
)
const_ignore_list
=
(
...
...
@@ -29,7 +27,9 @@ const_ignore_list = (
"CV_CHECKBOX"
,
"CV_RADIOBOX"
,
#attention! the following constants are added to this list using code automatic generation -- should be checked
#attention!
#the following constants are added to this list using code automatic generation
#TODO: should be checked
"CV_CAP_ANY"
,
"CV_CAP_MIL"
,
"CV_CAP_VFW"
,
...
...
@@ -477,7 +477,7 @@ func_arg_fix = {
'findHomography'
:
{
'srcPoints'
:
'vector_Point2f'
,
'dstPoints'
:
'vector_Point2f'
,
},
'solvePnP'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
},
'solvePnPRansac'
:
{
'objectPoints'
:
'vector_Point3f'
,
'imagePoints'
:
'vector_Point2f'
,
},
},
# '', i.e.
empty
class
},
# '', i.e.
no
class
}
# func_arg_fix
class
ConstInfo
(
object
):
...
...
@@ -545,21 +545,15 @@ class FuncInfo(object):
for
m
in
decl
[
2
]:
if
m
.
startswith
(
"="
):
self
.
jname
=
m
[
1
:]
self
.
jn_name
=
self
.
jname
#"n_" + self.jname
self
.
jni_name
=
re
.
sub
(
r"_"
,
"_1"
,
self
.
jn_name
)
self
.
static
=
[
""
,
"static"
][
"/S"
in
decl
[
2
]
]
self
.
ctype
=
decl
[
1
]
or
""
self
.
args
=
[]
#self.jni_suffix = "__"
#if self.classname and self.ctype and not self.static: # non-static class methods except c-tors
# self.jni_suffix += "J" # artifical 'self'
arg_fix_map
=
func_arg_fix
.
get
(
classname
,
{})
.
get
(
self
.
jname
,
{})
for
a
in
decl
[
3
]:
arg
=
a
[:]
arg
[
0
]
=
arg_fix_map
.
get
(
arg
[
1
],
arg
[
0
])
ai
=
ArgInfo
(
arg
)
self
.
args
.
append
(
ai
)
# self.jni_suffix += ctype2j.get(ai.ctype, ["","","",""])[3]
...
...
@@ -877,8 +871,6 @@ extern "C" {
# java args
args
=
fi
.
args
[:]
# copy
## if args and args[-1].defval:
## isoverload = True
suffix_counter
=
int
(
self
.
classes
[
fi
.
classname
or
self
.
Module
]
.
methods_suffixes
.
get
(
fi
.
jname
,
-
1
)
)
while
True
:
suffix_counter
=
suffix_counter
+
1
...
...
@@ -887,7 +879,6 @@ extern "C" {
jn_args
=
[]
# jni (cpp) function args
jni_args
=
[
ArgInfo
([
"env"
,
"env"
,
""
,
[],
""
]),
ArgInfo
([
"cls"
,
"cls"
,
""
,
[],
""
])]
## suffix = "__"
j_prologue
=
[]
j_epilogue
=
[]
c_prologue
=
[]
...
...
@@ -903,15 +894,9 @@ extern "C" {
# adding 'self'
jn_args
.
append
(
ArgInfo
([
"__int64"
,
"nativeObj"
,
""
,
[],
""
])
)
jni_args
.
append
(
ArgInfo
([
"__int64"
,
"self"
,
""
,
[],
""
])
)
## suffix += "J"
self
.
get_imports
(
fi
.
classname
,
fi
.
ctype
)
for
a
in
args
:
self
.
get_imports
(
fi
.
classname
,
a
.
ctype
)
## if a.pointer:
## suffix += "_3D"
## else:
## suffix += type_dict[a.ctype].get("suffix") or ""
if
"vector"
in
a
.
ctype
:
# pass as Mat
jn_args
.
append
(
ArgInfo
([
"__int64"
,
"
%
s_mat.nativeObj"
%
a
.
name
,
""
,
[],
""
])
)
jni_args
.
append
(
ArgInfo
([
"__int64"
,
"
%
s_mat_nativeObj"
%
a
.
name
,
""
,
[],
""
])
)
...
...
@@ -951,12 +936,12 @@ extern "C" {
# java part:
# private java NATIVE method decl
# e.g.
# private static native void
n_add
(long src1, long src2, long dst, long mask, int dtype);
# private static native void
add_0
(long src1, long src2, long dst, long mask, int dtype);
jn_code
.
write
(
Template
(
\
" private static native $
jn_type $jn_name($jn_
args);
\n
"
)
.
substitute
(
\
jn_
type
=
type_dict
[
fi
.
ctype
]
.
get
(
"jn_type"
,
"double[]"
),
\
jn_name
=
fi
.
jn_
name
+
'_'
+
`suffix_counter`
,
\
jn_
args
=
", "
.
join
([
"
%
s
%
s"
%
(
type_dict
[
a
.
ctype
][
"jn_type"
],
a
.
name
.
replace
(
"."
,
"_"
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
))
for
a
in
jn_args
])
" private static native $
type $name($
args);
\n
"
)
.
substitute
(
\
type
=
type_dict
[
fi
.
ctype
]
.
get
(
"jn_type"
,
"double[]"
),
\
name
=
fi
.
j
name
+
'_'
+
`suffix_counter`
,
\
args
=
", "
.
join
([
"
%
s
%
s"
%
(
type_dict
[
a
.
ctype
][
"jn_type"
],
a
.
name
.
replace
(
"."
,
"_"
)
.
replace
(
"["
,
""
)
.
replace
(
"]"
,
""
))
for
a
in
jn_args
])
)
);
# java part:
...
...
@@ -971,7 +956,7 @@ extern "C" {
# public java wrapper method impl (calling native one above)
# e.g.
# public static void add( Mat src1, Mat src2, Mat dst, Mat mask, int dtype )
# {
n_add
( src1.nativeObj, src2.nativeObj, dst.nativeObj, mask.nativeObj, dtype ); }
# {
add_0
( src1.nativeObj, src2.nativeObj, dst.nativeObj, mask.nativeObj, dtype ); }
ret_type
=
fi
.
ctype
if
fi
.
ctype
.
endswith
(
'*'
):
ret_type
=
ret_type
[:
-
1
]
...
...
@@ -1022,7 +1007,7 @@ extern "C" {
j_type
=
type_dict
[
fi
.
ctype
][
"j_type"
],
\
j_name
=
fi
.
jname
,
\
j_args
=
", "
.
join
([
"
%
s
%
s"
%
(
type_dict
[
a
.
ctype
][
"j_type"
],
a
.
name
)
for
a
in
args
]),
\
jn_name
=
fi
.
jn
_n
ame
+
'_'
+
`suffix_counter`
,
\
jn_name
=
fi
.
jname
+
'_'
+
`suffix_counter`
,
\
jn_args_call
=
", "
.
join
(
[
a
.
name
for
a
in
jn_args
]
),
\
)
)
...
...
@@ -1124,7 +1109,7 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
rtype
=
rtype
,
\
module
=
self
.
module
,
\
clazz
=
clazz
,
\
fname
=
fi
.
jni_name
+
'_1'
+
`suffix_counter`
,
\
fname
=
(
fi
.
jname
+
'_'
+
`suffix_counter`
)
.
replace
(
'_'
,
'_1'
)
,
\
args
=
", "
.
join
([
"
%
s
%
s"
%
(
type_dict
[
a
.
ctype
]
.
get
(
"jni_type"
),
a
.
name
)
for
a
in
jni_args
]),
\
prologue
=
"
\n
"
.
join
(
c_prologue
),
\
epilogue
=
" "
.
join
(
c_epilogue
),
\
...
...
@@ -1164,8 +1149,6 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
if
ffi
.
isconstructor
:
for
fi
in
ffi
.
funcs
:
fi
.
jname
=
ci
.
jname
fi
.
jn_name
=
fi
.
jname
#"n_" + fi.jname
fi
.
jni_name
=
re
.
sub
(
"_"
,
"_1"
,
fi
.
jn_name
)
self
.
gen_func
(
fi
)
# other methods
for
n
,
ffi
in
fflist
:
...
...
@@ -1199,7 +1182,7 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
"""
@Override
protected void finalize() throws Throwable {
n_
delete(nativeObj);
delete(nativeObj);
super.finalize();
}
"""
)
...
...
@@ -1207,7 +1190,7 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
self
.
java_code
[
name
][
"jn_code"
]
.
write
(
"""
// native support for java finalize()
private static native void
n_
delete(long nativeObj);
private static native void delete(long nativeObj);
"""
)
# native support for java finalize()
...
...
@@ -1215,10 +1198,10 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
"""
//
// native support for java finalize()
// static void
%(cls)
s::
n_
delete( __int64 self )
// static void
%(cls)
s::delete( __int64 self )
//
JNIEXPORT void JNICALL Java_org_opencv_
%(module)
s_
%(cls)
s_
n_1
delete
JNIEXPORT void JNICALL Java_org_opencv_
%(module)
s_
%(cls)
s_delete
(JNIEnv* env, jclass cls, jlong self)
{
delete (
%(cls)
s*) self;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment