jfjoch_viewer: Use multiple threads to color images
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m12s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m19s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m29s
Build Packages / Generate python client (push) Successful in 13s
Build Packages / build:rpm (rocky8) (push) Successful in 12m50s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m57s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m10s
Build Packages / Build documentation (push) Successful in 37s
Build Packages / build:rpm (rocky9) (push) Successful in 13m50s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m39s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m46s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 10m53s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 11m49s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 11m54s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 12m9s
Build Packages / Generate python client (pull_request) Successful in 11s
Build Packages / Build documentation (pull_request) Successful in 35s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 9m58s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8) (pull_request) Successful in 10m9s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 9m21s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 9m58s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 11m7s
Build Packages / Unit tests (push) Successful in 1h2m15s
Build Packages / Unit tests (pull_request) Successful in 54m8s
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m12s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m19s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m29s
Build Packages / Generate python client (push) Successful in 13s
Build Packages / build:rpm (rocky8) (push) Successful in 12m50s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 12m57s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m10s
Build Packages / Build documentation (push) Successful in 37s
Build Packages / build:rpm (rocky9) (push) Successful in 13m50s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m39s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m46s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 10m53s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 11m49s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 11m54s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 12m9s
Build Packages / Generate python client (pull_request) Successful in 11s
Build Packages / Build documentation (pull_request) Successful in 35s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 9m58s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky8) (pull_request) Successful in 10m9s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 9m21s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 9m58s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 11m7s
Build Packages / Unit tests (push) Successful in 1h2m15s
Build Packages / Unit tests (pull_request) Successful in 54m8s
This commit is contained in:
@@ -5,7 +5,7 @@ SET(CMAKE_AUTOMOC ON)
|
||||
SET(CMAKE_AUTORCC ON)
|
||||
SET(CMAKE_AUTOUIC ON)
|
||||
|
||||
FIND_PACKAGE(Qt6 COMPONENTS Core Gui Widgets Charts DBus REQUIRED)
|
||||
FIND_PACKAGE(Qt6 COMPONENTS Core Gui Widgets Charts DBus Concurrent REQUIRED)
|
||||
|
||||
QT_ADD_RESOURCES(APP_RESOURCES resources/resources.qrc)
|
||||
|
||||
@@ -86,7 +86,7 @@ ADD_EXECUTABLE(jfjoch_viewer jfjoch_viewer.cpp JFJochViewerWindow.cpp JFJochView
|
||||
${APP_RESOURCES}
|
||||
)
|
||||
|
||||
TARGET_LINK_LIBRARIES(jfjoch_viewer Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Charts Qt6::DBus
|
||||
TARGET_LINK_LIBRARIES(jfjoch_viewer Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Charts Qt6::DBus Qt6::Concurrent
|
||||
JFJochReader JFJochLogger JFJochCommon JFJochWriter JFJochImageAnalysis)
|
||||
INSTALL(TARGETS jfjoch_viewer RUNTIME COMPONENT viewer)
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <QBuffer>
|
||||
#include <QElapsedTimer>
|
||||
#include <QPainter>
|
||||
#include <QtConcurrent/QtConcurrent>
|
||||
|
||||
JFJochImage::JFJochImage(QWidget *parent) : QGraphicsView(parent) {
|
||||
setDragMode(QGraphicsView::NoDrag); // Disable default drag mode
|
||||
@@ -614,7 +615,12 @@ void JFJochImage::GeneratePixmap() {
|
||||
const float invRangeLog = (range > 0) ? (lutScale / std::log1p(range)) : 0.0f;
|
||||
|
||||
rgb gap_color = color_scale.Apply(ColorScaleSpecial::Gap);
|
||||
for (int y = 0; y < H; ++y) {
|
||||
|
||||
QVector<int> rows;
|
||||
rows.reserve(H);
|
||||
for (int y = 0; y < H; ++y) rows.push_back(y);
|
||||
|
||||
QtConcurrent::blockingMap(rows, [&](int y) {
|
||||
QRgb *scanLine = reinterpret_cast<QRgb*>(qimg.scanLine(y));
|
||||
const float *row = &image_fp[y * W];
|
||||
rgb *out = &image_rgb[y * W];
|
||||
@@ -654,7 +660,7 @@ void JFJochImage::GeneratePixmap() {
|
||||
out[x] = c;
|
||||
scanLine[x] = qRgb(c.r, c.g, c.b);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
pixmap = QPixmap::fromImage(qimg);
|
||||
pixmap.setDevicePixelRatio(1.0);
|
||||
|
||||
Reference in New Issue
Block a user