diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-01-26 23:57:44 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-01-27 00:03:58 +0300 |
commit | 4226c484bdbe7336f1221094916fcdfb12850034 (patch) | |
tree | 33428e72be40105c222ca77935ee1554b702facc /intern/ghost/intern/GHOST_SystemPathsCocoa.mm | |
parent | 55a6a8900aec81e94f4d82401d6051e3b5507c0e (diff) | |
parent | af87b6d8cb75d9d625378dee25d726a0d55f75c6 (diff) |
Merge branch 'draw-viewport-data' into eevee-rewrite
# Conflicts:
# release/scripts/startup/bl_ui/properties_data_camera.py
# source/blender/blenkernel/BKE_camera.h
# source/blender/blenkernel/BKE_node.h
# source/blender/blenkernel/intern/camera.c
# source/blender/blenlib/BLI_float2.hh
# source/blender/blenlib/BLI_float3.hh
# source/blender/blenlib/BLI_float4.hh
# source/blender/blenlib/BLI_math_geom.h
# source/blender/blenlib/intern/math_geom.c
# source/blender/draw/CMakeLists.txt
# source/blender/draw/engines/basic/basic_engine.c
# source/blender/draw/engines/eevee/eevee_cryptomatte.c
# source/blender/draw/engines/eevee/eevee_effects.c
# source/blender/draw/engines/eevee/eevee_engine.c
# source/blender/draw/engines/eevee/eevee_lightcache.c
# source/blender/draw/engines/eevee/eevee_lightcache.h
# source/blender/draw/engines/eevee/eevee_lightprobes.c
# source/blender/draw/engines/eevee/eevee_lights.c
# source/blender/draw/engines/eevee/eevee_materials.c
# source/blender/draw/engines/eevee/eevee_motion_blur.c
# source/blender/draw/engines/eevee/eevee_occlusion.c
# source/blender/draw/engines/eevee/eevee_private.h
# source/blender/draw/engines/eevee/eevee_render.c
# source/blender/draw/engines/eevee/eevee_renderpasses.c
# source/blender/draw/engines/eevee/eevee_sampling.c
# source/blender/draw/engines/eevee/eevee_screen_raytrace.c
# source/blender/draw/engines/eevee/eevee_shaders.c
# source/blender/draw/engines/eevee/eevee_shadows.c
# source/blender/draw/engines/eevee/eevee_shadows_cube.c
# source/blender/draw/engines/eevee/eevee_temporal_sampling.c
# source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
# source/blender/draw/engines/eevee/shaders/closure_eval_lib.glsl
# source/blender/draw/engines/eevee/shaders/common_utiltex_lib.glsl
# source/blender/draw/engines/eevee/shaders/effect_dof_bokeh_frag.glsl
# source/blender/draw/engines/eevee/shaders/effect_dof_gather_frag.glsl
# source/blender/draw/engines/eevee/shaders/effect_dof_reduce_frag.glsl
# source/blender/draw/engines/eevee/shaders/effect_reflection_resolve_frag.glsl
# source/blender/draw/engines/eevee/shaders/effect_temporal_aa.glsl
# source/blender/draw/engines/eevee/shaders/random_lib.glsl
# source/blender/draw/engines/eevee/shaders/shadow_vert.glsl
# source/blender/draw/engines/eevee/shaders/surface_lib.glsl
# source/blender/draw/engines/eevee/shaders/surface_vert.glsl
# source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl
# source/blender/draw/engines/external/external_engine.c
# source/blender/draw/engines/gpencil/gpencil_engine.c
# source/blender/draw/engines/image/image_engine.c
# source/blender/draw/engines/overlay/overlay_engine.c
# source/blender/draw/engines/select/select_engine.c
# source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
# source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl
# source/blender/draw/engines/workbench/workbench_engine.c
# source/blender/draw/engines/workbench/workbench_shader.c
# source/blender/draw/intern/DRW_render.h
# source/blender/draw/intern/draw_debug.h
# source/blender/draw/intern/draw_manager_data.c
# source/blender/draw/intern/draw_manager_exec.c
# source/blender/draw/intern/draw_view_data.h
# source/blender/gpu/CMakeLists.txt
# source/blender/gpu/GPU_material.h
# source/blender/gpu/GPU_shader.h
# source/blender/gpu/GPU_state.h
# source/blender/gpu/GPU_vertex_buffer.h
# source/blender/gpu/intern/gpu_codegen.c
# source/blender/gpu/intern/gpu_material.c
# source/blender/gpu/intern/gpu_material_library.h
# source/blender/gpu/intern/gpu_node_graph.c
# source/blender/gpu/intern/gpu_texture_private.hh
# source/blender/gpu/intern/gpu_vertex_buffer.cc
# source/blender/gpu/opengl/gl_shader.cc
# source/blender/gpu/shaders/gpu_shader_common_obinfos_lib.glsl
# source/blender/gpu/shaders/material/gpu_shader_material_shader_to_rgba.glsl
# source/blender/nodes/shader/node_shader_tree.cc
# source/blender/nodes/shader/nodes/node_shader_background.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_glass.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_hair.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c
# source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
# source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_toon.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.cc
# source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.cc
# source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc
# source/blender/nodes/shader/nodes/node_shader_emission.cc
# source/blender/nodes/shader/nodes/node_shader_holdout.cc
# source/blender/nodes/shader/nodes/node_shader_output_material.cc
# source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c
# source/blender/nodes/shader/nodes/node_shader_tex_coord.cc
# source/blender/nodes/shader/nodes/node_shader_vector_transform.cc
# source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc
# source/blender/nodes/shader/nodes/node_shader_volume_principled.cc
# source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc
# source/blender/render/RE_pipeline.h
# source/blender/render/intern/initrender.c
Diffstat (limited to 'intern/ghost/intern/GHOST_SystemPathsCocoa.mm')
-rw-r--r-- | intern/ghost/intern/GHOST_SystemPathsCocoa.mm | 166 |
1 files changed, 70 insertions, 96 deletions
diff --git a/intern/ghost/intern/GHOST_SystemPathsCocoa.mm b/intern/ghost/intern/GHOST_SystemPathsCocoa.mm index 3b29d5106f6..4032c145ab4 100644 --- a/intern/ghost/intern/GHOST_SystemPathsCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemPathsCocoa.mm @@ -36,127 +36,101 @@ GHOST_SystemPathsCocoa::~GHOST_SystemPathsCocoa() #pragma mark Base directories retrieval -const char *GHOST_SystemPathsCocoa::getSystemDir(int, const char *versionstr) const +static const char *GetApplicationSupportDir(const char *versionstr, + const NSSearchPathDomainMask mask, + char *tempPath, + const std::size_t len_tempPath) { - static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - NSArray *paths; - - paths = NSSearchPathForDirectoriesInDomains( - NSApplicationSupportDirectory, NSLocalDomainMask, YES); - - if ([paths count] > 0) - basePath = [paths objectAtIndex:0]; - else { - [pool drain]; - return NULL; - } + @autoreleasepool { + const NSArray *const paths = NSSearchPathForDirectoriesInDomains( + NSApplicationSupportDirectory, mask, YES); - snprintf(tempPath, - sizeof(tempPath), - "%s/Blender/%s", - [basePath cStringUsingEncoding:NSASCIIStringEncoding], - versionstr); - - [pool drain]; + if ([paths count] == 0) { + return NULL; + } + const NSString *const basePath = [paths objectAtIndex:0]; + + snprintf(tempPath, + len_tempPath, + "%s/Blender/%s", + [basePath cStringUsingEncoding:NSASCIIStringEncoding], + versionstr); + } return tempPath; } -const char *GHOST_SystemPathsCocoa::getUserDir(int, const char *versionstr) const +const char *GHOST_SystemPathsCocoa::getSystemDir(int, const char *versionstr) const { static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - NSArray *paths; - - paths = NSSearchPathForDirectoriesInDomains( - NSApplicationSupportDirectory, NSUserDomainMask, YES); - - if ([paths count] > 0) - basePath = [paths objectAtIndex:0]; - else { - [pool drain]; - return NULL; - } - - snprintf(tempPath, - sizeof(tempPath), - "%s/Blender/%s", - [basePath cStringUsingEncoding:NSASCIIStringEncoding], - versionstr); + return GetApplicationSupportDir(versionstr, NSLocalDomainMask, tempPath, sizeof(tempPath)); +} - [pool drain]; - return tempPath; +const char *GHOST_SystemPathsCocoa::getUserDir(int, const char *versionstr) const +{ + static char tempPath[512] = ""; + return GetApplicationSupportDir(versionstr, NSUserDomainMask, tempPath, sizeof(tempPath)); } const char *GHOST_SystemPathsCocoa::getUserSpecialDir(GHOST_TUserSpecialDirTypes type) const { static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - NSArray *paths; - NSSearchPathDirectory ns_directory; - - switch (type) { - case GHOST_kUserSpecialDirDesktop: - ns_directory = NSDesktopDirectory; - break; - case GHOST_kUserSpecialDirDocuments: - ns_directory = NSDocumentDirectory; - break; - case GHOST_kUserSpecialDirDownloads: - ns_directory = NSDownloadsDirectory; - break; - case GHOST_kUserSpecialDirMusic: - ns_directory = NSMusicDirectory; - break; - case GHOST_kUserSpecialDirPictures: - ns_directory = NSPicturesDirectory; - break; - case GHOST_kUserSpecialDirVideos: - ns_directory = NSMoviesDirectory; - break; - default: - GHOST_ASSERT( - false, - "GHOST_SystemPathsCocoa::getUserSpecialDir(): Invalid enum value for type parameter"); - [pool drain]; + @autoreleasepool { + NSSearchPathDirectory ns_directory; + + switch (type) { + case GHOST_kUserSpecialDirDesktop: + ns_directory = NSDesktopDirectory; + break; + case GHOST_kUserSpecialDirDocuments: + ns_directory = NSDocumentDirectory; + break; + case GHOST_kUserSpecialDirDownloads: + ns_directory = NSDownloadsDirectory; + break; + case GHOST_kUserSpecialDirMusic: + ns_directory = NSMusicDirectory; + break; + case GHOST_kUserSpecialDirPictures: + ns_directory = NSPicturesDirectory; + break; + case GHOST_kUserSpecialDirVideos: + ns_directory = NSMoviesDirectory; + break; + case GHOST_kUserSpecialDirCaches: + ns_directory = NSCachesDirectory; + break; + default: + GHOST_ASSERT( + false, + "GHOST_SystemPathsCocoa::getUserSpecialDir(): Invalid enum value for type parameter"); + return NULL; + } + + const NSArray *const paths = NSSearchPathForDirectoriesInDomains( + ns_directory, NSUserDomainMask, YES); + if ([paths count] == 0) { return NULL; - } - - paths = NSSearchPathForDirectoriesInDomains(ns_directory, NSUserDomainMask, YES); + } + const NSString *const basePath = [paths objectAtIndex:0]; - if ([paths count] > 0) - basePath = [paths objectAtIndex:0]; - else { - [pool drain]; - return NULL; + strncpy(tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding], sizeof(tempPath)); } - - strncpy( - (char *)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding], sizeof(tempPath)); - - [pool drain]; return tempPath; } const char *GHOST_SystemPathsCocoa::getBinaryDir() const { static char tempPath[512] = ""; - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSString *basePath; - - basePath = [[NSBundle mainBundle] bundlePath]; - if (basePath == nil) { - [pool drain]; - return NULL; - } + @autoreleasepool { + const NSString *const basePath = [[NSBundle mainBundle] bundlePath]; - strcpy((char *)tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]); + if (basePath == nil) { + return NULL; + } - [pool drain]; + strcpy(tempPath, [basePath cStringUsingEncoding:NSASCIIStringEncoding]); + } return tempPath; } |