// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #include "gpu/core1/boundsKernel.hpp" #include "../context.hpp" #include "../kernel.hpp" namespace VideoStitch { namespace Core { namespace { #include "boundsKernel.xxd" } INDIRECT_REGISTER_OPENCL_PROGRAM(boundsKernel, true); Status vertOr(std::size_t croppedWidth, std::size_t croppedHeight, GPU::Buffer<const uint32_t> contrib, GPU::Buffer<uint32_t> colHasImage, GPU::Stream stream) { auto kernel = GPU::Kernel::get(PROGRAM(boundsKernel), KERNEL_STR(vertOrKernel)).setup1D(stream, (unsigned)croppedWidth); return kernel.enqueueWithKernelArgs(contrib, colHasImage, (unsigned)croppedWidth, (unsigned)croppedHeight); } Status horizOr(std::size_t croppedWidth, std::size_t croppedHeight, GPU::Buffer<const uint32_t> contrib, GPU::Buffer<uint32_t> rowHasImage, GPU::Stream stream) { auto kernel = GPU::Kernel::get(PROGRAM(boundsKernel), KERNEL_STR(horizOrKernel)).setup1D(stream, (unsigned)croppedHeight); return kernel.enqueueWithKernelArgs(contrib, rowHasImage, (unsigned)croppedWidth, (unsigned)croppedHeight); } } // namespace Core } // namespace VideoStitch