Blender  V3.3
Classes
creator.c File Reference
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "CLG_log.h"
#include "DNA_genfile.h"
#include "BLI_args.h"
#include "BLI_string.h"
#include "BLI_system.h"
#include "BLI_task.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_appdir.h"
#include "BKE_blender.h"
#include "BKE_brush.h"
#include "BKE_cachefile.h"
#include "BKE_callbacks.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_gpencil_modifier.h"
#include "BKE_idtype.h"
#include "BKE_image.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_modifier.h"
#include "BKE_node.h"
#include "BKE_particle.h"
#include "BKE_shader_fx.h"
#include "BKE_sound.h"
#include "BKE_vfont.h"
#include "BKE_volume.h"
#include "DEG_depsgraph.h"
#include "IMB_imbuf.h"
#include "RE_engine.h"
#include "RE_texture.h"
#include "ED_datafiles.h"
#include "WM_api.h"
#include "WM_toolsystem.h"
#include "RNA_define.h"
#include <signal.h>
#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 (void)
 
static void callback_main_atexit (void *user_data)
 
static void callback_clg_fatal (void *fp)
 
GMP Allocator Workaround
voidgmp_alloc (size_t size)
 
voidgmp_realloc (void *ptr, size_t old_size, size_t new_size)
 
void gmp_free (void *ptr, size_t size)
 
void gmp_blender_init_allocator ()
 
Main Function
int main (int argc, const char **argv)
 

Variables

Local Application State
struct ApplicationState app_state
 

Function Documentation

◆ callback_clg_fatal()

static void callback_clg_fatal ( void fp)
static

Definition at line 163 of file creator.c.

References BLI_system_backtrace().

Referenced by main().

◆ callback_main_atexit()

static void callback_main_atexit ( void user_data)
static

Definition at line 143 of file creator.c.

References CreatorAtExitData::ba, BLI_args_destroy(), free(), NULL, and user_data.

Referenced by main().

◆ callback_mem_error()

static void callback_mem_error ( const char *  errorStr)
static

Definition at line 122 of file creator.c.

Referenced by main_callback_setup().

◆ gmp_alloc()

void* gmp_alloc ( size_t  size)

Definition at line 206 of file creator.c.

References size().

Referenced by 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 225 of file creator.c.

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

Referenced by main().

◆ gmp_free()

void gmp_free ( void ptr,
size_t  size 
)

Definition at line 215 of file creator.c.

References ptr.

Referenced by gmp_blender_init_allocator().

◆ gmp_realloc()

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

Definition at line 210 of file creator.c.

References ptr.

Referenced by gmp_blender_init_allocator().

◆ 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 244 of file creator.c.

References alloc_utf_8_from_16(), ARG_PASS_ENVIRONMENT, 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_cachefiles_init(), BKE_callback_global_init(), BKE_gpencil_modifier_init(), BKE_idtype_init(), BKE_main_blendfile_path_from_global(), BKE_materials_init(), BKE_modifier_init(), BKE_node_system_init(), BKE_particle_init_rng(), BKE_shaderfx_init(), BKE_sound_init_once(), BKE_vfont_builtin_register(), BKE_volumes_init(), BLI_args_create(), BLI_args_parse(), BLI_strncpy(), 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(), CTX_py_init_set(), 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(), IMB_ffmpeg_init(), IMB_init(), libmv_initLogging(), LIKELY, main_args_setup(), main_args_setup_post(), main_callback_setup(), main_signal_setup(), main_signal_setup_background(), MEM_init_memleak_detection(), MEM_use_guarded_allocator(), MEM_use_memleak_detection(), NULL, RE_engines_init(), RE_engines_init_experimental(), RE_texture_rng_init(), RNA_init(), STR_ELEM, STREQ, STRPREFIX, void, WM_exit(), WM_init(), WM_init_splash(), WM_keyconfig_init(), and WM_main().

◆ main_callback_setup()

static void main_callback_setup ( void  )
static

Definition at line 128 of file creator.c.

References callback_mem_error(), and MEM_set_error_callback.

Referenced by main().

Variable Documentation

◆ app_state

struct ApplicationState app_state
Initial value:
= {
.signal =
{
.use_crash_handler = true,
.use_abort_handler = true,
},
.exit_code_on_error =
{
.python = 0,
},
}

Definition at line 1 of file creator.c.

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(), and main_signal_setup().