From ac84d77d14d9461b300f0aa5cb7083ef0c9e5531 Mon Sep 17 00:00:00 2001 From: NADAL Jean-Baptiste Date: Wed, 28 Feb 2024 14:08:42 +0100 Subject: [PATCH] Make openMP tests --- CMakeLists.txt | 4 +++- apps/CMakeLists.txt | 4 ++-- raytracing/CMakeLists.txt | 2 +- raytracing/src/renderer/camera.cpp | 4 ++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b41b05..0e6d1c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,12 @@ -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.19) project(raytracing_challenge VERSION 0.1 DESCRIPTION "Raytracing Challenge in C++" ) +find_package(OpenMP) + add_subdirectory(raytracing) add_subdirectory(apps) add_subdirectory(tests) diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index 21c1b3e..f571604 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.19) project(main) @@ -15,4 +15,4 @@ add_executable(chapter_07 chapter_07.cpp) target_link_libraries(chapter_07 PRIVATE raytracing gcov) add_executable(chapter_09 chapter_09.cpp) -target_link_libraries(chapter_09 PRIVATE raytracing gcov) \ No newline at end of file +target_link_libraries(chapter_09 PRIVATE raytracing gcov OpenMP::OpenMP_CXX) diff --git a/raytracing/CMakeLists.txt b/raytracing/CMakeLists.txt index 4a1edb0..56a1ad4 100644 --- a/raytracing/CMakeLists.txt +++ b/raytracing/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.19) project(raytracing) diff --git a/raytracing/src/renderer/camera.cpp b/raytracing/src/renderer/camera.cpp index 0a1e763..276a2e1 100644 --- a/raytracing/src/renderer/camera.cpp +++ b/raytracing/src/renderer/camera.cpp @@ -29,11 +29,14 @@ /* ------------------------------------------------------------------------- */ #include +#include #include "camera.h" using namespace Raytracer; +#pragma omp parallel for num_threads(omp_get_num_procs()) + /* ------------------------------------------------------------------------- */ Camera::Camera(void) : m_h_size(0), m_v_size(0), m_field_of_view(0), m_half_width(0), m_half_height(0), m_pixel_size(0) @@ -178,6 +181,7 @@ Canvas Camera::render(const World &a_world) { Canvas the_image(m_h_size, m_v_size); +#pragma omp parallel for shared(the_image) for (int y = 0; y < m_v_size - 1; y++) { for (int x = 0; x < m_h_size - 1; x++)