From 1bed07e8a26f04c1c4c1628f5f57e264e035c1a6 Mon Sep 17 00:00:00 2001
From: Mara Vogt <mvogt@uni-koblenz.de>
Date: Wed, 25 Aug 2021 16:14:44 +0200
Subject: [PATCH] [#94] fixed compile error by re-adding the textureData struct
 in the saf-r project itself

---
 projects/saf_r/src/main.cpp      |  2 +-
 projects/saf_r/src/safrScene.cpp |  4 ++--
 projects/saf_r/src/safrScene.hpp | 13 ++++++++++++-
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/projects/saf_r/src/main.cpp b/projects/saf_r/src/main.cpp
index f84fcd0a..45da7182 100644
--- a/projects/saf_r/src/main.cpp
+++ b/projects/saf_r/src/main.cpp
@@ -101,7 +101,7 @@ int main(int argc, const char** argv) {
 	lights.push_back(safrScene::Light(glm::vec3(30, 20, 30), 1.7));
 	//create the raytracer image for rendering
 	safrScene scene;
-	vkcv::asset::TextureData texData = scene.render(spheres, lights);
+	safrScene::TextureData texData = scene.render(spheres, lights);
 
 	vkcv::Image texture = core.createImage(vk::Format::eR8G8B8A8Unorm, texData.width, texData.height);
 	texture.fill(texData.data.data());
diff --git a/projects/saf_r/src/safrScene.cpp b/projects/saf_r/src/safrScene.cpp
index 72d3072b..aacf879a 100644
--- a/projects/saf_r/src/safrScene.cpp
+++ b/projects/saf_r/src/safrScene.cpp
@@ -56,7 +56,7 @@ glm::vec3 safrScene::castRay(const glm::vec3& orig, const glm::vec3& dir, const
 		glm::vec3(1., 1., 1.) * specular_light_intensity * material.albedo[1] + reflect_color * material.albedo[2];
 }
 
-vkcv::asset::TextureData safrScene::render(const std::vector<safrScene::Sphere>& spheres, const std::vector<safrScene::Light>& lights) {
+safrScene::TextureData safrScene::render(const std::vector<safrScene::Sphere>& spheres, const std::vector<safrScene::Light>& lights) {
 	//constants for the image data
 	const int width = 800;
 	const int height = 600;
@@ -86,7 +86,7 @@ vkcv::asset::TextureData safrScene::render(const std::vector<safrScene::Sphere>&
 		data.push_back(static_cast<uint8_t>(255.f));
 	}
 
-	vkcv::asset::TextureData textureData;
+	safrScene::TextureData textureData;
 	textureData.width = width;
 	textureData.height = height;
 	textureData.componentCount = 4;
diff --git a/projects/saf_r/src/safrScene.hpp b/projects/saf_r/src/safrScene.hpp
index b7cfa24b..fa1f9dd4 100644
--- a/projects/saf_r/src/safrScene.hpp
+++ b/projects/saf_r/src/safrScene.hpp
@@ -13,6 +13,17 @@
 class safrScene {
 
 public:
+
+    /**
+     * WORKAROUND
+     * moved the texture data struct from the old asset loader version, because it is necessary for our rendering for now
+     */
+    struct TextureData {
+        int width;
+        int height;
+        int componentCount;
+        std::vector<char*> data;
+    };
 	/*
 	* Light struct with a position and intensity of the light source
 	*/
@@ -68,7 +79,7 @@ public:
 	* @param vector: all light sources in the scene
 	* @return TextureData: texture data for the buffers
 	*/
-	vkcv::asset::TextureData render(const std::vector<Sphere>& spheres, const std::vector<Light>& lights);
+	TextureData render(const std::vector<Sphere>& spheres, const std::vector<Light>& lights);
 
 private:
 	/*
-- 
GitLab