CLAUDE: JNA rectilinear single-array config port (Phase 1)
Fixes the whole bug-class behind the -Dtp.backend=jna NPE in GpuQuad.setLpfRbg
(CuasRanging.detectTargets -> CuasMotion -> setRectilinearReferenceTD): the
rectilinear single-camera GpuQuad was built via the raw JCuda ctor, bypassing
the backend factory, so in JNA mode it got a null gpuTileProcessor.
- GpuQuad.createRectilinear(): backend-aware factory parallel to create().
JCUDA branch is byte-for-byte the legacy ctor (oracle path untouched); JNA
branch builds a clean rectilinear GpuQuadJna. New no-alloc rectilinear ctor
(num_cams=1, no kernels/geometry).
- GpuQuadJna: rectilinear ctor + shared initNative(); the two overrides the
gap-finder predicted -- reAllocateClt (no-op; native CLT pre-sized in setup)
and singular setBayerImage (-> tp_proc_set_image). execConvertDirect already
guarded on the rectilinear flag.
- CuasMotion:452 routed through createRectilinear (CUAS rectilinear now
JNA-capable).
- ComboMatch:899 fail-loud UnsupportedOperationException in JNA mode
(orthomosaic, wider unported surface, off the current path -- stays JCuda).
Java-only; libtileproc.so untouched. mvn compile clean. JCuda legacy frozen as
oracle; core convert_direct flag-soup cleanup deferred to Phase 2.
Co-Authored-By:
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Showing
Please register or sign in to comment