Skip to content
Extraits de code Groupes Projets
Vérifiée Valider 3c4e48f9 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

MISC: Add a parallel_for macro for `#pragma omp parallel for \nfor (...)`

This is done to have a good formating with clang-format
parent 50417559
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!6Add document views
...@@ -63,6 +63,7 @@ ForEachMacros: ...@@ -63,6 +63,7 @@ ForEachMacros:
- 'FOR_EVER_IF' - 'FOR_EVER_IF'
- 'FOR_EVER_UNTIL' - 'FOR_EVER_UNTIL'
- 'FOR_EACH_FLAT_LIST_ITEM' - 'FOR_EACH_FLAT_LIST_ITEM'
- 'parallel_for'
IncludeCategories: IncludeCategories:
- Regex: '.*' - Regex: '.*'
......
...@@ -10,8 +10,13 @@ ...@@ -10,8 +10,13 @@
#include <QtGlobal> #include <QtGlobal>
#include <type_traits> #include <type_traits>
// Prety define for OpenMP's parallel for loop with indentation not fucked up
// by clang-format.
#define parallel_for \
_Pragma("omp parallel for") for
// Don't move this object, create it in one place and never move it again.
#define VIVY_UNMOVABLE_OBJECT(classname) \ #define VIVY_UNMOVABLE_OBJECT(classname) \
/* Don't move this object around */ \
classname(const classname &) = delete; /* Copy */ \ classname(const classname &) = delete; /* Copy */ \
classname(classname &&) = delete; /* Move */ \ classname(classname &&) = delete; /* Move */ \
classname &operator=(const classname &) = delete; /* Copy assign */ \ classname &operator=(const classname &) = delete; /* Copy assign */ \
......
...@@ -55,8 +55,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent ...@@ -55,8 +55,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent
/* Compute the image data */ /* Compute the image data */
for (size_t x = 0, i = 0; i < size - height; i += decalage, ++x) { for (size_t x = 0, i = 0; i < size - height; i += decalage, ++x) {
#pragma omp parallel for parallel_for (size_t j = 0; j < height; j++) {
for (size_t j = 0; j < height; j++) {
const double curr_dat = decodedData[i + j]; const double curr_dat = decodedData[i + j];
const double window_modifier = const double window_modifier =
(1 - cos(2 * M_PI * static_cast<double>(j) / static_cast<double>(height - 1))) / 2; (1 - cos(2 * M_PI * static_cast<double>(j) / static_cast<double>(height - 1))) / 2;
...@@ -67,8 +66,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent ...@@ -67,8 +66,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent
av_rdft_calc(ctx.get(), chunkData.get()); av_rdft_calc(ctx.get(), chunkData.get());
#pragma omp parallel for parallel_for (size_t j = 0; j < height / 2; j++) {
for (size_t j = 0; j < height / 2; j++) {
const float im = chunkData[j * 2]; const float im = chunkData[j * 2];
const float re = chunkData[j * 2 + 1]; const float re = chunkData[j * 2 + 1];
const float mag = sqrtf(im * im + re * re); const float mag = sqrtf(im * im + re * re);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter