Blender V4.5
creator.cc File Reference
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "CLG_log.h"
#include "DNA_genfile.h"
#include "BLI_fftw.hh"
#include "BLI_string.h"
#include "BLI_system.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_appdir.hh"
#include "BKE_blender.hh"
#include "BKE_brush.hh"
#include "BKE_callbacks.hh"
#include "BKE_context.hh"
#include "BKE_cpp_types.hh"
#include "BKE_global.hh"
#include "BKE_idtype.hh"
#include "BKE_material.hh"
#include "BKE_modifier.hh"
#include "BKE_node.hh"
#include "BKE_particle.h"
#include "BKE_shader_fx.h"
#include "BKE_sound.h"
#include "BKE_vfont.hh"
#include "BKE_volume.hh"
#include "BLI_args.h"
#include "DEG_depsgraph.hh"
#include "IMB_imbuf.hh"
#include "MOV_util.hh"
#include "RE_engine.h"
#include "RE_texture.h"
#include "ED_datafiles.h"
#include "WM_api.hh"
#include "RNA_define.hh"
#include <csignal>
#include "creator_intern.h"
#include "gmp.h"
#include "tbb/scalable_allocator.h"

Go to the source code of this file.

Classes

struct  CreatorAtExitData

Functions

Application Level Callbacks

Initialize callbacks for the modules that need them.

static void callback_mem_error (const char *errorStr)
static void main_callback_setup ()
static void callback_main_atexit (void *user_data)
static void callback_clg_fatal (void *fp)
GMP Allocator Workaround
void * gmp_alloc (size_t size)
void * gmp_realloc (void *ptr, size_t, size_t new_size)
void gmp_free (void *ptr, size_t)
void gmp_blender_init_allocator ()
Main Function
int main (int argc, const char **argv)

Variables

Local Application State
ApplicationState app_state

Function Documentation

◆ callback_clg_fatal()

void callback_clg_fatal ( void * fp)
static

Definition at line 189 of file creator.cc.

References BLI_system_backtrace(), and callback_clg_fatal().

Referenced by callback_clg_fatal(), and main().

◆ callback_main_atexit()

void callback_main_atexit ( void * user_data)
static

◆ callback_mem_error()

void callback_mem_error ( const char * errorStr)
static

Definition at line 135 of file creator.cc.

References callback_mem_error().

Referenced by callback_mem_error(), and main_callback_setup().

◆ gmp_alloc()

void * gmp_alloc ( size_t size)

Definition at line 232 of file creator.cc.

References gmp_alloc(), and size().

Referenced by gmp_alloc(), and gmp_blender_init_allocator().

◆ gmp_blender_init_allocator()

void gmp_blender_init_allocator ( )

Use TBB's scalable_allocator on Windows. TBBmalloc correctly captures all allocations already, however, GMP is built with MINGW since it doesn't build with MSVC, which TBB has issues hooking into automatically.

Definition at line 251 of file creator.cc.

References gmp_alloc(), gmp_blender_init_allocator(), gmp_free(), and gmp_realloc().

Referenced by gmp_blender_init_allocator(), and main().

◆ gmp_free()

void gmp_free ( void * ptr,
size_t  )

Definition at line 241 of file creator.cc.

References gmp_free().

Referenced by gmp_blender_init_allocator(), and gmp_free().

◆ gmp_realloc()

void * gmp_realloc ( void * ptr,
size_t ,
size_t new_size )

Definition at line 236 of file creator.cc.

References gmp_realloc().

Referenced by gmp_blender_init_allocator(), and gmp_realloc().

◆ main()

int main ( int argc,
const char ** argv )

Blender's main function responsibilities are:

  • setup subsystems.
  • handle arguments.
  • run WM_main() event loop, or exit immediately when running in background-mode.

Definition at line 274 of file creator.cc.

References alloc_utf_8_from_16(), app_state, ARG_PASS_ENVIRONMENT, ARG_PASS_FINAL, ARG_PASS_SETTINGS, ARG_PASS_SETTINGS_FORCE, ARG_PASS_SETTINGS_GUI, CreatorAtExitData::ba, BKE_appdir_init(), BKE_appdir_program_path_init(), BKE_blender_atexit_register(), BKE_blender_atexit_unregister(), BKE_blender_globals_init(), BKE_brush_system_init(), BKE_callback_global_init(), BKE_cpp_types_init(), BKE_idtype_init(), BKE_materials_init(), BKE_modifier_init(), BKE_particle_init_rng(), BKE_shaderfx_init(), BKE_sound_force_device(), BKE_sound_init_once(), BKE_vfont_builtin_register(), BKE_volumes_init(), BLI_args_create(), BLI_args_parse(), BLI_assert, BLI_assert_unreachable, BLI_task_scheduler_init(), BLI_threadapi_init(), build_commit_date, build_commit_time, build_commit_timestamp, C, callback_clg_fatal(), callback_main_atexit(), CCL_init_logging(), CLG_fatal_fn_set(), CLG_init(), CTX_create(), datatoc_bfont_pfb, datatoc_bfont_pfb_size, DEG_register_node_types(), DNA_sdna_current_init(), FRS_init(), FRS_set_context(), G, GHOST_HACK_getFirstFile(), gmp_blender_init_allocator(), i, IMB_init(), blender::fftw::initialize_float(), libmv_initLogging(), LIKELY, main, ApplicationState::main_arg_deferred, main_arg_deferred_free(), main_arg_deferred_handle(), main_args_handle_load_file(), main_args_setup(), main_callback_setup(), main_signal_setup(), main_signal_setup_background(), MEM_init_memleak_detection(), MEM_use_guarded_allocator(), MEM_use_memleak_detection(), MOV_init(), blender::bke::node_system_init(), printf, RE_engines_init(), RE_texture_rng_init(), RNA_init(), STR_ELEM, STREQ, STRNCPY(), STRPREFIX, WM_exit(), WM_init(), WM_init_splash_on_startup(), and WM_main().

◆ main_callback_setup()

void main_callback_setup ( )
static

Definition at line 141 of file creator.cc.

References callback_mem_error(), main_callback_setup(), and MEM_set_error_callback.

Referenced by main(), and main_callback_setup().

Variable Documentation

◆ app_state

ApplicationState app_state
Initial value:
= []() {
app_state.signal.use_crash_handler = true;
app_state.signal.use_abort_handler = true;
return app_state;
}()
ApplicationState app_state
Definition creator.cc:118
struct ApplicationState::@103255035315211274203302334107301055006343262015 exit_code_on_error
struct BA_ArgCallback_Deferred * main_arg_deferred
struct ApplicationState::@325106322053230121212244074336042024351027377021 signal

Definition at line 118 of file creator.cc.

Referenced by arg_handle_abort_handler_disable(), arg_handle_crash_handler_disable(), arg_handle_python_exit_code_set(), arg_handle_python_expr_run(), arg_handle_python_file_run(), arg_handle_python_text_run(), main(), main_arg_deferred_exit_code_set(), main_arg_deferred_free(), main_arg_deferred_handle(), main_arg_deferred_is_set(), main_arg_deferred_setup(), and main_signal_setup().