This PR contains a separable optimized TriangleOptProc that address a few open issues (efficiency/speed and exceeding some platformvarying array limits). It also contains some lib/cmake refactoring to accommodate SHARED lib builds and some Windows specific fixes. The CI setup files appveyor.yml and .travis.yml are also updated to use the cleaner/simpler templates from ingenue/hunter testing as well as the drishti/bin/hunter_env.{cmd, sh} and build scripts.
add optimized/separate triangle filter
add separable optimized triangle filter TriangleOptProc + TriangleOptProcPass for compatibility with acf filtering based on
GPUImageSingleComponentGaussianBlurFilter.m
minor gpu + acf tuning (this will always be an approximation of CPU code)
run clang-format
update appveyor/travis configs to match drishti repo -- this provide a much simpler clang linux setup without the travis permission symbolic link workarounds
be sure to wrap all OpenGL sections in #if defined(ACF_DO_GPU)
This separable filter makes use of OpenGL HW texel interpolation to replace two adjacent integer offset kernel coefficients with a single coefficient for a single (interpolated) texel lookup. The code is adapted from the following:
This PR contains a separable optimized
TriangleOptProc
that address a few open issues (efficiency/speed and exceeding some platformvarying
array limits). It also contains some lib/cmake refactoring to accommodateSHARED
lib builds and some Windows specific fixes. The CI setup files appveyor.yml and .travis.yml are also updated to use the cleaner/simpler templates from ingenue/hunter testing as well as the drishti/bin/hunter_env.{cmd, sh} and build scripts.add optimized/separate triangle filter
TriangleOptProc
+TriangleOptProcPass
for compatibility with acf filtering based onGPUImageSingleComponentGaussianBlurFilter.m
#if defined(ACF_DO_GPU)
This separable filter makes use of OpenGL HW texel interpolation to replace two adjacent integer offset kernel coefficients with a single coefficient for a single (interpolated) texel lookup. The code is adapted from the following:
https://github.com/BradLarson/GPUImage/blob/master/framework/Source/GPUImageSingleComponentGaussianBlurFilter.m#L5-L186
Which is released under compatible 3-clause BSD license:
https://github.com/BradLarson/GPUImage/blob/master/License.txt
ACF lib/cmake refactoring to support SHARED builds
acf_util
from src/lib/util for internal reuse — this is allows creating a SHARED acf lib without exporting this local utilsacf_shader
from src/lib/acf/gpu for internal use -- if CMake OBJECT libraries worked portably, this would probably be an OBJECT library.acf_util
andacf_shader
(optional if using GPGPU)RPATH
handling inacf
top CMakeLists.txt for relocatable install treeACF_HAVE_TO_STRING
result from try_compile testing directlyACF_EXPORT
for explicit template declarations in ACFIOArchiveCereal.cppdefault
destructor and fix constructor initialization orderWindows
PATH
for gauze tests on MSVC platformsacf::Field<...>
templatesdraw()
for pyramid visualizationACF::updateGL()
API call to support platform specific OpenGL bindings from within theSHARED
lib (e.g., windows DLL + glewInit())updateGL()
in apps/tests:acf-detector
(GLDetector);acf-pipeline
,test-acf