From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

User:Broken/OceanSimulation

User:Broken/VolumeRenderingDev

User:Broken/FlareResearch

User:Broken/ShadingSystemScratchpad

User:Broken/BreakingRenderCompatibility


User:Broken/SummerOfDocs2006Restructure



http://wiki.blender.org/index.php/BlenderDev/EventsToolApiNotes

Broken things I've found in 2.5

  • file selector should warn on file ops (i.e. file name exists) before closing file manager. if cancelled, should give an opportunity to rectify within the file browser (i.e. choosing a new name). Popping up afterwards is easy to miss and gives a false impression that it succeeded.
  • Tweaking hair virtual parents: crash in psys_face_mat() - dm = 0x000000000001

2.5 Todo

  • Investigate using horizontal motion for dolly zoom, rather than vertical, as a preference for maya/c4d users
  • fix blender's camera model

comp stuff

  • manipulators
    • leading to roto shapes
  • non-awful image sequence handling
  • RGBA toggles, extra settings
  • procedural, concatenated transformation matrix/deformation

Own notes on understanding flow of fullscreen area code

When a render occurs OVER NODE SPACE:

• screen_render_invoke
  • screen_set_image_output
    • ED_screen_full_newspace(C, CTX_wm_area(C), SPACE_IMAGE);
      original sa->full==0, so
      • newsa = ed_screen_fullarea(C, win, sa)
        spacedata swapping etc happens here - creates new space SPACE_INFO
        newsa == old area (eg. nodes) in new screen

      • ED_area_newspace(C, newsa, type [SPACE_IMAGE]);
        tries to create new image space in full screen
        FOR IMAGE DOESN'T create new space, since spacetypes are equal

    now we have new sa, in full screen also new area in context
    also have sa->full
    new we have existing sa, in full screen, with same area in context

    • sima->flag |= SI_FULLWINDOW|SI_PREVSPACE;

  RENDER IN FULL SCREEN NOW

Pressing ESC to close:

    
• render_view_cancel_exec
  since sima && sima->flag & SI_FULLWINDOW:
  • ED_screen_full_prevspace(C, sa);
    • ED_area_prevspace
      sa->full exists      
      
      sa is SPACE_IMAGE      
      sa is SPACE_IMAGE (fullscreen)

      here is where it checks for sl->next
      
	  • ED_area_newspace(C, sa, sl->next->spacetype);
        W COMMENT doesn't do anything? because sa->spacetype == sl->next->spacetype ??
        actually now it does do something, changes sa into a node space 
        turns image space into 2 sa == space_node --> not right!
      if it does something it would modifies sa, which gets passed to:

    • ed_screen_fullarea
      sa->full exists, so:

      find 'old' area in the list of spaces in the old screen
      old == space_node (the one we want to go back to)      
      3 sa == space_node (existing full screen area, after being converted to the sl->next space type)
      
      old = space_image
      3 sa == space_node
      
      area_copy_data(old, sa, 1);	

  ALL DONE

Compiling libs on Mac Os X

Intel

LibTIFF

export MACOSX_DEPLOYMENT_TARGET=10.5

./configure --disable-cxx --disable-dependency-tracking --with-apple-opengl-framework --with-jpeg-include-dir=/Developer/jpeg-8b/built/include/ --with-jpeg-lib-dir=/Developer/jpeg-8b/built/lib/ CFLAGS="-Os -arch ppc -arch i386 -arch x86_64" --prefix=/Developer/tiff-3.9.2/built --disable-shared

JPEGlib

export MACOSX_DEPLOYMENT_TARGET=10.5

./configure --disable-dependency-tracking CFLAGS="-arch i386 -arch x86_64 -arch ppc" --prefix=/Developer/jpeg-8b/built --enable-static --disable-shared

FFMPEG

Currently scons works well to compile FFMPEG as part of the build process - I did this to generate the .a libraries which we can then use as precompiled. When scons is going through the dependencies, it runs the configure scripts for the various parts of FFMPEG. Sometimes we need to modify these a bit

  • matroska (libavformat) has a bzlib option for bzip2 compression. The configure script automatically enables this, regardless of whether you have the necessary bzlib libraries or headers installed. If you don't (as you wouldn't usually on Mac), configure ffmpeg manually before build by:
cd extern/ffmpeg
./configure --disable-bzlib

EDIT: Fixed this in the Sconscript


  • xvidcore has trouble in the build system if you have assembler enabled (it is enabled by default). To disable it:
cd extern/xvidcore/build/generic
./configure --disable-assembly

EDIT: Fixed this in the darwin-config

  • If you don't have yasm (an assembly compiler) you'll also need to disable assembly in other areas (I think x264 for one). This can probably be done a similar way. I opted to install yasm on my system - the most convenient way is to install from source, since the latest .dmg I tried on the yasm download page was made by macports, and installed to /opt/local/ which was not in any executable/include/library paths on my system. Installing from source works much better, though you have to uninstall it manually. To install yasm from source is simple, just:
cd yasm-source-dir
./configure && make && make install

By default, yasm installs to /usr/local/...

  • Once this is configured:
python scons/scons.py

to install (with your relevant user-config.py)

fftw

  • fftw in blender needs the single threaded option so:
cd fftw-source-dir
./configure --disable-threads
make && make install

notes

Useful things:

deployment min 10.4 for intel, min 10.3 for ppc?


env var MACOSX_DEPLOYMENT_TARGET

env var? SDKROOT

gcc -mmacosx-version-min=10.4 gcc-4.0 -mmacosx-version-min=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk

-Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk

Comand line utils: otool lipo


http://lists.apple.com/archives/unix-porting/2003/Oct/msg00051.html http://lists.apple.com/archives/xcode-users/2005/Dec/msg00524.html


Building python 3.1:

export MACOSX_DEPLOYMENT_TARGET=10.4
export SDKROOT=/Developer/SDKs/MacOSX10.4u.sdk
export C_INCLUDE_PATH=/Developer/SDKs/MacOSX10.4u.sdk/usr/include
export CFLAGS="-mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
./configure --prefix=/Users/matt/Desktop/py10.4_install/ --enable-universalsdk=/Developer/SDKs/MacOSX10.4u.sdk --with-pydebug
make; make install