Merge branch 'dev' into mlsharpen_review

This commit is contained in:
Ingo Weyrich 2020-02-09 11:31:55 +01:00
commit dc98f069cb
144 changed files with 4695 additions and 3594 deletions

View File

@ -252,9 +252,11 @@ if(NOT DEFINED APPDATADIR)
endif()
endif()
if (NOT APPLE)
if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}")
set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}")
endif()
endif()
if(APPLE)
if("${CODESIGNID}")
@ -263,7 +265,11 @@ if(APPLE)
if("${NOTARY}")
set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity")
endif()
if("${LOCAL_PREFIX}")
set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory ie /usr or /opt")
elseif(NOT DEFINED LOCAL_PREFIX)
set(LOCAL_PREFIX "/usr")
endif()
endif()
# Enforce absolute paths for non-bundle builds:
@ -396,7 +402,7 @@ if(WITH_PROF)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result -Wunused-macros")
if(OPTION_OMP)
find_package(OpenMP)
if(OPENMP_FOUND)

View File

@ -1,6 +1,6 @@
RawTherapee - A powerful, cross-platform raw image processing program.
Copyright (C) 2004-2012 Gabor Horvath <hgabor@rawtherapee.com>
Copyright (C) 2010-2019 RawTherapee development team.
Copyright (C) 2010-2020 RawTherapee development team.
RawTherapee is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@ -1,4 +1,4 @@
RAWTHERAPEE 5.7-dev RELEASE NOTES
RAWTHERAPEE 5.8-dev RELEASE NOTES
This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them.
@ -8,7 +8,7 @@ https://rawpedia.rawtherapee.com/
While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that:
- Development versions only had limited testing, so there may be bugs unknown to us.
- You should report these bugs so that they get fixed for the next stable release. See
www.rawpedia.rawtherapee.com/How_to_write_useful_bug_reports
https://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports
- The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version.
- Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of.
@ -26,14 +26,14 @@ In order to use RawTherapee efficiently you should know that:
- All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to a meaningful axis (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning.
- There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page!
New features since 5.7:
New features since 5.8:
- TODO
NEWS RELEVANT TO PACKAGE MAINTAINERS
New since 5.7:
New since 5.8:
- TODO
In general:

View File

@ -19,13 +19,12 @@
<url type="donation">https://www.paypal.me/rawtherapee</url>
<url type="help">https://rawpedia.rawtherapee.com</url>
<url type="homepage">https://www.rawtherapee.com</url>
<url type="translate">https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594</url>
<url type="translate">https://rawpedia.rawtherapee.com/Main_Page#Localization</url>
<launchable type="desktop-id">rawtherapee.desktop</launchable>
<releases>
<release version="5.8" date="2020-02-04" type="stable"></release>
<release version="5.7" date="2019-09-10" type="stable"></release>
<release version="5.6" date="2019-04-20" type="stable"></release>
<release version="5.6~rc2" date="2019-04-17" type="development"></release>
<release version="5.6~rc1" date="2019-04-10" type="development"></release>
<release version="5.5" date="2018-12-17" type="stable"></release>
</releases>
<provides>

View File

@ -29,9 +29,12 @@ if(UNIX)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR})
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-32.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-64.png" DESTINATION "${ICONSDIR}/hicolor/64x64/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png)
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/svg/rt-logo.svg" DESTINATION "${ICONSDIR}/hicolor/scalable/apps" RENAME rawtherapee.svg)
endif()
install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 83 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -1354,6 +1354,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
@ -1920,6 +1921,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!TP_LABCURVE_CURVEEDITOR_LH;LH
!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H)
!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L)
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -1401,6 +1401,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom
@ -1885,6 +1886,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones.
!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2335,6 +2335,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!PARTIALPASTE_FILMNEGATIVE;Film Negative
!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode
!TP_DEHAZE_LUMINANCE;Luminance only
@ -2344,6 +2345,8 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_PDSHARPENING_LABEL;Capture Sharpening
!TP_SHARPENING_ITERCHECK;Auto limit iterations
!TP_SHARPENING_RADIUS_BOOST;Corner radius boost

View File

@ -2392,4 +2392,7 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: <b>-</b>
!GENERAL_HELP;Help
!HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations
!HISTORY_MSG_TRANS_Method;Geometry - Method
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_SHARPENING_ITERCHECK;Auto limit iterations

View File

@ -876,6 +876,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT;Add
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!HISTORY_SNAPSHOT;Snapshot
@ -1792,6 +1793,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_LENSGEOM_AUTOCROP;Auto-Crop
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -788,6 +788,7 @@
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT;Add
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!HISTORY_SNAPSHOT;Snapshot
@ -1776,6 +1777,8 @@
!TP_LENSGEOM_AUTOCROP;Auto-Crop
!TP_LENSGEOM_FILL;Auto-fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2334,6 +2334,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: <b>-</b>
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
!HISTORY_MSG_TRANS_Method;Geometry - Method
!MAIN_FRAME_PLACES_DEL;Remove
!MAIN_TAB_FAVORITES;Favorites
!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: <b>Alt-u</b>
@ -2362,6 +2363,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -2278,6 +2278,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!MAIN_FRAME_PLACES_DEL;Remove
!PARTIALPASTE_FILMNEGATIVE;Film Negative
!PROGRESSBAR_DECODING;Decoding...
@ -2295,6 +2296,8 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -1579,6 +1579,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom
@ -1946,6 +1947,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2314,3 +2314,6 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
!!!!!!!!!!!!!!!!!!!!!!!!!
!GENERAL_HELP;Help
!HISTORY_MSG_TRANS_Method;Geometry - Method
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic

View File

@ -1288,6 +1288,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: <b>Alt-s</b>
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
@ -1912,6 +1913,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones.
!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection
!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2076,6 +2076,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom
@ -2256,6 +2257,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

File diff suppressed because it is too large Load Diff

View File

@ -2276,6 +2276,7 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!MAIN_FRAME_PLACES_DEL;Remove
!PARTIALPASTE_FILMNEGATIVE;Film Negative
!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode
@ -2294,6 +2295,8 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: <b>-</b>
!TP_FILMNEGATIVE_LABEL;Film Negative
!TP_FILMNEGATIVE_PICK;Pick neutral spots
!TP_FILMNEGATIVE_RED;Red ratio
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -2283,6 +2283,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations
!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius
!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost
!HISTORY_MSG_TRANS_Method;Geometry - Method
!PARTIALPASTE_FILMNEGATIVE;Film Negative
!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched.
!PROGRESSBAR_DECODING;Decoding...
@ -2295,6 +2296,8 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
!TP_FILMNEGATIVE_GREEN;Reference exponent (contrast)
!TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards.
!TP_FILMNEGATIVE_LABEL;Film Negative
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!TP_LENSPROFILE_USE_HEADER;Correct
!TP_PDSHARPENING_LABEL;Capture Sharpening

View File

@ -1736,6 +1736,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius
!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom
@ -2014,6 +2015,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected
!TP_LENSPROFILE_MODE_HEADER;Lens Profile

View File

@ -1554,6 +1554,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom
@ -1947,6 +1948,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -2308,4 +2308,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Out\nBližnjica: <b>-</b>
!GENERAL_HELP;Help
!HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations
!HISTORY_MSG_TRANS_Method;Geometry - Method
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_SHARPENING_ITERCHECK;Auto limit iterations

View File

@ -1903,6 +1903,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light
!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength
!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor
!HISTORY_MSG_TRANS_Method;Geometry - Method
!ICCPROFCREATOR_COPYRIGHT;Copyright:
!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0"
!ICCPROFCREATOR_CUSTOM;Custom
@ -2150,6 +2151,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!TP_ICM_WORKING_TRC_NONE;None
!TP_ICM_WORKING_TRC_SLOPE;Slope
!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles.
!TP_LENSGEOM_LIN;Linear
!TP_LENSGEOM_LOG;Logarithmic
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected

View File

@ -12,6 +12,11 @@ include_directories(${EXTRA_INCDIR}
${LENSFUN_INCLUDE_DIRS}
${RSVG_INCLUDE_DIRS}
)
if(NOT WITH_SYSTEM_KLT)
include_directories("${CMAKE_SOURCE_DIR}/rtengine/klt")
else()
include_directories(${KLT_INCLUDE_DIRS})
endif()
link_directories("${PROJECT_SOURCE_DIR}/rtexif"
${EXPAT_LIBRARY_DIRS}
@ -186,6 +191,7 @@ target_link_libraries(rtengine rtexif
${ZLIB_LIBRARIES}
${LENSFUN_LIBRARIES}
${RSVG_LIBRARIES}
${KLT_LIBRARIES}
)
install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

View File

@ -56,7 +56,6 @@
#define TS 64 // Tile size
#define offset 25 // shift between tiles
#define fTS ((TS/2+1)) // second dimension of Fourier tiles
#define blkrad 1 // radius of block averaging
#define epsilon 0.001f/(TS*TS) //tolerance

View File

@ -5,8 +5,8 @@ locations (before and after tracking) to text files and to PPM files,
and prints the features to the screen.
**********************************************************************/
#include "klt/pnmio.h"
#include "klt/klt.h"
#include <pnmio.h>
#include <klt.h>
#include <cmath>
#include <cstring>

View File

@ -638,7 +638,7 @@ CameraConst::update_globalGreenEquilibration(bool other)
}
bool
CameraConstantsStore::parse_camera_constants_file(Glib::ustring filename_)
CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_)
{
// read the file into a single long string
const char *filename = filename_.c_str();
@ -809,7 +809,7 @@ CameraConstantsStore::~CameraConstantsStore()
}
}
void CameraConstantsStore::init(Glib::ustring baseDir, Glib::ustring userSettingsDir)
void CameraConstantsStore::init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir)
{
parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));

View File

@ -3,10 +3,17 @@
*/
#pragma once
#include <glibmm/ustring.h>
#include <map>
#include <string>
#include <vector>
namespace Glib
{
class ustring;
}
namespace rtengine
{
@ -14,7 +21,7 @@ struct camera_const_levels {
int levels[4];
};
class CameraConst
class CameraConst final
{
private:
std::string make_model;
@ -56,17 +63,17 @@ public:
void update_globalGreenEquilibration(bool other);
};
class CameraConstantsStore
class CameraConstantsStore final
{
private:
std::map<std::string, CameraConst *> mCameraConstants;
CameraConstantsStore();
bool parse_camera_constants_file(Glib::ustring filename);
bool parse_camera_constants_file(const Glib::ustring& filename);
public:
~CameraConstantsStore();
void init(Glib::ustring baseDir, Glib::ustring userSettingsDir);
void init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir);
static CameraConstantsStore *getInstance(void);
CameraConst *get(const char make[], const char model[]);
};

View File

@ -18,6 +18,7 @@
*/
// Code adapted from ART
// https://bitbucket.org/agriggio/art/
/*
*
* This file is part of ART.
@ -37,9 +38,14 @@
*/
// Code adapted from libraw
/* -*- C++ -*-
* Copyright 2019 LibRaw LLC (info@libraw.org)
// https://github.com/LibRaw/LibRaw/
/*
* File: libraw_crxdec.cpp
* Copyright (C) 2018-2019 Alexey Danilchenko
* Copyright (C) 2019 Alex Tutubalin, LibRaw LLC
*
Canon CR3 file decoder
LibRaw is free software; you can redistribute it and/or modify
it under the terms of the one of two licenses as you choose:

View File

@ -33,6 +33,50 @@
namespace {
void compute13x13kernel(float sigma, float kernel[13][13]) {
const double temp = -2.f * rtengine::SQR(sigma);
float sum = 0.f;
for (int i = -6; i <= 6; ++i) {
for (int j = -6; j <= 6; ++j) {
if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 2.0)) {
kernel[i + 6][j + 6] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp);
sum += kernel[i + 6][j + 6];
} else {
kernel[i + 6][j + 6] = 0.f;
}
}
}
for (int i = 0; i < 13; ++i) {
for (int j = 0; j < 13; ++j) {
kernel[i][j] /= sum;
}
}
}
void compute9x9kernel(float sigma, float kernel[9][9]) {
const double temp = -2.f * rtengine::SQR(sigma);
float sum = 0.f;
for (int i = -4; i <= 4; ++i) {
for (int j = -4; j <= 4; ++j) {
if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 1.5)) {
kernel[i + 4][j + 4] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp);
sum += kernel[i + 4][j + 4];
} else {
kernel[i + 4][j + 4] = 0.f;
}
}
}
for (int i = 0; i < 9; ++i) {
for (int j = 0; j < 9; ++j) {
kernel[i][j] /= sum;
}
}
}
void compute7x7kernel(float sigma, float kernel[7][7]) {
const double temp = -2.f * rtengine::SQR(sigma);
@ -183,6 +227,105 @@ void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT di
}
}
void gauss9x9div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[9][9])
{
const float c42 = kernel[0][2];
const float c41 = kernel[0][3];
const float c40 = kernel[0][4];
const float c33 = kernel[1][1];
const float c32 = kernel[1][2];
const float c31 = kernel[1][3];
const float c30 = kernel[1][4];
const float c22 = kernel[2][2];
const float c21 = kernel[2][3];
const float c20 = kernel[2][4];
const float c11 = kernel[3][3];
const float c10 = kernel[3][4];
const float c00 = kernel[4][4];
for (int i = 4; i < tileSize - 4; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 4; j < tileSize - 4; ++j) {
const float val = c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f);
}
}
}
void gauss13x13div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[13][13])
{
const float c60 = kernel[0][6];
const float c53 = kernel[1][3];
const float c52 = kernel[1][4];
const float c51 = kernel[1][5];
const float c50 = kernel[1][6];
const float c44 = kernel[2][2];
const float c42 = kernel[2][4];
const float c41 = kernel[2][5];
const float c40 = kernel[2][6];
const float c33 = kernel[3][3];
const float c32 = kernel[3][4];
const float c31 = kernel[3][5];
const float c30 = kernel[3][6];
const float c22 = kernel[4][4];
const float c21 = kernel[4][5];
const float c20 = kernel[4][6];
const float c11 = kernel[5][5];
const float c10 = kernel[5][6];
const float c00 = kernel[6][6];
for (int i = 6; i < tileSize - 6; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 6; j < tileSize - 6; ++j) {
const float val = c60 * (src[i - 6][j] + src[i][j - 6] + src[i][j + 6] + src[i + 6][j]) +
c53 * ((src[i - 5][j - 3] + src[i - 5][j + 3]) + (src[i - 3][j - 5] + src[i - 3][j + 5]) + (src[i + 3][j - 5] + src[i + 3][j + 5]) + (src[i + 5][j - 3] + src[i + 5][j + 3])) +
c52 * ((src[i - 5][j - 2] + src[i - 5][j + 2]) + (src[i - 2][j - 5] + src[i - 2][j + 5]) + (src[i + 2][j - 5] + src[i + 2][j + 5]) + (src[i + 5][j - 2] + src[i + 5][j + 2])) +
c51 * ((src[i - 5][j - 1] + src[i - 5][j + 1]) + (src[i - 1][j - 5] + src[i - 1][j + 5]) + (src[i + 1][j - 5] + src[i + 1][j + 5]) + (src[i + 5][j - 1] + src[i + 5][j + 1])) +
c50 * ((src[i - 5][j] + src[i][j - 5] + src[i][j + 5] + src[i + 5][j]) + ((src[i - 4][j - 3] + src[i - 4][j + 3]) + (src[i - 3][j - 4] + src[i - 3][j + 4]) + (src[i + 3][j - 4] + src[i + 3][j + 4]) + (src[i + 4][j - 3] + src[i + 4][j + 3]))) +
c44 * (src[i - 4][j - 4] + src[i - 4][j + 4] + src[i + 4][j - 4] + src[i + 4][j + 4]) +
c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f);
}
}
}
void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[3][3])
{
const float c11 = kernel[0][0];
@ -267,6 +410,105 @@ void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize
}
}
void gauss9x9mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[9][9])
{
const float c42 = kernel[0][2];
const float c41 = kernel[0][3];
const float c40 = kernel[0][4];
const float c33 = kernel[1][1];
const float c32 = kernel[1][2];
const float c31 = kernel[1][3];
const float c30 = kernel[1][4];
const float c22 = kernel[2][2];
const float c21 = kernel[2][3];
const float c20 = kernel[2][4];
const float c11 = kernel[3][3];
const float c10 = kernel[3][4];
const float c00 = kernel[4][4];
for (int i = 4; i < tileSize - 4; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 4; j < tileSize - 4; ++j) {
const float val = c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] *= val;
}
}
}
void gauss13x13mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[13][13])
{
const float c60 = kernel[0][6];
const float c53 = kernel[1][3];
const float c52 = kernel[1][4];
const float c51 = kernel[1][5];
const float c50 = kernel[1][6];
const float c44 = kernel[2][2];
const float c42 = kernel[2][4];
const float c41 = kernel[2][5];
const float c40 = kernel[2][6];
const float c33 = kernel[3][3];
const float c32 = kernel[3][4];
const float c31 = kernel[3][5];
const float c30 = kernel[3][6];
const float c22 = kernel[4][4];
const float c21 = kernel[4][5];
const float c20 = kernel[4][6];
const float c11 = kernel[5][5];
const float c10 = kernel[5][6];
const float c00 = kernel[6][6];
for (int i = 6; i < tileSize - 6; ++i) {
// I tried hand written SSE code but gcc vectorizes better
#if defined(__clang__)
#pragma clang loop vectorize(assume_safety)
#elif defined(__GNUC__)
#pragma GCC ivdep
#endif
for (int j = 6; j < tileSize - 6; ++j) {
const float val = c60 * (src[i - 6][j] + src[i][j - 6] + src[i][j + 6] + src[i + 6][j]) +
c53 * ((src[i - 5][j - 3] + src[i - 5][j + 3]) + (src[i - 3][j - 5] + src[i - 3][j + 5]) + (src[i + 3][j - 5] + src[i + 3][j + 5]) + (src[i + 5][j - 3] + src[i + 5][j + 3])) +
c52 * ((src[i - 5][j - 2] + src[i - 5][j + 2]) + (src[i - 2][j - 5] + src[i - 2][j + 5]) + (src[i + 2][j - 5] + src[i + 2][j + 5]) + (src[i + 5][j - 2] + src[i + 5][j + 2])) +
c51 * ((src[i - 5][j - 1] + src[i - 5][j + 1]) + (src[i - 1][j - 5] + src[i - 1][j + 5]) + (src[i + 1][j - 5] + src[i + 1][j + 5]) + (src[i + 5][j - 1] + src[i + 5][j + 1])) +
c50 * ((src[i - 5][j] + src[i][j - 5] + src[i][j + 5] + src[i + 5][j]) + ((src[i - 4][j - 3] + src[i - 4][j + 3]) + (src[i - 3][j - 4] + src[i - 3][j + 4]) + (src[i + 3][j - 4] + src[i + 3][j + 4]) + (src[i + 4][j - 3] + src[i + 4][j + 3]))) +
c44 * (src[i - 4][j - 4] + src[i - 4][j + 4] + src[i + 4][j - 4] + src[i + 4][j + 4]) +
c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) +
c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) +
c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) +
c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) +
c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) +
c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) +
c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) +
c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) +
c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) +
c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) +
c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) +
c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) +
c00 * src[i][j];
dst[i][j] *= val;
}
}
}
void buildClipMaskBayer(const float * const *rawData, int W, int H, float** clipMask, const float whites[2][2])
{
@ -522,8 +764,12 @@ bool checkForStop(float** tmpIThr, float** iterCheck, int fullTileSize, int bord
void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal)
{
BENCHFUN
const bool is9x9 = (sigma <= 1.50 && sigmaCornerOffset == 0.0);
const bool is7x7 = (sigma <= 1.15 && sigmaCornerOffset == 0.0);
const bool is5x5 = (sigma <= 0.84 && sigmaCornerOffset == 0.0);
const bool is3x3 = (sigma < 0.6 && sigmaCornerOffset == 0.0);
float kernel13[13][13];
float kernel9[9][9];
float kernel7[7][7];
float kernel5[5][5];
float kernel3[3][3];
@ -531,14 +777,18 @@ BENCHFUN
compute3x3kernel(sigma, kernel3);
} else if (is5x5) {
compute5x5kernel(sigma, kernel5);
} else {
} else if (is7x7) {
compute7x7kernel(sigma, kernel7);
} else if (is9x9) {
compute9x9kernel(sigma, kernel9);
} else {
compute13x13kernel(sigma, kernel13);
}
constexpr int tileSize = 32;
const int border = iterations <= 30 ? 5 : 7;
const int border = (is3x3 || is5x5 || is7x7) ? iterations <= 30 ? 5 : 7 : 8;
const int fullTileSize = tileSize + 2 * border;
const float cornerRadius = std::min<float>(1.15f, sigma + sigmaCornerOffset);
const float cornerRadius = std::min<float>(2.f, sigma + sigmaCornerOffset);
const float cornerDistance = sqrt(rtengine::SQR(W * 0.5f) + rtengine::SQR(H * 0.5f));
const float distanceFactor = (cornerRadius - sigma) / cornerDistance;
@ -637,12 +887,52 @@ BENCHFUN
break;
}
}
} else if (is7x7) {
for (int k = 0; k < iterations; ++k) {
// apply 5x5 gaussian blur and divide luminance by result of gaussian blur
gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7);
gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else if (is9x9) {
for (int k = 0; k < iterations; ++k) {
// apply 5x5 gaussian blur and divide luminance by result of gaussian blur
gauss9x9div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel9);
gauss9x9mult(tmpThr, tmpIThr, fullTileSize, kernel9);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else {
if (sigmaCornerOffset != 0.0) {
const float distance = sqrt(rtengine::SQR(i + tileSize / 2 - H / 2) + rtengine::SQR(j + tileSize / 2 - W / 2));
const float sigmaTile = static_cast<float>(sigma) + distanceFactor * distance;
if (sigmaTile >= 0.4f) {
if (sigmaTile > 0.84) { // have to use 7x7 kernel
if (sigmaTile > 1.50) { // have to use 13x13 kernel
float lkernel13[13][13];
compute13x13kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel13);
for (int k = 0; k < iterations; ++k) {
// apply 13x13 gaussian blur and divide luminance by result of gaussian blur
gauss13x13div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel13);
gauss13x13mult(tmpThr, tmpIThr, fullTileSize, lkernel13);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else if (sigmaTile > 1.15) { // have to use 9x9 kernel
float lkernel9[9][9];
compute9x9kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel9);
for (int k = 0; k < iterations; ++k) {
// apply 9x9 gaussian blur and divide luminance by result of gaussian blur
gauss9x9div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel9);
gauss9x9mult(tmpThr, tmpIThr, fullTileSize, lkernel9);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
}
} else if (sigmaTile > 0.84) { // have to use 7x7 kernel
float lkernel7[7][7];
compute7x7kernel(static_cast<float>(sigma) + distanceFactor * distance, lkernel7);
for (int k = 0; k < iterations; ++k) {
@ -668,9 +958,9 @@ BENCHFUN
}
} else {
for (int k = 0; k < iterations; ++k) {
// apply 7x7 gaussian blur and divide luminance by result of gaussian blur
gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7);
gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7);
// apply 13x13 gaussian blur and divide luminance by result of gaussian blur
gauss13x13div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel13);
gauss13x13mult(tmpThr, tmpIThr, fullTileSize, kernel13);
if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) {
break;
}
@ -741,7 +1031,7 @@ BENCHFUN
array2D<float> clipMask(W, H);
constexpr float clipLimit = 0.95f;
constexpr float maxSigma = 1.15f;
constexpr float maxSigma = 2.f;
if (getSensorType() == ST_BAYER) {
const float whites[2][2] = {
@ -790,6 +1080,10 @@ BENCHFUN
}
}
if (std::isnan(radius)) {
return;
}
if (showMask) {
array2D<float>& L = blue; // blue will be overridden anyway => we can use its buffer to store L
#ifdef _OPENMP

View File

@ -23,7 +23,7 @@
namespace rtengine
{
class CieImage :
class CieImage final :
public NonCopyable
{
private:

View File

@ -20,7 +20,6 @@
#pragma once
#include <array>
#include <glibmm/ustring.h>
#include "rt_math.h"
#include "LUT.h"
@ -30,6 +29,13 @@
#define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c)
namespace Glib
{
class ustring;
}
namespace rtengine
{

View File

@ -21,8 +21,7 @@
#include <memory>
#include <cmath>
#include <cstring>
#include <glib.h>
#include <glib/gstdio.h>
#include <glibmm/ustring.h>
#include "rt_math.h"
@ -2186,7 +2185,7 @@ void PerceptualToneCurve::init()
}
}
void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const
void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, const Glib::ustring &workingSpace) const
{
// Get the curve's contrast value, and convert to a chroma scaling

View File

@ -22,21 +22,23 @@
#include <string>
#include <vector>
#include <glibmm/ustring.h>
#include "rt_math.h"
#include "flatcurvetypes.h"
#include "diagonalcurvetypes.h"
#include "pipettebuffer.h"
#include "noncopyable.h"
#include "LUT.h"
#include "sleef.h"
#define CURVES_MIN_POLY_POINTS 1000
#include "rt_math.h"
#define CLIPI(a) ((a)>0?((a)<65534?(a):65534):0)
namespace Glib
{
class ustring;
}
using namespace std;
namespace rtengine
@ -454,7 +456,7 @@ public:
virtual bool isIdentity () const = 0;
};
class DiagonalCurve : public Curve
class DiagonalCurve final : public Curve
{
protected:
@ -476,7 +478,7 @@ public:
};
};
class FlatCurve : public Curve, public rtengine::NonCopyable
class FlatCurve final : public Curve, public rtengine::NonCopyable
{
private:
@ -940,7 +942,7 @@ private:
float calculateToneCurveContrastValue() const;
public:
static void init();
void initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const;
void initApplyState(PerceptualToneCurveState & state, const Glib::ustring& workingSpace) const;
void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b, const PerceptualToneCurveState &state) const;
};

View File

@ -94,7 +94,6 @@
#ifdef WIN32
#include <sys/utime.h>
#include <winsock2.h>
#define snprintf _snprintf
#define strcasecmp stricmp
#define strncasecmp strnicmp
typedef __int64 INT64;
@ -158,7 +157,6 @@ const float d65_white[3] = { 0.950456, 1, 1.088754 };
#define MIN(a,b) rtengine::min(a,static_cast<__typeof__(a)>(b))
#define MAX(a,b) rtengine::max(a,static_cast<__typeof__(a)>(b))
#define LIM(x,min,max) rtengine::LIM(x,static_cast<__typeof__(x)>(min),static_cast<__typeof__(x)>(max))
#define ULIM(x,y,z) rtengine::median(x,static_cast<__typeof__(x)>(y),static_cast<__typeof__(x)>(z))
#define CLIP(x) rtengine::CLIP(x)
#define SWAP(a,b) { a=a+b; b=a-b; a=a-b; }
@ -9868,6 +9866,7 @@ void CLASS identify()
filters = 0;
tiff_samples = colors = 3;
load_raw = &CLASS canon_sraw_load_raw;
FORC4 cblack[c] = 0; // ALB
} else if (!strcmp(model,"PowerShot 600")) {
height = 613;
width = 854;
@ -11021,7 +11020,6 @@ void CLASS nikon_14bit_load_raw()
/*RT*/#undef MIN
/*RT*/#undef ABS
/*RT*/#undef LIM
/*RT*/#undef ULIM
/*RT*/#undef CLIP
#ifdef __GNUC__
#pragma GCC diagnostic pop

View File

@ -24,6 +24,7 @@
#include "dcrop.h"
#include "image8.h"
#include "imagefloat.h"
#include "improccoordinator.h"
#include "labimage.h"
#include "mytime.h"
#include "procparams.h"

View File

@ -18,11 +18,7 @@
*/
#pragma once
#include "improccoordinator.h"
#include "rtengine.h"
#include "improcfun.h"
#include "imagesource.h"
#include "procevents.h"
#include "pipettebuffer.h"
#include "../rtgui/threadutils.h"
@ -30,12 +26,13 @@ namespace rtengine
{
class Image8;
class CieImage;
using namespace procparams;
class ImProcCoordinator;
class Crop : public DetailedCrop, public PipetteBuffer
class Crop final : public DetailedCrop, public PipetteBuffer
{
protected:

View File

@ -31,7 +31,7 @@ namespace rtengine
{
class RawImage;
class dfInfo
class dfInfo final
{
public:
@ -74,7 +74,7 @@ protected:
void updateRawImage();
};
class DFManager
class DFManager final
{
public:
void init(const Glib::ustring &pathname);

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <glib.h>
#include <glib/gstdio.h>
#include "curves.h"
#include <cmath>
#include <vector>

View File

@ -29,7 +29,7 @@ namespace rtengine
{
class RawImage;
class ffInfo
class ffInfo final
{
public:
@ -71,7 +71,7 @@ protected:
void updateRawImage();
};
class FFManager
class FFManager final
{
public:
void init(const Glib::ustring &pathname);

View File

@ -29,6 +29,7 @@
* available at https://arxiv.org/abs/1505.00996
*/
#include "array2D.h"
#include "boxblur.h"
#include "guidedfilter.h"
#include "imagefloat.h"

View File

@ -43,7 +43,6 @@
#include "color.h"
#include "cJSON.h"
#define inkc_constant 0x696E6B43
namespace
{

View File

@ -39,7 +39,7 @@ namespace procparams
typedef const double(*TMatrix)[3];
class ProfileContent
class ProfileContent final
{
public:
ProfileContent();
@ -54,7 +54,7 @@ private:
std::string data;
};
class ICCStore
class ICCStore final
{
public:
enum class ProfileType {

View File

@ -20,7 +20,6 @@
#include <vector>
#include <glibmm/ustring.h>
#include <lcms2.h>
#include "alignedbuffer.h"
@ -41,6 +40,13 @@
#define CHECK_BOUNDS 0
namespace Glib
{
class ustring;
}
namespace rtengine
{
@ -658,7 +664,7 @@ public:
/* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image */
void allocate (int W, int H) override
void allocate (int W, int H) final
{
if (W == width && H == height) {
@ -746,7 +752,7 @@ public:
}
}
void rotate (int deg) override
void rotate (int deg) final
{
if (deg == 90) {
@ -873,7 +879,7 @@ public:
}
}
void hflip () override
void hflip () final
{
int width2 = width / 2;
@ -905,7 +911,7 @@ public:
#endif
}
void vflip () override
void vflip () final
{
int height2 = height / 2;
@ -989,7 +995,7 @@ public:
}
}
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final
{
histogram.clear();
avg_r = avg_g = avg_b = 0.;
@ -1328,7 +1334,7 @@ public:
* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);"
*/
void allocate (int W, int H) override
void allocate (int W, int H) final
{
if (W == width && H == height) {
@ -1382,7 +1388,7 @@ public:
memcpy (dest->data, data, 3 * width * height * sizeof(T));
}
void rotate (int deg) override
void rotate (int deg) final
{
if (deg == 90) {
@ -1516,7 +1522,7 @@ public:
}
}
void hflip () override
void hflip () final
{
int width2 = width / 2;
@ -1552,7 +1558,7 @@ public:
}
}
void vflip () override
void vflip () final
{
AlignedBuffer<T> lBuffer(3 * width);
@ -1619,7 +1625,7 @@ public:
}
}
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final
{
histogram.clear();
avg_r = avg_g = avg_b = 0.;

View File

@ -187,8 +187,6 @@ void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, P
gm /= area;
bm /= area;
#define GCLIP( x ) Color::gamma_srgb(CLIP(x))
#ifdef _OPENMP
#pragma omp parallel
{

View File

@ -29,7 +29,7 @@ namespace rtengine
class Image8;
class Imagefloat;
class Image16 : public IImage16, public ImageIO
class Image16 final : public IImage16, public ImageIO
{
public:

View File

@ -151,8 +151,6 @@ void Image8::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, P
gm /= area;
bm /= area;
#define GCLIP( x ) Color::gamma_srgb(CLIP(x))
#ifdef _OPENMP
#pragma omp parallel
{

View File

@ -27,7 +27,7 @@ namespace rtengine
{
class Imagefloat;
class Image8 : public IImage8, public ImageIO
class Image8 final : public IImage8, public ImageIO
{
public:

View File

@ -23,12 +23,18 @@
#include <string>
#include <vector>
#include <glibmm/ustring.h>
#include <libiptcdata/iptc-data.h>
#include "imageio.h"
namespace Glib
{
class ustring;
}
namespace rtexif
{
@ -38,7 +44,7 @@ class TagDirectory;
namespace rtengine
{
class FrameData
class FrameData final
{
protected:
@ -95,7 +101,7 @@ public:
int getRating () const;
};
class FramesData : public FramesMetaData {
class FramesData final : public FramesMetaData {
private:
// frame's root IFD, can be a file root IFD or a SUB-IFD
std::vector<std::unique_ptr<FrameData>> frames;

View File

@ -34,7 +34,7 @@ class LabImage;
/*
* Image type used by most tools; expected range: [0.0 ; 65535.0]
*/
class Imagefloat : public IImagefloat, public ImageIO
class Imagefloat final : public IImagefloat, public ImageIO
{
public:

View File

@ -25,7 +25,6 @@
#include "coord2d.h"
#include "imagedata.h"
#include "LUT.h"
#include "rtengine.h"
template<typename T>
@ -143,11 +142,11 @@ public:
virtual void setProgressListener (ProgressListener* pl) {}
void increaseRef () override
void increaseRef () final
{
references++;
}
void decreaseRef () override
void decreaseRef () final
{
references--;
@ -175,15 +174,15 @@ public:
return dirpyrdenoiseExpComp;
}
// functions inherited from the InitialImage interface
Glib::ustring getFileName () override
Glib::ustring getFileName () final
{
return fileName;
}
cmsHPROFILE getEmbeddedProfile () override
cmsHPROFILE getEmbeddedProfile () final
{
return embProfile;
}
const FramesMetaData* getMetaData () override
const FramesMetaData* getMetaData () final
{
return idata;
}

View File

@ -27,7 +27,6 @@
#include "imagesource.h"
#include "improcfun.h"
#include "LUT.h"
#include "procevents.h"
#include "rtengine.h"
#include "../rtgui/threadutils.h"
@ -55,7 +54,7 @@ class Crop;
* but using this class' LUT and other precomputed parameters. The main preview area is displaying a non framed Crop object,
* while detail windows are framed Crop objects.
*/
class ImProcCoordinator : public StagedImageProcessor
class ImProcCoordinator final : public StagedImageProcessor
{
friend class Crop;

View File

@ -31,15 +31,16 @@
#include "cieimage.h"
#include "clutstore.h"
#include "color.h"
#include "colortemp.h"
#include "curves.h"
#include "dcp.h"
#include "EdgePreservingDecomposition.h"
#include "iccmatrices.h"
#include "iccstore.h"
#include "imagesource.h"
#include "improccoordinator.h"
#include "improcfun.h"
#include "labimage.h"
#include "pipettebuffer.h"
#include "procparams.h"
#include "rt_math.h"
#include "rtengine.h"
@ -54,9 +55,6 @@
#include "mytime.h"
#endif
#undef CLIPD
#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f)
namespace {
using namespace rtengine;

View File

@ -19,11 +19,17 @@
#pragma once
#include <memory>
#include <vector>
#include "coord2d.h"
#include "gamutwarning.h"
#include "pipettebuffer.h"
namespace Glib
{
class ustring;
}
template<typename T>
class LUT;
@ -44,6 +50,7 @@ class FramesMetaData;
class LensCorrection;
class NoiseCurve;
class OpacityCurve;
class PipetteBuffer;
class ToneCurve;
class WavCurve;
class WavOpacityCurveBY;

View File

@ -32,6 +32,7 @@
#include <iostream>
#include <vector>
#include "array2D.h"
#include "color.h"
#include "guidedfilter.h"
#include "iccstore.h"

View File

@ -50,13 +50,6 @@
#include "cplx_wavelet_dec.h"
#define TS 64 // Tile size
#define offset 25 // shift between tiles
#define fTS ((TS/2+1)) // second dimension of Fourier tiles
#define blkrad 1 // radius of block averaging
#define epsilon 0.001f/(TS*TS) //tolerance
namespace rtengine
{

View File

@ -25,11 +25,6 @@
#define JFREAD(file,buf,sizeofbuf) \
((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
#define JFWRITE(file,buf,sizeofbuf) \
((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
/* Expanded data source object for stdio input */
namespace

View File

@ -9,7 +9,6 @@
#include <cstdio> /* fflush() */
#include <cstring> /* memset() */
#include <cmath> /* fsqrt() */
#define fsqrt(X) sqrt(X)
/* Our includes */
#include "base.h"

View File

@ -23,7 +23,7 @@
namespace rtengine
{
class LabImage
class LabImage final
{
private:
void allocLab(size_t w, size_t h);

View File

@ -18,14 +18,12 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////
#ifndef OPTHELPER_H
#define OPTHELPER_H
#pragma once
#define pow_F(a,b) (xexpf(b*xlogf(a)))
#ifdef __SSE2__
#include "sleefsseavx.c"
#include "sleefsseavx.h"
#endif
#ifdef __GNUC__
@ -41,4 +39,3 @@
#define ALIGNED64
#define ALIGNED16
#endif
#endif

View File

@ -18,10 +18,16 @@
*/
#pragma once
#include <glibmm/ustring.h>
#include <cairomm/cairomm.h>
namespace Glib
{
class ustring;
}
namespace rtengine
{

View File

@ -24,7 +24,7 @@
namespace rtengine
{
class ProcessingJobImpl : public ProcessingJob
class ProcessingJobImpl final : public ProcessingJob
{
public:

View File

@ -49,10 +49,6 @@
#endif
#include "opthelper.h"
#define clipretinex( val, minv, maxv ) (( val = (val < minv ? minv : val ) ) > maxv ? maxv : val )
#undef CLIPD
#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f)
namespace
{
@ -426,10 +422,8 @@ namespace rtengine
{
#undef ABS
#undef DIST
#define ABS(a) ((a)<0?-(a):(a))
#define DIST(a,b) (ABS(a-b))
RawImageSource::RawImageSource ()
: ImageSource()
@ -2916,7 +2910,7 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b)
float X;
float Y;
float Z;
#define CLIP01(a) ((a)>0?((a)<1?(a):1):0)
{
// convert from Lab to XYZ
float x, y, z, fx, fy, fz;
@ -2951,9 +2945,6 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b)
r = prophoto_xyz[0][0] * X + prophoto_xyz[0][1] * Y + prophoto_xyz[0][2] * Z;
g = prophoto_xyz[1][0] * X + prophoto_xyz[1][1] * Y + prophoto_xyz[1][2] * Z;
b = prophoto_xyz[2][0] * X + prophoto_xyz[2][1] * Y + prophoto_xyz[2][2] * Z;
// r = CLIP01(r);
// g = CLIP01(g);
// b = CLIP01(b);
}
// Converts raw image including ICC input profile to working space - floating point version

View File

@ -37,7 +37,7 @@ class DiagonalCurve;
class RetinextransmissionCurve;
class RetinexgaintransmissionCurve;
class RawImageSource : public ImageSource
class RawImageSource final : public ImageSource
{
private:
static DiagonalCurve *phaseOneIccCurve;

View File

@ -20,9 +20,12 @@
#pragma once
#include "array2D.h"
#include "rt_math.h"
template<typename T>
class array2D;
namespace rtengine
{

View File

@ -31,7 +31,6 @@
#include "imageformat.h"
#include "procevents.h"
#include "rawmetadatalocation.h"
#include "rt_math.h"
#include "settings.h"
#include "../rtgui/threadutils.h"

View File

@ -511,8 +511,6 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL
((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==0 || !filter)
#define FISGREEN(filter,row,col) \
((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==1 || !filter)
#define FISBLUE(filter,row,col) \
((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==2 || !filter)
RawMetaDataLocation Thumbnail::loadMetaDataFromRaw (const Glib::ustring& fname)
{

View File

@ -18,8 +18,6 @@
*/
#pragma once
#include <glibmm/ustring.h>
#include <lcms2.h>
#include "image16.h"
@ -30,6 +28,13 @@
#include "../rtgui/threadutils.h"
namespace Glib
{
class ustring;
}
namespace rtengine
{

View File

@ -80,7 +80,7 @@ public:
// bool bw_complementary;
double level0_cbdl;
double level123_cbdl;
Glib::ustring lensfunDbDirectory; ///< The directory containing the lensfun database. If empty, the system defaults will be used (as described in http://lensfun.sourceforge.net/manual/dbsearch.html)
Glib::ustring lensfunDbDirectory; // The directory containing the lensfun database. If empty, the system defaults will be used, as described in https://lensfun.github.io/manual/latest/dbsearch.html
enum class ThumbnailInspectorMode {
JPEG,

View File

@ -929,7 +929,7 @@ __inline float mulsignf(float x, float y) {
return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31)));
}
__inline float signf(float d) { return copysign(1, d); }
__inline float signf(float d) { return std::copysign(1.f, d); }
__inline float mlaf(float x, float y, float z) { return x * y + z; }
__inline int xisnanf(float x) { return x != x; }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -53,7 +53,6 @@ template<class T> T** allocArray (int W, int H)
return t;
}
#define HR_SCALE 2
StdImageSource::StdImageSource () : ImageSource(), img(nullptr), plistener(nullptr), full(false), max{}, rgbSourceModified(false)
{

View File

@ -22,7 +22,6 @@
#include "rt_math.h"
#include "utils.h"
#include "rt_math.h"
using namespace std;

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _CANONATTRIBS_
#define _CANONATTRIBS_
#include <cstdio>
#include <cmath>
@ -557,7 +555,8 @@ public:
{
choices = {
{1, "Canon EF 50mm f/1.8"},
{2, "Canon EF 28mm f/2.8"},
{2, "Canon EF 28mm f/2.8 or Sigma Lens"},
{2, "Sigma 24mm f/2.8 Super Wide II"},
{3, "Canon EF 135mm f/2.8 Soft"},
{4, "Canon EF 35-105mm f/3.5-4.5 or Sigma Lens"},
{4, "Sigma UC Zoom 35-135mm f/4-5.6"},
@ -598,6 +597,8 @@ public:
{26, "Tamron SP AF 90mm f/2.8 Di Macro"},
{26, "Tamron SP AF 180mm f/3.5 Di Macro"},
{26, "Carl Zeiss Planar T* 50mm f/1.4"},
{26, "Voigtlander APO Lanthar 125mm F2.5 SL Macro"},
{26, "Carl Zeiss Planar T 85mm f/1.4 ZE"},
{27, "Canon EF 35-80mm f/4-5.6"},
{28, "Canon EF 80-200mm f/4.5-5.6 or Tamron Lens"},
{28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"},
@ -629,7 +630,7 @@ public:
{36, "Canon EF 38-76mm f/4.5-5.6"},
{37, "Canon EF 35-80mm f/4-5.6 or Tamron Lens"},
{37, "Tamron 70-200mm f/2.8 Di LD IF Macro"},
{37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20"},
{37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)"},
{37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]"},
{37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro"},
{38, "Canon EF 80-200mm f/4.5-5.6"},
@ -637,13 +638,14 @@ public:
{40, "Canon EF 28-80mm f/3.5-5.6"},
{41, "Canon EF 28-90mm f/4-5.6"},
{42, "Canon EF 28-200mm f/3.5-5.6 or Tamron Lens"},
{42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20"},
{42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)"},
{43, "Canon EF 28-105mm f/4-5.6"},
{44, "Canon EF 90-300mm f/4.5-5.6"},
{45, "Canon EF-S 18-55mm f/3.5-5.6 [II]"},
{46, "Canon EF 28-90mm f/4-5.6"},
{47, "Zeiss Milvus 35mm f/2 or 50mm f/2"},
{47, "Zeiss Milvus 50mm f/2 Makro"},
{47, "Zeiss Milvus 135mm f/2 ZE"},
{48, "Canon EF-S 18-55mm f/3.5-5.6 IS"},
{49, "Canon EF-S 55-250mm f/4-5.6 IS"},
{50, "Canon EF-S 18-200mm f/3.5-5.6 IS"},
@ -660,10 +662,17 @@ public:
{103, "Samyang AF 14mm f/2.8 EF or Rokinon Lens"},
{103, "Rokinon SP 14mm f/2.4"},
{103, "Rokinon AF 14mm f/2.8 EF"},
{106, "Rokinon SP / Samyang XP 35mm f/1.2"},
{112, "Sigma 28mm f/1.5 FF High-speed Prime or other Sigma Lens"},
{112, "Sigma 40mm f/1.5 FF High-speed Prime"},
{112, "Sigma 105mm f/1.5 FF High-speed Prime"},
{117, "Tamron 35-150mm f/2.8-4.0 Di VC OSD (A043) or other Tamron Lens"},
{117, "Tamron SP 35mm f/1.4 Di USD (F045)"},
{124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo"},
{125, "Canon TS-E 24mm f/3.5L"},
{126, "Canon TS-E 45mm f/2.8"},
{127, "Canon TS-E 90mm f/2.8"},
{127, "Canon TS-E 90mm f/2.8 or Tamron Lens"},
{127, "Tamron 18-200mm f/3.5-6.3 Di II VC (B018)"},
{129, "Canon EF 300mm f/2.8L USM"},
{130, "Canon EF 50mm f/1.0L USM"},
{131, "Canon EF 28-80mm f/2.8-4L USM or Sigma Lens"},
@ -674,10 +683,12 @@ public:
{131, "Sigma APO 120-300mm f/2.8 EX DG HSM"},
{131, "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye"},
{131, "Sigma 70-200mm f/2.8 APO EX HSM"},
{131, "Sigma 28-70mm f/2.8-4 DG"},
{132, "Canon EF 1200mm f/5.6L USM"},
{134, "Canon EF 600mm f/4L IS USM"},
{135, "Canon EF 200mm f/1.8L USM"},
{136, "Canon EF 300mm f/2.8L USM"},
{136, "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"},
{137, "Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens"},
{137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM"},
{137, "Sigma 50-200mm f/4-5.6 DC OS HSM"},
@ -687,14 +698,15 @@ public:
{137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"},
{137, "Sigma 17-50mm f/2.8 OS HSM"},
{137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]"},
{137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"},
{137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD (B008)"},
{137, "Sigma 8-16mm f/4.5-5.6 DC HSM"},
{137, "Tamron SP 17-50mm f/2.8 XR Di II VC"},
{137, "Tamron SP 60mm f/2 Macro Di II"},
{137, "Tamron SP 17-50mm f/2.8 XR Di II VC (B005)"},
{137, "Tamron SP 60mm f/2 Macro Di II (G005)"},
{137, "Sigma 10-20mm f/3.5 EX DC HSM"},
{137, "Tamron SP 24-70mm f/2.8 Di VC USD"},
{137, "Sigma 18-35mm f/1.8 DC HSM"},
{137, "Sigma 12-24mm f/4.5-5.6 DG HSM II"},
{137, "Sigma 70-300mm f/4-5.6 DG OS"},
{138, "Canon EF 28-80mm f/2.8-4L"},
{139, "Canon EF 400mm f/2.8L USM"},
{140, "Canon EF 500mm f/4.5L USM"},
@ -713,23 +725,28 @@ public:
{150, "Sigma 30mm f/1.4 DC HSM"},
{150, "Sigma 24mm f/1.8 DG Macro EX"},
{150, "Sigma 28mm f/1.8 DG Macro EX"},
{150, "Sigma 18-35mm f/1.8 DC HSM | A"},
{151, "Canon EF 200mm f/2.8L USM"},
{152, "Canon EF 300mm f/4L IS USM or Sigma Lens"},
{152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM"},
{152, "Sigma 14mm f/2.8 EX Aspherical HSM"},
{152, "Sigma 10-20mm f/4-5.6"},
{152, "Sigma 100-300mm f/4"},
{152, "Sigma 300-800mm f/5.6 APO EX DG HSM"},
{153, "Canon EF 35-350mm f/3.5-5.6L USM or Sigma or Tamron Lens"},
{153, "Sigma 50-500mm f/4-6.3 APO HSM EX"},
{153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro"},
{153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro Model A14"},
{153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro (A14)"},
{153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro"},
{154, "Canon EF 20mm f/2.8 USM or Zeiss Lens"},
{154, "Zeiss Milvus 21mm f/2.8"},
{155, "Canon EF 85mm f/1.8 USM"},
{154, "Zeiss Milvus 15mm f/2.8 ZE"},
{154, "Zeiss Milvus 18mm f/2.8 ZE"},
{155, "Canon EF 85mm f/1.8 USM or Sigma Lens"},
{155, "Sigma 14mm f/1.8 DG HSM | A"},
{156, "Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens"},
{156, "Tamron SP 70-300mm f/4-5.6 Di VC USD"},
{156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"},
{156, "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"},
{156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF (176D)"},
{160, "Canon EF 20-35mm f/3.5-4.5 USM or Tamron or Tokina Lens"},
{160, "Tamron AF 19-35mm f/3.5-4.5"},
{160, "Tokina AT-X 124 AF Pro DX 12-24mm f/4"},
@ -742,7 +759,7 @@ public:
{161, "Sigma 24-60mm f/2.8 EX DG"},
{161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical"},
{161, "Tamron 90mm f/2.8"},
{161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"},
{161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF (A05)"},
{161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"},
{161, "Tokina AT-X 24-70mm f/2.8 PRO FX (IF)"},
{162, "Canon EF 200mm f/2.8L USM"},
@ -762,18 +779,30 @@ public:
{169, "Sigma 30mm f/1.4 EX DC HSM"},
{169, "Sigma 35mm f/1.4 DG HSM"},
{169, "Sigma 35mm f/1.5 FF High-Speed Prime | 017"},
{170, "Canon EF 200mm f/2.8L II USM"},
{169, "Sigma 70mm f/2.8 Macro EX DG"},
{170, "Canon EF 200mm f/2.8L II USM or Sigma Lens"},
{170, "Sigma 300mm f/2.8 APO EX DG HSM"},
{170, "Sigma 800mm f/5.6 APO EX DG HSM"},
{171, "Canon EF 300mm f/4L USM"},
{172, "Canon EF 400mm f/5.6L USM or Sigma Lens"},
{172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
{172, "Sigma 500mm f/4.5 APO EX DG HSM"},
{173, "Canon EF 180mm Macro f/3.5L USM or Sigma Lens"},
{173, "Sigma 180mm EX HSM Macro f/3.5"},
{173, "Sigma APO Macro 150mm f/2.8 EX DG HSM"},
{173, "Sigma 10mm f/2.8 EX DC Fisheye"},
{173, "Sigma 15mm f/2.8 EX DG Diagonal Fisheye"},
{173, "Venus Laowa 100mm F2.8 2X Ultra Macro APO"},
{174, "Canon EF 135mm f/2L USM or Other Lens"},
{174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM"},
{174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"},
{174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"},
{174, "Zeiss Milvus 100mm f/2 Makro"},
{174, "Sigma APO 50-150mm f/2.8 EX DC OS HSM"},
{174, "Sigma APO 120-300mm f/2.8 EX DG OS HSM"},
{174, "Sigma 120-300mm f/2.8 DG OS HSM S013"},
{174, "Sigma 120-400mm f/4.5-5.6 APO DG OS HSM"},
{174, "Sigma 200-500mm f/2.8 APO EX DG"},
{175, "Canon EF 400mm f/2.8L USM"},
{176, "Canon EF 24-85mm f/3.5-4.5 USM"},
{177, "Canon EF 300mm f/4L IS USM"},
@ -788,6 +817,8 @@ public:
{180, "Sigma 24mm f/1.5 FF High-Speed Prime | 017"},
{180, "Sigma 50mm f/1.5 FF High-Speed Prime | 017"},
{180, "Sigma 85mm f/1.5 FF High-Speed Prime | 017"},
{180, "Tokina Opera 50mm f/1.4 FF"},
{180, "Sigma 20mm f/1.4 DG HSM | A"},
{181, "Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x or Sigma Lens"},
{181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x"},
{182, "Canon EF 100-400mm f/4.5-5.6L IS USM + 2x or Sigma Lens"},
@ -815,10 +846,13 @@ public:
{196, "Canon EF 75-300mm f/4-5.6 USM"},
{197, "Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens"},
{197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HS"},
{198, "Canon EF 50mm f/1.4 USM or Zeiss Lens"},
{198, "Canon EF 50mm f/1.4 USM or Other Lens"},
{198, "Zeiss Otus 55mm f/1.4 ZE"},
{198, "Zeiss Otus 85mm f/1.4 ZE"},
{198, "Zeiss Milvus 25mm f/1.4"},
{198, "Zeiss Otus 100mm f/1.4"},
{198, "Zeiss Milvus 35mm f/1.4 ZE"},
{198, "Yongnuo YN 35mm f/2"},
{199, "Canon EF 28-80mm f/3.5-5.6 USM"},
{200, "Canon EF 75-300mm f/4-5.6 USM"},
{201, "Canon EF 28-80mm f/3.5-5.6 USM"},
@ -829,13 +863,14 @@ public:
{211, "Canon EF 28-200mm f/3.5-5.6 USM"},
{212, "Canon EF 28-105mm f/4-5.6 USM"},
{213, "Canon EF 90-300mm f/4.5-5.6 USM or Tamron Lens"},
{213, "Tamron SP 150-600mm f/5-6.3 Di VC USD"},
{213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro"},
{213, "Tamron SP 35mm f/1.8 Di VC USD"},
{213, "Tamron SP 45mm f/1.8 Di VC USD"},
{213, "Tamron SP 150-600mm f/5-6.3 Di VC USD (A011)"},
{213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro (B016)"},
{213, "Tamron SP 35mm f/1.8 Di VC USD (F012)"},
{213, "Tamron SP 45mm f/1.8 Di VC USD (F013)"},
{214, "Canon EF-S 18-55mm f/3.5-5.6 USM"},
{215, "Canon EF 55-200mm f/4.5-5.6 II USM"},
{217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"},
{220, "Yongnuo YN 50mm f/1.8"},
{224, "Canon EF 70-200mm f/2.8L IS USM"},
{225, "Canon EF 70-200mm f/2.8L IS USM + 1.4x"},
{226, "Canon EF 70-200mm f/2.8L IS USM + 2x"},
@ -843,7 +878,8 @@ public:
{228, "Canon EF 28-105mm f/3.5-4.5 USM"},
{229, "Canon EF 16-35mm f/2.8L USM"},
{230, "Canon EF 24-70mm f/2.8L USM"},
{231, "Canon EF 17-40mm f/4L USM"},
{231, "Canon EF 17-40mm f/4L USM or Sigma Lens"},
{231, "Sigma 12-24mm f/4 DG HSM A016"},
{232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM"},
{233, "Canon EF 28-300mm f/3.5-5.6L IS USM"},
{234, "Canon EF-S 17-85mm f/4-5.6 IS USM or Tokina Lens"},
@ -867,13 +903,19 @@ public:
{248, "Sigma 24-35mm f/2 DG HSM | A"},
{248, "Sigma 135mm f/2 FF High-Speed Prime | 017"},
{248, "Sigma 24-35mm f/2.2 FF Zoom | 017"},
{248, "Sigma 135mm f/1.8 DG HSM A017"},
{249, "Canon EF 800mm f/5.6L IS USM"},
{250, "Canon EF 24mm f/1.4L II USM or Sigma Lens"},
{250, "Sigma 20mm f/1.4 DG HSM | A"},
{250, "Sigma 20mm f/1.5 FF High-Speed Prime | 017"},
{250, "Tokina Opera 16-28mm f/2.8 FF"},
{250, "Sigma 85mm f/1.4 DG HSM A016"},
{251, "Canon EF 70-200mm f/2.8L IS II USM"},
{251, "Canon EF 70-200mm f/2.8L IS III USM"},
{252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x"},
{252, "Canon EF 70-200mm f/2.8L IS III USM + 1.4x"},
{253, "Canon EF 70-200mm f/2.8L IS II USM + 2x"},
{253, "Canon EF 70-200mm f/2.8L IS III USM + 2x"},
{254, "Canon EF 100mm f/2.8L Macro IS USM"},
{255, "Sigma 24-105mm f/4 DG OS HSM | A or Other Sigma Lens"},
{255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"},
@ -882,6 +924,12 @@ public:
{368, "Sigma 50mm f/1.4 DG HSM | A"},
{368, "Sigma 40mm f/1.4 DG HSM | A"},
{368, "Sigma 60-600mm f/4.5-6.3 DG OS HSM | S"},
{368, "Sigma 28mm f/1.4 DG HSM | A"},
{368, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
{368, "Sigma 85mm f/1.4 DG HSM | A"},
{368, "Sigma 105mm f/1.4 DG HSM"},
{368, "Sigma 14-24mm f/2.8 DG HSM"},
{368, "Sigma 70mm f/2.8 DG Macro"},
{488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM"},
{489, "Canon EF 70-300mm f/4-5.6L IS USM"},
{490, "Canon EF 8-15mm f/4L Fisheye USM"},
@ -897,7 +945,7 @@ public:
{493, "Canon EF 24-105mm f/4L IS USM"},
{494, "Canon EF 600mm f/4L IS II USM"},
{495, "Canon EF 24-70mm f/2.8L II USM or Sigma Lens"},
{495, "Sigma 24-70mm F2.8 DG OS HSM | A"},
{495, "Sigma 24-70mm f/2.8 DG OS HSM | A"},
{496, "Canon EF 200-400mm f/4L IS USM"},
{499, "Canon EF 200-400mm f/4L IS USM + 1.4x"},
{502, "Canon EF 28mm f/2.8 IS USM or Tamron Lens"},
@ -908,14 +956,16 @@ public:
{506, "Canon EF 400mm f/4 DO IS II USM"},
{507, "Canon EF 16-35mm f/4L IS USM"},
{508, "Canon EF 11-24mm f/4L USM or Tamron Lens"},
{508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD"},
{508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"},
{624, "Sigma 70-200mm f/2.8 DG OS HSM | S"},
{747, "Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens"},
{747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"},
{748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens"},
{748, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x"},
{748, "Tamron 70-210mm f/4 Di VC USD (A034) + 2x"},
{749, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x"},
{750, "Canon EF 35mm f/1.4L II USM"},
{750, "Canon EF 35mm f/1.4L II USM or Tamron Lens"},
{750, "Tamron SP 85mm f/1.8 Di VC USD (F016)"},
{751, "Canon EF 16-35mm f/2.8L III USM"},
{752, "Canon EF 24-105mm f/4L IS II USM"},
{753, "Canon EF 85mm f/1.4L IS USM"},
@ -938,16 +988,21 @@ public:
{4154, "Canon EF-S 24mm f/2.8 STM"},
{4155, "Canon EF-M 28mm f/3.5 Macro IS STM"},
{4156, "Canon EF 50mm f/1.8 STM"},
{4157, "Canon EF-M 18-150mm 1:3.5-6.3 IS STM"},
{4157, "Canon EF-M 18-150mm f/3.5-6.3 IS STM"},
{4158, "Canon EF-S 18-55mm f/4-5.6 IS STM"},
{4159, "Canon EF-M 32mm f/1.4 STM"},
{4160, "Canon EF-S 35mm f/2.8 Macro IS STM"},
{4208, "Sigma 56mm f/1.4 DC DN | C"},
{36910, "Canon EF 70-300mm f/4-5.6 IS II USM"},
{36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM"},
{61182, "Canon RF 35mm F1.8 Macro IS STM or other Canon RF Lens"},
{61182, "Canon RF 50mm F1.2 L USM"},
{61182, "Canon RF 24-105mm F4 L IS USM"},
{61182, "Canon RF 28-70mm F2 L USM"},
{61182, "Canon RF 85mm F1.2L USM"},
{61182, "Canon RF 24-240mm F4-6.3 IS USM"},
{61182, "Canon RF 24-70mm F2.8 L IS USM"},
{61182, "Canon RF 15-35mm F2.8 L IS USM"},
{61491, "Canon CN-E 14mm T3.1 L F"},
{61492, "Canon CN-E 24mm T1.5 L F"},
{61494, "Canon CN-E 85mm T1.3 L F"},
@ -1514,7 +1569,11 @@ public:
{
choices[1042] = "EOS M50 / Kiss M";
choices[2049] = "PowerShot SX740 HS";
choices[2052] = "PowerShot G5 X Mark II";
choices[2053] = "PowerShot SX70 HS";
choices[2056] = "PowerShot G7 X Mark III";
choices[2065] = "EOS M6 Mark II";
choices[2066] = "EOS M200";
choices[16842752] = "PowerShot A30";
choices[17039360] = "PowerShot S300 / Digital IXUS 300 / IXY Digital 300";
choices[17170432] = "PowerShot A20";
@ -1679,6 +1738,7 @@ public:
choices[52822016] = "PowerShot A3400 IS";
choices[52887552] = "PowerShot A2400 IS";
choices[52953088] = "PowerShot A2300";
choices[53608448] = "PowerShot S100V";
choices[53673984] = "PowerShot G15";
choices[53739520] = "PowerShot SX50 HS";
choices[53805056] = "PowerShot SX160 IS";
@ -1737,7 +1797,7 @@ public:
choices[67239936] = "PowerShot SX420 IS";
choices[67305472] = "PowerShot ELPH 190 IS / IXUS 180 / IXY 190";
choices[67371008] = "PowerShot G1";
choices[67371009] = "IXY 180";
choices[67371009] = "PowerShot ELPH 180 IS / IXUS 175 / IXY 180";
choices[67436544] = "PowerShot SX720 HS";
choices[67502080] = "PowerShot SX620 HS";
choices[67567616] = "EOS M6";
@ -1821,7 +1881,7 @@ public:
choices[2147484453] = "EOS 70D";
choices[2147484454] = "EOS Rebel T5i / 700D / Kiss X7i";
choices[2147484455] = "EOS Rebel T5 / 1200D / Kiss X70 / Hi";
choices[2147484456] = "EOS-1D X MARK II";
choices[2147484456] = "EOS-1D X Mark II";
choices[2147484465] = "EOS M";
choices[2147484486] = "EOS Rebel SL1 / 100D / Kiss X7";
choices[2147484487] = "EOS Rebel T6s / 760D / 8000D";
@ -1837,8 +1897,14 @@ public:
choices[2147484680] = "EOS 77D / 9000D";
choices[2147484695] = "EOS Rebel SL2 / 200D / Kiss X9";
choices[2147484706] = "EOS Rebel T100 / 4000D / 3000D";
choices[2147484708] = "EOR R";
choices[2147484708] = "EOS R";
choices[2147484712] = "EOS-1D X Mark III";
choices[2147484722] = "EOS Rebel T7 / 2000D / 1500D / Kiss X90";
choices[2147484723] = "EOS RP";
choices[2147484726] = "EOS SL3 / 250D / Kiss X10";
choices[2147484727] = "EOS 90D";
choices[2147484960] = "EOS D2000C";
choices[2147485024] = "EOS D6000C";
}
};
CAModelIDInterpreter caModelIDInterpreter;
@ -2074,5 +2140,4 @@ const TagAttrib canonAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
};
}
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _FUJIATTRIBS_
#define _FUJIATTRIBS_
#include "rtexif.h"
@ -312,5 +310,4 @@ const TagAttrib fujiAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
};
}
#endif

View File

@ -1,8 +1,6 @@
/*
* This file is part of RawTherapee.
*/
#ifndef _KODAKATTRIBS_
#define _KODAKATTRIBS_
#include <string.h>
#include "rtexif.h"
@ -161,5 +159,4 @@ const TagAttrib kodakIfdAttribs[] = {
};
}
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _NIKONATTRIBS_
#define _NIKONATTRIBS_
#include <cstdio>
#include <cstring>
@ -627,6 +625,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"02 48 65 65 24 24 02 00", "Sigma Macro 90mm f/2.8"},
{"03 43 5C 81 35 35 02 00", "Soligor AF C/D Zoom UMCS 70-210mm 1:4.5"},
{"03 48 5C 81 30 30 02 00", "AF Zoom-Nikkor 70-210mm f/4"},
{"03 54 68 68 0C 0C 00 00", "Zeiss Otus 1.4/100"},
{"04 48 3C 3C 24 24 03 00", "AF Nikkor 28mm f/2.8"},
{"05 54 50 50 0C 0C 04 00", "AF Nikkor 50mm f/1.4"},
{"06 3F 68 68 2C 2C 06 00", "Cosina AF 100mm f/3.5 Macro"},
@ -906,12 +905,14 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"7F 48 2B 5C 24 34 1C 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF"},
{"7F 48 2D 50 24 24 1C 06", "Sigma 18-50mm f/2.8 EX DC Macro"},
{"80 48 1A 1A 24 24 85 06", "AF DX Fisheye-Nikkor 10.5mm f/2.8G ED"},
{"80 48 1C 29 24 24 7A 06", "Tokina atx-i 11-16mm f/2.8 CF"},
{"81 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | S"},
{"81 54 80 80 18 18 86 0E", "AF-S VR Nikkor 200mm f/2G IF-ED"},
{"82 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | C"},
{"82 48 8E 8E 24 24 87 0E", "AF-S VR Nikkor 300mm f/2.8G IF-ED"},
{"83 00 B0 B0 5A 5A 88 04", "FSA-L2, EDG 65, 800mm f/13 G"},
{"88 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 DG HSM | A"},
{"89 30 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC Macro OS HS | C"},
{"89 3C 53 80 30 3C 8B 06", "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED"},
{"8A 3C 37 6A 30 30 4B 0E", "Sigma 24-105mm f/4 DG OS HSM"},
{"8A 54 6A 6A 24 24 8C 0E", "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED"},
@ -955,6 +956,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"9E 38 11 29 34 3C 4B 06", "Sigma 8-16mm f/4.5-5.6 DC HSM"},
{"9E 40 2D 6A 2C 3C A0 0E", "AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED"},
{"9F 37 50 A0 34 40 4B 0E", "Sigma 50-500mm f/4.5-6.3 DG OS HSM"},
{"9F 48 48 48 24 24 A1 06", "Yongnuo YN40mm f/2.8N"},
{"9F 58 44 44 14 14 A1 06", "AF-S DX Nikkor 35mm f/1.8G"},
{"A0 40 2D 53 2C 3C CA 0E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G VR"},
{"A0 40 2D 53 2C 3C CA 8E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G"},
@ -1007,6 +1009,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"AA 48 88 A4 3C 3C D5 4E", "AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC"},
{"AB 3C A0 A0 30 30 C6 4E", "AF-S Nikkor 500mm f/4E FL ED VR"},
{"AB 44 5C 8E 34 3C D6 0E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"},
{"AB 44 5C 8E 34 3C D6 4E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"},
{"AB 44 5C 8E 34 3C D6 CE", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"},
{"AC 38 53 8E 34 3C AE 0E", "AF-S DX Nikkor 55-300mm f/4.5-5.6G ED VR"},
{"AC 3C A6 A6 30 30 C7 4E", "AF-S Nikkor 600mm f/4E FL ED VR"},
@ -1038,6 +1041,8 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"C1 48 24 37 24 24 4B 46", "Sigma 14-24mm f/2.8 DG HSM | A"},
{"C2 4C 24 24 14 14 4B 06", "Sigma 14mm f/1.8 DG HSM | A"},
{"C3 34 68 98 38 40 4B 4E", "Sigma 100-400mm f/5-6.3 DG OS HSM | C"},
{"C8 54 44 44 0D 0D DF 46", "Tamron SP 35mm f/1.4 Di USD (F045)"},
{"C8 54 62 62 0C 0C 4B 06", "Sigma 85mm f/1.4 DG HSM | A"},
{"C8 54 62 62 0C 0C 4B 46", "Sigma 85mm f/1.4 DG HSM | A"},
{"C9 48 37 5C 24 24 4B 4E", "Sigma 24-70mm f/2.8 DG OS HSM | A"},
{"CA 48 27 3E 24 24 DF 4E", "Tamron SP 15-30mm f/2.8 Di VC USD G2 (A041)"},
@ -1051,21 +1056,22 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"DC 48 19 19 24 24 4B 06", "Sigma 10mm f/2.8 EX DC HSM Fisheye"},
{"DE 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 EX DG HSM"},
{"E0 3C 5C 8E 30 3C 4B 06", "Sigma 70-300mm f/4-5.6 APO DG Macro HSM"},
{"E0 40 2D 98 2C 41 DF 4E", "Tamron AF 18-400mm f/3.5-6.3 Di II VC HLD (B028)"},
{"E0 40 2D 98 2C 41 DF 4E", "Tamron 18-400mm f/3.5-6.3 Di II VC HLD (B028)"},
{"E1 40 19 36 2C 35 DF 4E", "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"},
{"E1 58 37 37 14 14 1C 02", "Sigma 24mm f/1.8 EX DG Aspherical Macro"},
{"E2 47 5C 80 24 24 DF 4E", "Tamron SP 70-200mm f/2.8 Di VC USD G2 (A025)"},
{"E3 40 76 A6 38 40 DF 4E", "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"},
{"E3 54 50 50 24 24 35 02", "Sigma Macro 50mm f/2.8 EX DG"},
{"E4 54 64 64 24 24 DF 0E", "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F017)"},
{"E5 4C 62 62 14 14 C9 4E", "Tamron SP 85mm f/1.8 Di VC USD (F016)"},
{"E5 54 6A 6A 24 24 35 02", "Sigma Macro 105mm f/2.8 EX DG"},
{"E6 40 2D 80 2C 40 DF 0E", "Tamron AF 18-200mm f/3.5-6.3 Di II VC (B018)"},
{"E6 40 2D 80 2C 40 DF 0E", "Tamron 18-200mm f/3.5-6.3 Di II VC (B018)"},
{"E6 41 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 DG Macro"},
{"E7 4C 4C 4C 14 14 DF 0E", "Tamron SP 45mm f/1.8 Di VC USD (F013)"},
{"E8 4C 44 44 14 14 DF 0E", "Tamron SP 35mm f/1.8 Di VC USD (F012)"},
{"E9 48 27 3E 24 24 DF 0E", "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"},
{"E9 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"},
{"EA 40 29 8E 2C 40 DF 0E", "Tamron AF 16-300mm f/3.5-6.3 Di II VC PZD (B016)"},
{"EA 40 29 8E 2C 40 DF 0E", "Tamron 16-300mm f/3.5-6.3 Di II VC PZD (B016)"},
{"EA 48 27 27 24 24 1C 02", "Sigma 15mm f/2.8 EX Diagonal Fisheye"},
{"EB 40 76 A6 38 40 DF 0E", "Tamron SP AF 150-600mm f/5-6.3 VC USD (A011)"},
{"ED 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC OS HSM"},
@ -1076,6 +1082,7 @@ const std::map<std::string, std::string> NALensDataInterpreter::lenses = {
{"F1 47 5C 8E 30 3C DF 0E", "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"},
{"F3 48 68 8E 30 30 4B 02", "Sigma APO 100-300mm f/4 EX IF HSM"},
{"F3 54 2B 50 24 24 84 0E", "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)"},
{"F4 4C 7C 7C 2C 2C 4B 02", "Sigma APO Macro 180mm f/3.5 EX DG HSM"},
{"F4 54 56 56 18 18 84 06", "Tamron SP AF 60mm f/2.0 Di II Macro 1:1 (G005)"},
{"F5 40 2C 8A 2C 40 40 0E", "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical (IF) Macro (B003)"},
{"F5 48 76 76 24 24 4B 06", "Sigma APO Macro 150mm f/2.8 EX DG HSM"},
@ -1220,5 +1227,3 @@ const TagAttrib nikon3Attribs[] = {
};
}
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _OLYMPUSATTRIBS_
#define _OLYMPUSATTRIBS_
#include <string>
#include <cmath>
@ -130,6 +128,7 @@ public:
lenses["00 30 10"] = "Olympus M.Zuiko Digital ED 45mm f/1.2 Pro";
lenses["00 31 00"] = "Olympus Zuiko Digital ED 12-60mm f/2.8-4.0 SWD";
lenses["00 32 00"] = "Olympus Zuiko Digital ED 14-35mm f/2.0 SWD";
lenses["00 32 10"] = "Olympus M.Zuiko Digital ED 12-200mm f/3.5-6.3";
lenses["00 33 00"] = "Olympus Zuiko Digital 25mm f/2.8";
lenses["00 34 00"] = "Olympus Zuiko Digital ED 9-18mm f/4.0-5.6";
lenses["00 35 00"] = "Olympus Zuiko Digital 14-54mm f/2.8-3.5 II";
@ -190,6 +189,13 @@ public:
lenses["02 26 10"] = "Lumix G 25mm f/1.7 Asph.";
lenses["02 27 10"] = "Leica DG Vario-Elmar 100-400mm f/4.0-6.3 Asph. Power OIS";
lenses["02 28 10"] = "Lumix G Vario 12-60mm f/3.5-5.6 Asph. Power OIS";
lenses["02 29 10"] = "Leica DG Summilux 12mm f/1.4 Asph.";
lenses["02 30 10"] = "Leica DG Vario-Elmarit 12-60mm f/2.8-4 Asph. Power OIS";
lenses["02 33 10"] = "Lumix G X Vario 12-35mm f/2.8 II Asph. Power OIS";
lenses["02 35 10"] = "Leica DG Vario-Elmarit 8-18mm f/2.8-4 Asph.";
lenses["02 36 10"] = "Leica DG Elmarit 200mm f/2.8 Power OIS";
lenses["02 37 10"] = "Leica DG Vario-Elmarit 50-200mm f/2.8-4 Asph. Power OIS";
lenses["02 38 10"] = "Leica DG Vario-Summilux 10-25mm f/1.7 Asph.";
lenses["03 01 00"] = "Leica D Vario Elmarit 14-50mm f/2.8-3.5 Asph.";
lenses["03 02 00"] = "Leica D Summilux 25mm f/1.4 Asph.";
lenses["05 01 10"] = "Tamron 14-150mm f/3.5-5.8 Di III";
@ -842,5 +848,3 @@ const TagAttrib olympusAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
};
}
#endif

View File

@ -1,8 +1,6 @@
/*
* This file is part of RawTherapee.
*/
#ifndef _PANASONICATTRIBS_
#define _PANASONICATTRIBS_
#include <string.h>
#include "rtexif.h"
@ -138,5 +136,3 @@ const TagAttrib panasonicRawAttribs[] = {
};
}
#endif

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _PENTAXATTRIBS_
#define _PENTAXATTRIBS_
#include <cmath>
#include <cstdio>
@ -696,7 +694,7 @@ public:
};
PAColorSpaceInterpreter paColorSpaceInterpreter;
class PALensTypeInterpreter : public IntLensInterpreter< int >
class PALensTypeInterpreter final: public IntLensInterpreter< int >
{
public:
PALensTypeInterpreter ()
@ -752,7 +750,7 @@ public:
choices.insert (p_t (256 * 3 + 44, "Sigma 17-70mm f/2.8-4.5 DC Macro"));
choices.insert (p_t (256 * 3 + 44, "Sigma 18-50mm f/3.5-5.6 DC"));
choices.insert (p_t (256 * 3 + 44, "Sigma 17-35mm f/2.8-4 EX DG"));
choices.insert (p_t (256 * 3 + 44, "Tamron 35-90mm f/4 AF"));
choices.insert (p_t (256 * 3 + 44, "Tamron 35-90mm f/4-5.6 AF"));
choices.insert (p_t (256 * 3 + 44, "Sigma AF 18-35mm f/3.5-4.5 Aspherical"));
choices.insert (p_t (256 * 3 + 46, "Sigma or Samsung Lens (3 46)"));
choices.insert (p_t (256 * 3 + 46, "Sigma APO 70-200mm f/2.8 EX"));
@ -908,8 +906,9 @@ public:
choices.insert (p_t (256 * 7 + 243, "smc PENTAX-DA 70mm f/2.4 Limited"));
choices.insert (p_t (256 * 7 + 244, "smc PENTAX-DA 21mm f/3.2 AL Limited"));
choices.insert (p_t (256 * 8 + 0, "Sigma 50-150mm f/2.8 II APO EX DC HSM"));
choices.insert (p_t (256 * 8 + 3, "Sigma AF 18-125mm f/3.5-5.6 DC"));
choices.insert (p_t (256 * 8 + 3, "Sigma 18-125mm f/3.8-5.6 DC HSM"));
choices.insert (p_t (256 * 8 + 4, "Sigma 50mm f/1.4 EX DG HSM"));
choices.insert (p_t (256 * 8 + 6, "Sigma 4.5mm f/2.8 EX DC Fisheye"));
choices.insert (p_t (256 * 8 + 7, "Sigma 24-70mm f/2.8 IF EX DG HSM"));
choices.insert (p_t (256 * 8 + 8, "Sigma 18-250mm f/3.5-6.3 DC OS HSM"));
choices.insert (p_t (256 * 8 + 11, "Sigma 10-20mm f/3.5 EX DC HSM"));
@ -920,6 +919,7 @@ public:
choices.insert (p_t (256 * 8 + 16, "Sigma 70-200mm f/2.8 EX DG Macro HSM II"));
choices.insert (p_t (256 * 8 + 17, "Sigma 50-500mm f/4.5-6.3 DG OS HSM"));
choices.insert (p_t (256 * 8 + 18, "Sigma 8-16mm f/4.5-5.6 DC HSM"));
choices.insert (p_t (256 * 8 + 20, "Sigma 18-50mm f/2.8-4.5 DC HSM"));
choices.insert (p_t (256 * 8 + 21, "Sigma 17-50mm f/2.8 EX DC OS HSM"));
choices.insert (p_t (256 * 8 + 22, "Sigma 85mm f/1.4 EX DG HSM"));
choices.insert (p_t (256 * 8 + 23, "Sigma 70-200mm f/2.8 APO EX DG OS HSM"));
@ -938,6 +938,7 @@ public:
choices.insert (p_t (256 * 8 + 62, "HD PENTAX-D FA 24-70mm f/2.8 ED SDM WR"));
choices.insert (p_t (256 * 8 + 63, "HD PENTAX-D FA 15-30mm f/2.8 ED SDM WR"));
choices.insert (p_t (256 * 8 + 64, "HD PENTAX-D FA* 50mm f/1.4 SDM AW"));
choices.insert (p_t (256 * 8 + 196, "HD PENTAX-DA* 11-18mm f/2.8 ED DC AW"));
choices.insert (p_t (256 * 8 + 197, "HD PENTAX-DA 55-300mm f/4.5-6.3 ED PLM WR RE"));
choices.insert (p_t (256 * 8 + 198, "smc PENTAX-DA L 18-50mm f/4-5.6 DC WR RE"));
choices.insert (p_t (256 * 8 + 199, "HD PENTAX-DA 18-50mm f/4-5.6 DC WR RE"));
@ -992,6 +993,7 @@ public:
choices.insert (p_t (256 * 22 + 3, "03 Fish-eye 3.2mm f/5.6"));
choices.insert (p_t (256 * 22 + 4, "04 Toy Lens Wide 6.3mm f/7.1"));
choices.insert (p_t (256 * 22 + 5, "05 Toy Lens Telephoto 18mm f/8"));
choices.insert (p_t (256 * 31 + 1, "GR Lens"));
}
std::string toString (const Tag* t) const override
{
@ -2212,7 +2214,6 @@ const TagAttrib pentaxCameraInfoAttribs[] = {
};
}
#endif

View File

@ -163,14 +163,14 @@ public:
// Try to get the Tag in the current directory and in subdirectories
// if lookUpward = true, it will scan the parents TagDirectory up to the root one,
// but w/o looking into their subdirs
virtual Tag* findTag (const char* name, bool lookUpward = false) const;
Tag* findTag (const char* name, bool lookUpward = false) const;
// Find a all Tags with the given name by scanning the whole tag tree
std::vector<const Tag*> findTags (const char* name);
// Find a all Tags with the given ID by scanning the whole tag tree
std::vector<const Tag*> findTags (int ID);
// Try to get the Tag in the current directory and in parent directories
// (won't look into subdirs)
virtual Tag* findTagUpward (const char* name) const;
Tag* findTagUpward (const char* name) const;
bool getXMPTagValue (const char* name, char* value) const;
void keepTag (int ID);
@ -191,10 +191,10 @@ public:
virtual TagDirectory* clone (TagDirectory* parent) const;
void applyChange (const std::string &field, const Glib::ustring &value);
virtual void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call !
virtual bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams,
void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call !
bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams,
const CacheImageData* cfs, const bool flagMode, Glib::KeyFile *keyFile = nullptr, Glib::ustring tagDirName = "") const;
virtual void sort ();
void sort ();
};
// a table of tags: id are offset from beginning and not identifiers

View File

@ -15,8 +15,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _SONYMINOLTAATTRIBS_
#define _SONYMINOLTAATTRIBS_
#include <cmath>
@ -541,7 +539,7 @@ public:
};
SAAntiBlurInterpreter saAntiBlurInterpreter;
class SALensIDInterpreter : public IntLensInterpreter<int>
class SALensIDInterpreter final : public IntLensInterpreter<int>
{
public:
SALensIDInterpreter ()
@ -574,11 +572,12 @@ public:
{23, "Minolta AF 200mm f/4 Macro APO G"},
{24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"},
{24, "Sigma 18-50mm f/2.8"},
{24, "Sigma 17-70mm f/2.8-4.5 (D)"},
{24, "Sigma 17-70mm f/2.8-4.5 DC Macro"},
{24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"},
{24, "Sigma 18-200mm f/3.5-6.3 DC"},
{24, "Sigma DC 18-125mm f/4-5,6 D"},
{24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"},
{24, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"},
{25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"},
{25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"},
{25, "Sigma 70mm f/2.8 EX DG Macro"},
@ -612,8 +611,9 @@ public:
{45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"},
{46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"},
{47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"},
{48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or ZA SSM II"},
{48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or Other Lens"},
{48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"},
{48, "Tamron SP 24-70mm f/2.8 Di USD"},
{49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"},
{50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"},
{51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"},
@ -645,7 +645,6 @@ public:
{128, "Tamron or Sigma Lens (128)"},
{128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"},
{128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"},
{128, "Tamron 80-300mm f/3.5-6.3"},
{128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"},
{128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"},
{128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"},
@ -680,7 +679,7 @@ public:
{137, "Cosina 70-210mm f/2.8-4 AF"},
{138, "Soligor 19-35mm f/3.5-4.5"},
{139, "Tokina AF 28-300mm f/4-6.3"},
{142, "Voigtlander 70-300mm f/4.5-5.6"},
{142, "Cosina AF 70-300mm f/4.5-5.6 MC"},
{146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"},
{194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"},
{202, "Tamron SP AF 70-200mm f/2.8 Di LD [IF] Macro"},
@ -723,10 +722,11 @@ public:
{2552, "Angenieux AF 28-70mm f/2.6"},
{2552, "Tokina AT-X 17 AF 17mm f/3.5"},
{2552, "Tokina 20-35mm f/3.5-4.5 II AF"},
{2553, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"},
{2553, "Minolta AF 28-135mm f/4-4.5 or Other Lens"},
{2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"},
{2553, "Sigma 28-105mm f/2.8-4 Aspherical"},
{2553, "Sigma 28-105mm f/4-5.6 UC"},
{2553, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"},
{2554, "Minolta AF 35-105mm f/3.5-4.5"},
{2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"},
{2555, "Sigma 70-210mm f/4-5.6 APO"},
@ -805,7 +805,7 @@ public:
{2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"},
{2628, "Minolta AF 80-200mm f/2.8 HS-APO G"},
{2629, "Minolta AF 85mm f/1.4 New"},
{2631, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"},
{2631, "Minolta AF 100-300mm f/4.5-5.6 APO"},
{2632, "Minolta AF 24-50mm f/4 New"},
{2638, "Minolta AF 50mm f/2.8 Macro New"},
{2639, "Minolta AF 100mm f/2.8 Macro"},
@ -818,6 +818,7 @@ public:
{2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"},
{3046, "Metabones Canon EF Speed Booster"},
{4567, "Tokina 70-210mm f/4-5.6"},
{4568, "Tokina AF 35-200mm f/4-5.6 Zoom SD"},
{4570, "Tamron AF 35-135mm f/3.5-4.5"},
{4571, "Vivitar 70-210mm f/4.5-5.6"},
{4574, "2x Teleconverter or Tamron or Tokina Lens"},
@ -832,97 +833,6 @@ public:
{6118, "Canon EF Adapter"},
{6528, "Sigma 16mm f/2.8 Filtermatic Fisheye"},
{6553, "E-Mount, T-Mount, Other Lens or no lens"},
{6553, "Sony E 16mm f/2.8"},
{6553, "Sony E 18-55mm f/3.5-5.6 OSS"},
{6553, "Sony E 55-210mm f/4.5-6.3 OSS"},
{6553, "Sony E 18-200mm f/3.5-6.3 OSS"},
{6553, "Sony E 30mm f/3.5 Macro"},
{6553, "Sony E 24mm f/1.8 ZA"},
{6553, "Sony E 50mm f/1.8 OSS"},
{6553, "Sony E 16-70mm f/4 ZA OSS"},
{6553, "Sony E 10-18mm f/4 OSS"},
{6553, "Sony E PZ 16-50mm f/3.5-5.6 OSS"},
{6553, "Sony FE 35mm f/2.8 ZA"},
{6553, "Sony FE 24-70mm f/4 ZA OSS"},
{6553, "Sony FE 85mm f/1.8"},
{6553, "Sony E 18-200mm f/3.5-6.3 OSS LE"},
{6553, "Sony E 20mm f/2.8"},
{6553, "Sony E 35mm f/1.8 OSS"},
{6553, "Sony E PZ 18-105mm f/4 G OSS"},
{6553, "Sony FE 12-24mm f/4 G"},
{6553, "Sony FE 90mm f/2.8 Macro G OSS"},
{6553, "Sony E 18-50mm f/4-5.6"},
{6553, "Sony FE 24mm f/1.4 GM"},
{6553, "Sony FE 24-105mm f/4 G OSS"},
{6553, "Sony E PZ 18-200mm f/3.5-6.3 OSS"},
{6553, "Sony FE 55mm f/1.8 ZA"},
{6553, "Sony FE 70-200mm f/4 G OSS"},
{6553, "Sony FE 16-35mm f/4 ZA OSS"},
{6553, "Sony FE 50mm f/2.8 Macro"},
{6553, "Sony FE 28-70mm f/3.5-5.6 OSS"},
{6553, "Sony FE 35mm f/1.4 ZA"},
{6553, "Sony FE 24-240mm f/3.5-6.3 OSS"},
{6553, "Sony FE 28mm f/2"},
{6553, "Sony FE PZ 28-135mm f/4 G OSS"},
{6553, "Sony FE 100mm f/2.8 STF GM OSS"},
{6553, "Sony E PZ 18-110mm f/4 G OSS"},
{6553, "Sony FE 24-70mm f/2.8 GM"},
{6553, "Sony FE 50mm f/1.4 ZA"},
{6553, "Sony FE 85mm f/1.4 GM"},
{6553, "Sony FE 50mm f/1.8"},
{6553, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"},
{6553, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"},
{6553, "Sony FE 70-300mm f/4.5-5.6 G OSS"},
{6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS"},
{6553, "Sony FE 70-200mm f/2.8 GM OSS"},
{6553, "Sony FE 16-35mm f/2.8 GM"},
{6553, "Sony FE 400mm f/2.8 GM OSS"},
{6553, "Sony E 18-135mm f/3.5-5.6 OSS"},
{6553, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"},
{6553, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"},
{6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter"},
{6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"},
{6553, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"},
{6553, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"},
{6553, "Samyang AF 50mm f/1.4 FE"},
{6553, "Samyang AF 14mm f/2.8 FE"},
{6553, "Samyang AF 24mm f/2.8"},
{6553, "Samyang AF 35mm f/2.8 FE"},
{6553, "Samyang AF 35mm f/1.4"},
{6553, "Sigma 19mm f/2.8 [EX] DN"},
{6553, "Sigma 30mm f/2.8 [EX] DN"},
{6553, "Sigma 60mm f/2.8 DN"},
{6553, "Sigma 30mm f/1.4 DC DN | C"},
{6553, "Sigma 85mm f/1.4 DG HSM | A"},
{6553, "Sigma 16mm f/1.4 DC DN | C"},
{6553, "Sigma 105mm f/1.4 DG HSM | A"},
{6553, "Sigma 56mm f/1.4 DC DN | C"},
{6553, "Sigma 70-200mm f/2.8 DG OS HSM | S"},
{6553, "Sigma 70mm f/2.8 DG MACRO | A"},
{6553, "Tamron 18-200mm f/3.5-6.3 Di III VC"},
{6553, "Tamron 28-75mm f/2.8 Di III RXD"},
{6553, "Tokina Firin 20mm f/2 FE MF"},
{6553, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"},
{6553, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"},
{6553, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"},
{6553, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical"},
{6553, "Voigtlander NOKTON 40mm f/1.2 Aspherical"},
{6553, "Voigtlander NOKTON classic 35mm f/1.4"},
{6553, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"},
{6553, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"},
{6553, "Zeiss Touit 12mm f/2.8"},
{6553, "Zeiss Touit 32mm f/1.8"},
{6553, "Zeiss Touit 50mm f/2.8 Macro"},
{6553, "Zeiss Batis 25mm f/2"},
{6553, "Zeiss Batis 85mm f/1.8"},
{6553, "Zeiss Batis 18mm f/2.8"},
{6553, "Zeiss Batis 135mm f/2.8"},
{6553, "Zeiss Batis 40mm f/2 CF"},
{6553, "Zeiss Loxia 50mm f/2"},
{6553, "Zeiss Loxia 35mm f/2"},
{6553, "Zeiss Loxia 21mm f/2.8"},
{6553, "Zeiss Loxia 85mm f/2.4"},
{6553, "Zeiss Loxia 25mm f/2.4"},
{6553, "Arax MC 35mm f/2.8 Tilt+Shift"},
{6553, "Arax MC 80mm f/2.8 Tilt+Shift"},
{6553, "Zenitar MF 16mm f/2.8 Fisheye M42"},
@ -948,10 +858,11 @@ public:
{25521, "Angenieux AF 28-70mm f/2.6"},
{25521, "Tokina AT-X 17 AF 17mm f/3.5"},
{25521, "Tokina 20-35mm f/3.5-4.5 II AF"},
{25531, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"},
{25531, "Minolta AF 28-135mm f/4-4.5 or Other Lens"},
{25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"},
{25531, "Sigma 28-105mm f/2.8-4 Aspherical"},
{25531, "Sigma 28-105mm f/4-5.6 UC"},
{25531, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"},
{25541, "Minolta AF 35-105mm f/3.5-4.5"},
{25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"},
{25551, "Sigma 70-210mm f/4-5.6 APO"},
@ -1030,7 +941,7 @@ public:
{26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"},
{26281, "Minolta AF 80-200mm f/2.8 HS-APO G"},
{26291, "Minolta AF 85mm f/1.4 New"},
{26311, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"},
{26311, "Minolta AF 100-300mm f/4.5-5.6 APO"},
{26321, "Minolta AF 24-50mm f/4 New"},
{26381, "Minolta AF 50mm f/2.8 Macro New"},
{26391, "Minolta AF 100mm f/2.8 Macro"},
@ -1043,6 +954,7 @@ public:
{26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"},
{30464, "Metabones Canon EF Speed Booster"},
{45671, "Tokina 70-210mm f/4-5.6"},
{45681, "Tokina AF 35-200mm f/4-5.6 Zoom SD"},
{45701, "Tamron AF 35-135mm f/3.5-4.5"},
{45711, "Vivitar 70-210mm f/4.5-5.6"},
{45741, "2x Teleconverter or Tamron or Tokina Lens"},
@ -1057,104 +969,13 @@ public:
{61184, "Canon EF Adapter"},
{65280, "Sigma 16mm f/2.8 Filtermatic Fisheye"},
{65535, "E-Mount, T-Mount, Other Lens or no lens"},
{65535, "Sony E 16mm f/2.8"},
{65535, "Sony E 18-55mm f/3.5-5.6 OSS"},
{65535, "Sony E 55-210mm f/4.5-6.3 OSS"},
{65535, "Sony E 18-200mm f/3.5-6.3 OSS"},
{65535, "Sony E 30mm f/3.5 Macro"},
{65535, "Sony E 24mm f/1.8 ZA"},
{65535, "Sony E 50mm f/1.8 OSS"},
{65535, "Sony E 16-70mm f/4 ZA OSS"},
{65535, "Sony E 10-18mm f/4 OSS"},
{65535, "Sony E PZ 16-50mm f/3.5-5.6 OSS"},
{65535, "Sony FE 35mm f/2.8 ZA"},
{65535, "Sony FE 24-70mm f/4 ZA OSS"},
{65535, "Sony FE 85mm f/1.8"},
{65535, "Sony E 18-200mm f/3.5-6.3 OSS LE"},
{65535, "Sony E 20mm f/2.8"},
{65535, "Sony E 35mm f/1.8 OSS"},
{65535, "Sony E PZ 18-105mm f/4 G OSS"},
{65535, "Sony FE 12-24mm f/4 G"},
{65535, "Sony FE 90mm f/2.8 Macro G OSS"},
{65535, "Sony E 18-50mm f/4-5.6"},
{65535, "Sony FE 24mm f/1.4 GM"},
{65535, "Sony FE 24-105mm f/4 G OSS"},
{65535, "Sony E PZ 18-200mm f/3.5-6.3 OSS"},
{65535, "Sony FE 55mm f/1.8 ZA"},
{65535, "Sony FE 70-200mm f/4 G OSS"},
{65535, "Sony FE 16-35mm f/4 ZA OSS"},
{65535, "Sony FE 50mm f/2.8 Macro"},
{65535, "Sony FE 28-70mm f/3.5-5.6 OSS"},
{65535, "Sony FE 35mm f/1.4 ZA"},
{65535, "Sony FE 24-240mm f/3.5-6.3 OSS"},
{65535, "Sony FE 28mm f/2"},
{65535, "Sony FE PZ 28-135mm f/4 G OSS"},
{65535, "Sony FE 100mm f/2.8 STF GM OSS"},
{65535, "Sony E PZ 18-110mm f/4 G OSS"},
{65535, "Sony FE 24-70mm f/2.8 GM"},
{65535, "Sony FE 50mm f/1.4 ZA"},
{65535, "Sony FE 85mm f/1.4 GM"},
{65535, "Sony FE 50mm f/1.8"},
{65535, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"},
{65535, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"},
{65535, "Sony FE 70-300mm f/4.5-5.6 G OSS"},
{65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS"},
{65535, "Sony FE 70-200mm f/2.8 GM OSS"},
{65535, "Sony FE 16-35mm f/2.8 GM"},
{65535, "Sony FE 400mm f/2.8 GM OSS"},
{65535, "Sony E 18-135mm f/3.5-5.6 OSS"},
{65535, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"},
{65535, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"},
{65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter"},
{65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"},
{65535, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"},
{65535, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"},
{65535, "Samyang AF 50mm f/1.4 FE"},
{65535, "Samyang AF 14mm f/2.8 FE"},
{65535, "Samyang AF 24mm f/2.8"},
{65535, "Samyang AF 35mm f/2.8 FE"},
{65535, "Samyang AF 35mm f/1.4"},
{65535, "Sigma 19mm f/2.8 [EX] DN"},
{65535, "Sigma 30mm f/2.8 [EX] DN"},
{65535, "Sigma 60mm f/2.8 DN"},
{65535, "Sigma 30mm f/1.4 DC DN | C"},
{65535, "Sigma 85mm f/1.4 DG HSM | A"},
{65535, "Sigma 16mm f/1.4 DC DN | C"},
{65535, "Sigma 105mm f/1.4 DG HSM | A"},
{65535, "Sigma 56mm f/1.4 DC DN | C"},
{65535, "Sigma 70-200mm f/2.8 DG OS HSM | S"},
{65535, "Sigma 70mm f/2.8 DG MACRO | A"},
{65535, "Tamron 18-200mm f/3.5-6.3 Di III VC"},
{65535, "Tamron 28-75mm f/2.8 Di III RXD"},
{65535, "Tokina Firin 20mm f/2 FE MF"},
{65535, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"},
{65535, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"},
{65535, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"},
{65535, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical"},
{65535, "Voigtlander NOKTON 40mm f/1.2 Aspherical"},
{65535, "Voigtlander NOKTON classic 35mm f/1.4"},
{65535, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"},
{65535, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"},
{65535, "Zeiss Touit 12mm f/2.8"},
{65535, "Zeiss Touit 32mm f/1.8"},
{65535, "Zeiss Touit 50mm f/2.8 Macro"},
{65535, "Zeiss Batis 25mm f/2"},
{65535, "Zeiss Batis 85mm f/1.8"},
{65535, "Zeiss Batis 18mm f/2.8"},
{65535, "Zeiss Batis 135mm f/2.8"},
{65535, "Zeiss Batis 40mm f/2 CF"},
{65535, "Zeiss Loxia 50mm f/2"},
{65535, "Zeiss Loxia 35mm f/2"},
{65535, "Zeiss Loxia 21mm f/2.8"},
{65535, "Zeiss Loxia 85mm f/2.4"},
{65535, "Zeiss Loxia 25mm f/2.4"},
{65535, "Arax MC 35mm f/2.8 Tilt+Shift"},
{65535, "Arax MC 80mm f/2.8 Tilt+Shift"},
{65535, "Zenitar MF 16mm f/2.8 Fisheye M42"},
{65535, "Samyang 500mm Mirror f/8.0"},
{65535, "Pentacon Auto 135mm f/2.8"},
{65535, "Pentacon Auto 29mm f/2.8"},
{65535, "Helios 44-2 58mm f/2.0"},
{65535, "Helios 44-2 58mm f/2.0"}
};
}
@ -1192,18 +1013,31 @@ public:
};
SALensIDInterpreter saLensIDInterpreter;
class SALensID2Interpreter : public IntLensInterpreter< int >
class SALensID2Interpreter final : public IntLensInterpreter< int >
{
public:
SALensID2Interpreter ()
{
choices.insert (p_t (0, "Unknown E-mount lens or other lens"));
choices.insert (p_t (0, "Sigma 19mm f/2.8 [EX] DN"));
choices.insert (p_t (0, "Sigma 30mm f/2.8 [EX] DN"));
choices.insert (p_t (0, "Sigma 60mm f/2.8 DN"));
choices.insert (p_t (0, "Sony E 18-200mm f/3.5-6.3 OSS LE"));
choices.insert (p_t (0, "Tamron 18-200mm f/3.5-6.3 Di III VC"));
choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE AF"));
choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE MF"));
choices.insert (p_t (0, "Zeiss Touit 12mm f/2.8"));
choices.insert (p_t (0, "Zeiss Touit 32mm f/1.8"));
choices.insert (p_t (0, "Zeiss Touit 50mm f/2.8 Macro"));
choices.insert (p_t (0, "Zeiss Loxia 50mm f/2"));
choices.insert (p_t (0, "Zeiss Loxia 35mm f/2"));
choices.insert (p_t (1, "Sony LA-EA1 or Sigma MC-11 Adapter"));
choices.insert (p_t (2, "Sony LA-EA2 Adapter"));
choices.insert (p_t (3, "Sony LA-EA3 Adapter"));
choices.insert (p_t (6, "Sony LA-EA4 Adapter"));
choices.insert (p_t (44, "Metabones Canon EF Smart Adapter"));
choices.insert (p_t (78, "Metabones Canon EF Smart Adapter Mark III or Other Adapter"));
choices.insert (p_t (184, "Metabones Canon EF Speed Booster Ultra"));
choices.insert (p_t (234, "Metabones Canon EF Smart Adapter Mark IV"));
choices.insert (p_t (239, "Metabones Canon EF Speed Booster"));
choices.insert (p_t (32784, "Sony E 16mm f/2.8"));
@ -1211,17 +1045,19 @@ public:
choices.insert (p_t (32786, "Sony E 55-210mm f/4.5-6.3 OSS"));
choices.insert (p_t (32787, "Sony E 18-200mm f/3.5-6.3 OSS"));
choices.insert (p_t (32788, "Sony E 30mm f/3.5 Macro"));
choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4 FE"));
choices.insert (p_t (32789, "Samyang AF 50mm f/1.4 FE"));
choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8 FE"));
choices.insert (p_t (32790, "Samyang AF 14mm f/2.8 FE"));
choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4"));
choices.insert (p_t (32789, "Samyang AF 50mm f/1.4"));
choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8"));
choices.insert (p_t (32790, "Samyang AF 14mm f/2.8"));
choices.insert (p_t (32791, "Sony E 16-70mm f/4 ZA OSS"));
choices.insert (p_t (32792, "Sony E 10-18mm f/4 OSS"));
choices.insert (p_t (32793, "Sony E PZ 16-50mm f/3.5-5.6 OSS"));
choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang AF 24mm f/2.8 FE"));
choices.insert (p_t (32794, "Samyang AF 24mm f/2.8 FE"));
choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang Lens"));
choices.insert (p_t (32794, "Samyang AF 24mm f/2.8"));
choices.insert (p_t (32794, "Samyang AF 35mm f/2.8"));
choices.insert (p_t (32795, "Sony FE 24-70mm f/4 ZA OSS"));
choices.insert (p_t (32796, "Sony FE 85mm f/1.8"));
choices.insert (p_t (32796, "Sony FE 85mm f/1.8 or Viltrox PFU RBMH 85mm f/1.8"));
choices.insert (p_t (32796, "Viltrox PFU RBMH 85mm f/1.8"));
choices.insert (p_t (32797, "Sony E 18-200mm f/3.5-6.3 OSS LE"));
choices.insert (p_t (32798, "Sony E 20mm f/2.8"));
choices.insert (p_t (32799, "Sony E 35mm f/1.8 OSS"));
@ -1245,7 +1081,8 @@ public:
choices.insert (p_t (32820, "Sony E PZ 18-110mm f/4 G OSS"));
choices.insert (p_t (32821, "Sony FE 24-70mm f/2.8 GM"));
choices.insert (p_t (32822, "Sony FE 50mm f/1.4 ZA"));
choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM"));
choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM or Samyang AF 85mm f/1.4"));
choices.insert (p_t (32823, "Samyang AF 85mm f/1.4"));
choices.insert (p_t (32824, "Sony FE 50mm f/1.8"));
choices.insert (p_t (32826, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"));
choices.insert (p_t (32827, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"));
@ -1255,6 +1092,12 @@ public:
choices.insert (p_t (32831, "Sony FE 16-35mm f/2.8 GM"));
choices.insert (p_t (32848, "Sony FE 400mm f/2.8 GM OSS"));
choices.insert (p_t (32849, "Sony E 18-135mm f/3.5-5.6 OSS"));
choices.insert (p_t (32850, "Sony FE 135mm f/1.8 GM"));
choices.insert (p_t (32851, "Sony FE 200-600mm f/5.6-6.3 G OSS"));
choices.insert (p_t (32852, "Sony FE 600mm f/4 GM OSS"));
choices.insert (p_t (32853, "Sony E 16-55mm f/2.8 G"));
choices.insert (p_t (32854, "Sony E 70-350mm f/4.5-6.3 G OSS"));
choices.insert (p_t (32858, "Sony FE 35mm f/1.8"));
choices.insert (p_t (33072, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"));
choices.insert (p_t (33073, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"));
choices.insert (p_t (33076, "Sony FE 100mm f/2.8 STF GM OSS (macro mode)"));
@ -1262,6 +1105,10 @@ public:
choices.insert (p_t (33078, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"));
choices.insert (p_t (33079, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"));
choices.insert (p_t (33080, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"));
choices.insert (p_t (33081, "Sony FE 200-600mm f/5.6-6.3 G OSS + 1.4X Teleconverter"));
choices.insert (p_t (33082, "Sony FE 200-600mm f/5.6-6.3 G OSS + 2X Teleconverter"));
choices.insert (p_t (33083, "Sony FE 600mm f/4 GM OSS + 1.4X Teleconverter"));
choices.insert (p_t (33084, "Sony FE 600mm f/4 GM OSS + 2X Teleconverter"));
choices.insert (p_t (49201, "Zeiss Touit 12mm f/2.8"));
choices.insert (p_t (49202, "Zeiss Touit 32mm f/1.8"));
choices.insert (p_t (49203, "Zeiss Touit 50mm f/2.8 Macro"));
@ -1276,11 +1123,17 @@ public:
choices.insert (p_t (49235, "Zeiss Loxia 85mm f/2.4"));
choices.insert (p_t (49236, "Zeiss Loxia 25mm f/2.4"));
choices.insert (p_t (49457, "Tamron 28-75mm f/2.8 Di III RXD"));
choices.insert (p_t (49458, "Tamron 17-28mm f/2.8 Di III RXD"));
choices.insert (p_t (49459, "Tamron 35mm f/2.8 Di III OSD M1:2"));
choices.insert (p_t (49460, "Tamron 24mm f/2.8 Di III OSD M1:2"));
choices.insert (p_t (49712, "Tokina FiRIN 20mm f/2 FE AF"));
choices.insert (p_t (49713, "Tokina FiRIN 100mm f/2.8 FE MACRO"));
choices.insert (p_t (50480, "Sigma 30mm f/1.4 DC DN | C"));
choices.insert (p_t (50481, "Sigma 50mm f/1.4 DG HSM | A"));
choices.insert (p_t (50482, "Sigma 18-300mm f/3.5-6.3 DC MACRO OS HSM | C + MC-11"));
choices.insert (p_t (50483, "Sigma 18-35mm f/1.8 DC HSM | A + MC-11"));
choices.insert (p_t (50484, "Sigma 24-35mm f/2 DG HSM | A + MC-11"));
choices.insert (p_t (50485, "Sigma 24mm f/1.4 DG HSM | A + MC-11"));
choices.insert (p_t (50486, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + MC-11"));
choices.insert (p_t (50487, "Sigma 20mm f/1.4 DG HSM | A + MC-11"));
choices.insert (p_t (50488, "Sigma 35mm f/1.4 DG HSM | A"));
@ -1294,8 +1147,11 @@ public:
choices.insert (p_t (50503, "Sigma 16mm f/1.4 DC DN | C"));
choices.insert (p_t (50507, "Sigma 105mm f/1.4 DG HSM | A"));
choices.insert (p_t (50508, "Sigma 56mm f/1.4 DC DN | C"));
choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S"));
choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S + MC-11"));
choices.insert (p_t (50513, "Sigma 70mm f/2.8 DG MACRO | A"));
choices.insert (p_t (50514, "Sigma 45mm f/2.8 DG DN | C"));
choices.insert (p_t (50515, "Sigma 35mm f/1.2 DG DN | A"));
choices.insert (p_t (50516, "Sigma 14-24mm f/2.8 DG DN | A"));
choices.insert (p_t (50992, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"));
choices.insert (p_t (50993, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"));
choices.insert (p_t (50994, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"));
@ -1304,9 +1160,15 @@ public:
choices.insert (p_t (50997, "Voigtlander NOKTON classic 35mm f/1.4"));
choices.insert (p_t (50998, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"));
choices.insert (p_t (50999, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"));
choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 FE or Samyang AF 35mm f/2.8 FE"));
choices.insert (p_t (51505, "Samyang AF 35mm f/2.8 FE"));
choices.insert (p_t (51000, "Voigtlander NOKTON 50mm f/1.2 Aspherical"));
choices.insert (p_t (51001, "Voigtlander NOKTON 21mm f/1.4 Aspherical"));
choices.insert (p_t (51002, "Voigtlander APO-LANTHAR 50mm f/2 Aspherical"));
choices.insert (p_t (51504, "Samyang AF 50mm f/1.4"));
choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 or Samyang AF 35mm f/2.8"));
choices.insert (p_t (51505, "Samyang AF 35mm f/2.8"));
choices.insert (p_t (51507, "Samyang AF 35mm f/1.4"));
choices.insert (p_t (51508, "Samyang AF 45mm f/1.8"));
choices.insert (p_t (51510, "Samyang AF 18mm f/2.8"));
}
std::string toString (const Tag* t) const override
@ -2635,6 +2497,4 @@ const TagAttrib sonyCameraSettingsAttribs3[] = {
{-1, AC_DONTWRITE, 0, 0, 0, AUTO, "", NULL}};*/
}
#endif

View File

@ -17,8 +17,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef _STDATTRIBS_
#define _STDATTRIBS_
#include <cstdio>
#include <cstring>
@ -927,5 +925,3 @@ const TagAttrib ifdAttribs[] = {
{ -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr}
};
}
#endif

View File

@ -33,7 +33,7 @@ public:
typedef double(*double2double_fun)(double val);
class Adjuster : public Gtk::Grid
class Adjuster final : public Gtk::Grid
{
protected:

View File

@ -50,7 +50,7 @@ struct BatchQueueEntryIdleHelper {
int pending;
};
class BatchQueueEntry : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable
class BatchQueueEntry final : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable
{
guint8* opreview;

View File

@ -28,7 +28,7 @@
class FilePanel;
class Thumbnail;
class BatchToolPanelCoordinator :
class BatchToolPanelCoordinator final :
public ToolPanelCoordinator,
public FileSelectionChangeListener,
public BatchPParamsChangeListener,

View File

@ -30,7 +30,7 @@
* the bar itself, i.e. use render_background (depending on its Gtk::Style)
*
*/
class ColoredBar : private BackBuffer, public ColorCaller
class ColoredBar final : private BackBuffer, public ColorCaller
{
private:

View File

@ -69,7 +69,7 @@ public:
*
* The position of the Axis in the vector will be used in the communication between the Adjuster and the Provider to identify the Axis
*/
class CoordinateAdjuster : public Gtk::FlowBox
class CoordinateAdjuster final : public Gtk::FlowBox
{
public:

View File

@ -37,6 +37,7 @@
#include "rtsurface.h"
#include "../rtengine/dcrop.h"
#include "../rtengine/imagesource.h"
#include "../rtengine/procparams.h"
#include "../rtengine/rt_math.h"

View File

@ -54,7 +54,7 @@ public:
};
class ImageArea;
class CropWindow : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable
class CropWindow final : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable
{
static bool initialized;

View File

@ -18,8 +18,8 @@
*/
#pragma once
#include "coloredbar.h"
#include "editcallbacks.h"
#include "guiutils.h"
#include "../rtengine/diagonalcurvetypes.h"
#include "../rtengine/flatcurvetypes.h"
@ -28,6 +28,7 @@
class CurveEditorGroup;
class CurveEditorSubGroup;
class ColorProvider;
class PopUpToggleButton;
/*

Some files were not shown because too many files have changed in this diff Show More