// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include "backend/common/core/types.hpp" // TODODEPTH the input textures are currently passed hardcoded as we don't support // a variable length array of surfaces yet in the GPU backends #define NUM_INPUTS 6 // 171013 GTX 780M: ~1 sec #define SWEEP_ULTRA_FAST 1 // 171013 GTX 780M: ~4 sec #define SWEEP_FAST 2 // 171013 GTX 780M: ~10 sec #define SWEEP_MEDIUM 3 // 171013 GTX 780M: ~1 min #define SWEEP_PLACEBO 4 // select sphere sweep preset to use #define SWEEP_ALGO_PRESET SWEEP_MEDIUM struct InputParams { float2 scale; float2 centerShift; vsDistortion distortion; vsfloat3x4 transform; vsfloat3x4 inverseTransform; int texWidth; int texHeight; int cropLeft; int cropRight; int cropTop; int cropBottom; }; struct InputParams6 { struct InputParams params[6]; }; #if SWEEP_ALGO_PRESET == SWEEP_ULTRA_FAST static const int numSphereScales = 16; static const int numSphereScalesRefine = 5; static const int patchWidth = 1; static const int patchHeight = 1; static const int patchWidthStep = 1; static const int patchHeightStep = 1; #elif SWEEP_ALGO_PRESET == SWEEP_FAST static const int numSphereScales = 32; static const int numSphereScalesRefine = 9; static const int patchWidth = 5; static const int patchHeight = 5; static const int patchWidthStep = 3; static const int patchHeightStep = 3; #elif SWEEP_ALGO_PRESET == SWEEP_MEDIUM static const int numSphereScales = 32; static const int numSphereScalesRefine = 17; static const int patchWidth = 7; static const int patchHeight = 7; static const int patchWidthStep = 5; static const int patchHeightStep = 5; #elif SWEEP_ALGO_PRESET == SWEEP_PLACEBO static const int numSphereScales = 128; static const int numSphereScalesRefine = 33; static const int patchWidth = 11; static const int patchHeight = 11; static const int patchWidthStep = 7; static const int patchHeightStep = 7; #else #error Select a valid SWEEP preset #endif static const int patchSize = patchWidth * patchHeight; static const int patchSizeStep = patchWidthStep * patchHeightStep;