Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2022-03-18 19:06:51 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-03-21 18:38:13 +0300
commit1897df891cc6fa64a240a531853cddd1b52a78a5 (patch)
treefdef61ce07d0523db1114f2092b9a052e4e54015 /source/blender/imbuf/intern/openexr/openexr_api.cpp
parent6e4d2fa9140864a13356b07ffca082817822987f (diff)
Cleanup: move OpenEXR channel name construction to OpenEXR code
Diffstat (limited to 'source/blender/imbuf/intern/openexr/openexr_api.cpp')
-rw-r--r--source/blender/imbuf/intern/openexr/openexr_api.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index 418a4724c00..09d567c7827 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -78,6 +78,7 @@ _CRTIMP void __cdecl _invalid_parameter_noinfo(void)
}
#include "BLI_blenlib.h"
#include "BLI_math_color.h"
+#include "BLI_string_utils.h"
#include "BLI_threads.h"
#include "BKE_idprop.h"
@@ -1491,6 +1492,35 @@ static int imb_exr_split_channel_name(ExrChannel *echan, char *layname, char *pa
return 1;
}
+void IMB_exr_channel_name(char *fullname,
+ const char *layname,
+ const char *passname,
+ const char *viewname,
+ const char *chan_id,
+ const int channel)
+{
+ const char *strings[4];
+ int strings_len = 0;
+
+ if (layname && layname[0]) {
+ strings[strings_len++] = layname;
+ }
+ if (passname && passname[0]) {
+ strings[strings_len++] = passname;
+ }
+ if (viewname && viewname[0]) {
+ strings[strings_len++] = viewname;
+ }
+
+ char token[2];
+ if (channel >= 0) {
+ ARRAY_SET_ITEMS(token, chan_id[channel], '\0');
+ strings[strings_len++] = token;
+ }
+
+ BLI_string_join_array_by_sep_char(fullname, EXR_PASS_MAXNAME, '.', strings, strings_len);
+}
+
static ExrLayer *imb_exr_get_layer(ListBase *lb, char *layname)
{
ExrLayer *lay = (ExrLayer *)BLI_findstring(lb, layname, offsetof(ExrLayer, name));