From BlenderWiki

Jump to: navigation, search

Blender 2.5 source code directories explained

This page lists the directories in Blender's code and their use.

Diagram showing code layout of modules

See notes and Legenda below.

DIRECTORY / FILE USE
blender/ Main dir
blender/build_files/ Files needed when building the source
blender/build_files/cmake/ CMake build-system modules.
blender/build_files/make Files needed when building the source with make (Xcode use this)
blender/build_files/make/dlltool/ Tool for mingw to use for creating proper imp libs
blender/build_files/scons Files needed when building the source with Scons
blender/build_files/scons/config/ Scons platform configuration files
blender/build_files/scons/tools/ Scons internal tools
blender/doc/ Document generation (doxygen and sphinx), licenses, man page and file format info.
blender/extern/ External libraries that we build from source and configure specially for blender (bullet, glew, ...)
blender/intern/ Internal libraries: libraries that part of blender but kept slightly separate (smoke, decimation, iksolver, itasc, ...) and fluid
blender/po/ Translation files
blender/release/ Additional data that is used for release (python scripts, icons, platform specific installers, ...)
blender/release/bin/ Contains the .blender folder, with fonts and such files. These are copied in place the installation dir.
blender/release/scripts Python scripts that will be placed in Blender's installation directories
blender/release/plugins Plugins that will be placed in Blender's installation directories
blender/scons/ SCons build system, included with blender for convenience.
blender/source/ Main source code directory
blender/source/blender/ Main source tree
blender/source/blender/avi/ AVI loading and writing code (AVI raw, AVI jpeg and windows codec, not ffmpeg)
blender/source/blender/blenfont/ Blender's internal font system
blender/source/blender/blenkernel/ Kernel functions (data structure manipulation, allocation, free. No tools or UI stuff, very low level); kernel functions are shared with the blenderplayer, for loading data
blender/source/blender/blenlib/ Internal misc libraries: math functions, lists, random, noise, memory pools, file operations (platform agnostic)
blender/source/blender/blenloader/ Blend file loading and writing as well as in memory undo file system
blender/source/blender/blenpluginapi/ Texture and sequence plugin api
blender/source/blender/collada/ Collada interface between blender and the external collada library
blender/source/blender/editors/ Graphical editor code, tools, UI ... (most of the interesting code is in there)
blender/source/blender/editors/interface/ Is the widget drawing code (don't look here unless you're ready to spend hours going in circles)
blender/source/blender/editors/space_*/ These folders are for the window types and contains drawing code for their particular window type
blender/source/blender/editors/.../ These folders contain tool code, like mesh tools, animation tools, etc.
blender/source/blender/gpu/ GLSL shaders, buffers and other gpu related functions
blender/source/blender/ikplugin/ IK plugin api (used to interface with itasc)
blender/source/blender/imbuf/ Image buffer API and functions (loading, writing and manipulating different image formats); seq just has it's own buffer structure, but the loading is still done by imbuf; imbuf also has code for loading textures into openGL for display and all that
blender/source/blender/madesdna/ DNA structures definition: All data structures that are saved into files are here
blender/source/blender/makesrna/ RNA definitions and functions. Sits on top of DNA to provide a low level data access and definition API
blender/source/blender/modifiers/ Mesh modifiers
blender/source/blender/nodes/ Nodes code: CMP = composite, SHD: material, TEX: texture
blender/source/blender/python/ Python API
blender/source/blender/python/generic/ The Python API generic functions (font, opengl, noise ...)
blender/source/blender/python/intern/ The meat of the api (bpy module, wraps operators and rna) is in ./intern
blender/source/blender/python/mathutils/ The Python API 3D math module (access to Euler, Vector, Matrix, Quaternion, Color types)
blender/source/blender/quicktime/ Quicktime integration code (windows and OS X only)
blender/source/blender/readblenfile/ Low level file reading utility (version number, some flags, ...)
blender/source/blender/render/ The render engine
blender/source/blender/windowmanager/ Blender's internal window manager, event system, operators, thread jobs, ...
blender/source/blenderplayer/ Stubs for blenderplayer linking. Bad level calls that one day should all be fixed ;)
blender/source/creator/ One since source file, contains the "main" function of Blender
blender/source/darwin/ OS X packages
blender/source/gameengine/ Blender's internal game engine sources
blender/source/icons/ Windows icons
blender/source/kernel/ GE files (not sure these are still used, not important)
blender/source/tools/ MakeCursor.py, tool to create C-code from a mouse cursor. Several other old tools.
blender/CMakeLists.txt CMake build-system file
blender/GNUMakefile make file convenience wrapper for the CMake buildsystem, to quickly setup CMake builds.
blender/SConstruct SCons build-system file
blender/user-config.py SCons user configurations file

Notes

  • 2009-06-12
Thanks goes to theeth (Martin Poirier) who has patiently explained each folder after the first NewDev meeting (2009-06-12).
  • 2010-07-25
Partial update at level 1 (haven't checked inside folders too much for now)
  • Clean-up and corrections --JesterKing 09:50, 23 November 2010 (UTC)

Legenda

  • foo
These could be there depending on the build system you choose