利用者:Broken
User:Broken/VolumeRenderingDev
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