summaryrefslogtreecommitdiff
path: root/src/test/testlauncher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/testlauncher.cpp')
-rw-r--r--src/test/testlauncher.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/test/testlauncher.cpp b/src/test/testlauncher.cpp
index 626ac7490..34a126a4e 100644
--- a/src/test/testlauncher.cpp
+++ b/src/test/testlauncher.cpp
@@ -32,12 +32,18 @@
#include "utils/gettext.h"
#include "utils/mkdir.h"
+#include "utils/physfsrwops.h"
+#include "resources/dye.h"
#include "resources/image.h"
+#include "resources/imagehelper.h"
+#include "resources/imagewriter.h"
#include "resources/wallpaper.h"
#include <unistd.h>
+#include <SDL_gfxBlitFunc.h>
+
#ifdef WIN32
#include <windows.h>
#define sleep(seconds) Sleep((seconds) * 1000)
@@ -74,6 +80,8 @@ int TestLauncher::exec()
return testVideoDetection();
else if (mTest == "100")
return testInternal();
+ else if (mTest == "101")
+ return testDye();
return -1;
}
@@ -226,6 +234,61 @@ int TestLauncher::testInternal()
return 0;
}
+int TestLauncher::testDye()
+{
+ SDL_RWops *rw = PHYSFSRWOPS_openRead(
+ "graphics/sprites/arrow_up.png");
+ Dye *d = nullptr;
+
+ logger->log("test1");
+ if (rw)
+ {
+ logger->log("test2");
+ Image *image = d ? sdlImageHelper->load(rw, *d)
+ : sdlImageHelper->load(rw);
+ if (image)
+ {
+ logger->log("test3");
+ const SDL_Rect &rect = image->mBounds;
+ SDL_Surface *surface = sdlImageHelper->create32BitSurface(
+ rect.w, rect.h);
+ if (surface)
+ {
+ logger->log("test4");
+ SDL_gfxBlitRGBA(image->mSDLSurface, nullptr, surface, nullptr);
+ ImageWriter::writePNG(image->mSDLSurface,
+ Client::getTempDirectory() + "/testimage1.png");
+ ImageWriter::writePNG(surface,
+ Client::getTempDirectory() + "/testimage2.png");
+ }
+
+ logger->log("test5");
+ rw = PHYSFSRWOPS_openRead(
+ "graphics/sprites/arrow_up.png");
+ d = new Dye("S:#0000ff,00ff00,5c5cff,ff0000");
+ image = d ? sdlImageHelper->load(rw, *d)
+ : sdlImageHelper->load(rw);
+ if (image)
+ {
+ logger->log("test6");
+ surface = sdlImageHelper->create32BitSurface(
+ rect.w, rect.h);
+ if (surface)
+ {
+ logger->log("test7");
+ SDL_gfxBlitRGBA(image->mSDLSurface, nullptr,
+ surface, nullptr);
+ ImageWriter::writePNG(image->mSDLSurface,
+ Client::getTempDirectory() + "/testimage3.png");
+ ImageWriter::writePNG(surface,
+ Client::getTempDirectory() + "/testimage4.png");
+ }
+ }
+ }
+ }
+ return 0;
+}
+
int TestLauncher::testVideoDetection()
{
file << mTest << std::endl;