renderTest.cpp 2.07 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm
//
// Basic MultiFileInput tests

#include "common/testing.hpp"
#include "common/util.hpp"
#include "libvideostitch/gpu_device.hpp"

#include <render/fillRenderer.hpp>

namespace VideoStitch {
namespace Testing {

void testFillRenderer() {
  const uint32_t color = Image::RGBA::pack(0x00, 0xff, 0x22, 0xff);
  const uint32_t bgcolor = Image::RGBA::pack(0x11, 0xff, 0x33, 0xff);

  PackedDeviceBuffer buffer(73, 117);
  const Render::FillRenderer renderer;
  // Whole area
  {
    buffer.fill(0x44, 0x55, 0x00);
    renderer.draw(buffer.ptr(), buffer.width, buffer.height, 0, 0, 73, 117, color, bgcolor, (cudaStream_t)NULL);
    PackedDeviceBuffer reference(73, 117);
    reference.readPngFromFile("data/render/fill1.png");
    buffer.ENSURE_EQ(reference);
  }
  // In the middle
  {
    buffer.fill(0x44, 0x55, 0x00);
    renderer.draw(buffer.ptr(), buffer.width, buffer.height, 15, 72, 42, 110, color, bgcolor, (cudaStream_t)NULL);
    buffer.dumpToPng("dump.png");
    PackedDeviceBuffer reference(73, 117);
    reference.readPngFromFile("data/render/fill2.png");
    buffer.ENSURE_EQ(reference);
  }
  // On the border, cropped
  {
    buffer.fill(0x44, 0x55, 0x00);
    renderer.draw(buffer.ptr(), buffer.width, buffer.height, 15, 72, 42, 220, color, bgcolor, (cudaStream_t)NULL);
    buffer.dumpToPng("dump.png");
    PackedDeviceBuffer reference(73, 117);
    reference.readPngFromFile("data/render/fill3.png");
    buffer.ENSURE_EQ(reference);
  }
  // In the corner, cropped
  {
    buffer.fill(0x44, 0x55, 0x00);
    renderer.draw(buffer.ptr(), buffer.width, buffer.height, 15, 72, 300, 220, color, bgcolor, (cudaStream_t)NULL);
    buffer.dumpToPng("dump.png");
    PackedDeviceBuffer reference(73, 117);
    reference.readPngFromFile("data/render/fill4.png");
    buffer.ENSURE_EQ(reference);
  }
}

}  // namespace Testing
}  // namespace VideoStitch

int main() {
  VideoStitch::Testing::initTest();
  VideoStitch::Testing::ENSURE(VideoStitch::GPU::setDefaultBackendDevice(0));

  VideoStitch::Testing::testFillRenderer();
  return 0;
}