diff options
author | Campbell Barton <campbell@blender.org> | 2022-09-09 16:10:28 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-09-09 16:21:00 +0300 |
commit | cef1b9c30f9ac96143d31f81d23db60dcf526f5a (patch) | |
tree | 3ed4b940646d80b11472454f2495701f21437ab2 /source/blender/render | |
parent | 436f1b4dbe3c111be12289cea4fa58b6aa148fc2 (diff) |
Cleanup: remove BLI_make_file_string
This function did multiple things making it difficult to know
what was intended by the caller:
- Directory & file join.
- Expand relative '//' prefix to an optional directory.
- Expand drive letters on windows (guessing with fall-backs).
- Switch slashes to native direction.
This functionality wasn't needed as the full directory was always passed
in, so guessing the drive letter wasn't needed.
If functionality to add drive letters onto paths is needed in the future
a function that only does this can be added.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/intern/render_result.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/render/intern/render_result.cc b/source/blender/render/intern/render_result.cc index 86ee9ad779a..50eb7e9f2d2 100644 --- a/source/blender/render/intern/render_result.cc +++ b/source/blender/render/intern/render_result.cc @@ -929,7 +929,11 @@ int render_result_exr_file_read_path(RenderResult *rr, return 1; } -static void render_result_exr_file_cache_path(Scene *sce, const char *root, char *r_path) +#define FILE_CACHE_MAX (FILE_MAXFILE + FILE_MAXFILE + MAX_ID_NAME + 100) + +static void render_result_exr_file_cache_path(Scene *sce, + const char *root, + char r_path[FILE_CACHE_MAX]) { char filename_full[FILE_MAX + MAX_ID_NAME + 100], filename[FILE_MAXFILE], dirname[FILE_MAXDIR]; char path_digest[16] = {0}; @@ -959,13 +963,17 @@ static void render_result_exr_file_cache_path(Scene *sce, const char *root, char filename, sce->id.name + 2, path_hexdigest); - BLI_make_file_string(dirname, r_path, root, filename_full); + + BLI_join_dirfile(r_path, FILE_CACHE_MAX, root, filename_full); + if (BLI_path_is_rel(r_path)) { + BLI_path_abs(r_path, dirname); + } } void render_result_exr_file_cache_write(Render *re) { RenderResult *rr = re->result; - char str[FILE_MAXFILE + FILE_MAXFILE + MAX_ID_NAME + 100]; + char str[FILE_CACHE_MAX]; char *root = U.render_cachedir; render_result_passes_allocated_ensure(rr); @@ -979,7 +987,7 @@ void render_result_exr_file_cache_write(Render *re) bool render_result_exr_file_cache_read(Render *re) { /* File path to cache. */ - char filepath[FILE_MAXFILE + MAX_ID_NAME + MAX_ID_NAME + 100] = ""; + char filepath[FILE_CACHE_MAX] = ""; char *root = U.render_cachedir; render_result_exr_file_cache_path(re->scene, root, filepath); |