Skip to content
Snippets Groups Projects
Commit 2135cc20 authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Flip original sources also

parent 8c8ae7e2
No related branches found
No related tags found
1 merge request!275Resolves #336 Flipped VR images
Pipeline #22421 passed
......@@ -11,6 +11,7 @@
#include <ftl/operators/antialiasing.hpp>
#include <ftl/cuda/normals.hpp>
#include <ftl/render/colouriser.hpp>
#include <ftl/cuda/transform.hpp>
#include <ftl/codecs/faces.hpp>
......@@ -134,6 +135,7 @@ void ftl::gui::Camera::draw(std::vector<ftl::rgbd::FrameSet*> &fss) {
if (fid_ != 255) {
for (auto *fs : fss) {
if (!usesFrameset(fs->id)) continue;
UNIQUE_LOCK(fs->mtx, lk);
ftl::rgbd::Frame *frame = nullptr;
......@@ -147,6 +149,7 @@ void ftl::gui::Camera::draw(std::vector<ftl::rgbd::FrameSet*> &fss) {
texture1_.make(buf.width(), buf.height());
auto dst1 = texture1_.map(0);
cudaMemcpy2D(dst1.data, dst1.step1(), buf.devicePtr(), buf.pitch(), buf.width()*4, buf.height(), cudaMemcpyDeviceToDevice);
ftl::cuda::flip<uchar4>(dst1, 0);
texture1_.unmap(0);
width_ = texture1_.width();
......
......@@ -387,11 +387,13 @@ void SourceWindow::draw(NVGcontext *ctx) {
if (!camera.second.thumbview) camera.second.thumbview = new ftl::gui::ThumbView(ipanel_, screen_, cam);
camera.second.thumbview->setFixedSize(nanogui::Vector2i(320,180));
auto *iv = dynamic_cast<nanogui::ImageView*>(camera.second.thumbview);
/*if ((size_t)ipanel_->childCount() < i+1) {
new ftl::gui::ThumbView(ipanel_, screen_, cam);
}*/
//if (thumbs_[i].isValid()) dynamic_cast<nanogui::ImageView*>(camera.second.thumbview)->bindImage(thumbs_[i].texture());
if (cam->getLeft().isValid()) dynamic_cast<nanogui::ImageView*>(camera.second.thumbview)->bindImage(cam->getLeft().texture());
if (cam->getLeft().isValid()) iv->bindImage(cam->getLeft().texture());
++i;
}
......
#ifndef _FTL_CUDA_TRANSFORM_HPP_
#define _FTL_CUDA_TRANSFORM_HPP_
#include <ftl/cuda_common.hpp>
namespace ftl {
namespace cuda {
template <typename T>
void flip(
ftl::cuda::TextureObject<T> &out,
cudaStream_t stream);
template <typename T>
void flip(
cv::cuda::GpuMat &out,
cudaStream_t stream);
}
}
#endif
......@@ -5,6 +5,7 @@
#include <ftl/cuda/normals.hpp>
#include <ftl/operators/mask_cuda.hpp>
#include <ftl/render/colouriser.hpp>
#include <ftl/cuda/transform.hpp>
#include "colour_cuda.hpp"
......
......@@ -22,11 +22,6 @@ void composite(
ftl::cuda::TextureObject<uchar4> &out,
cudaStream_t stream);
template <typename T>
void flip(
ftl::cuda::TextureObject<T> &out,
cudaStream_t stream);
}
}
......
#include "colour_cuda.hpp"
#include <ftl/cuda/transform.hpp>
using ftl::cuda::TextureObject;
......@@ -196,3 +197,23 @@ void ftl::cuda::flip(
template void ftl::cuda::flip<float>(TextureObject<float> &,cudaStream_t stream);
template void ftl::cuda::flip<uchar4>(TextureObject<uchar4> &,cudaStream_t stream);
template <typename T>
void ftl::cuda::flip(
cv::cuda::GpuMat &img,
cudaStream_t stream) {
static constexpr int THREADS_X = 32;
static constexpr int THREADS_Y = 8;
const dim3 gridSize(6,64);
const dim3 blockSize(THREADS_X, THREADS_Y);
flip_kernel<T><<<gridSize, blockSize, 0, stream>>>(
(T*)img.data, img.step/sizeof(T),
img.cols, img.rows);
cudaSafeCall( cudaGetLastError() );
}
template void ftl::cuda::flip<float>(cv::cuda::GpuMat &,cudaStream_t stream);
template void ftl::cuda::flip<uchar4>(cv::cuda::GpuMat &,cudaStream_t stream);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment