mostly the startup.blend was trailing behind. Also renamed B.blend.c.
* Lamp shadow buffer was Classical instead of Classical Halfway.
* Point Lamp was named "Spot".
* Render resolution is 50% 1080p.
* Scene and material bake/use tangent space normal maps.
* Remove empty text datablock.
* Enable auto ray bias on material.
* Change default material diffuse color to match new material.
* Mist start/depth from 0/0 to 5/25 so it does something.
* AO uses Add instead of Multiply.
* Change world colors for new world same as startup.blend.
* Default cube rotation was 0,-0,0 now 0,0,0.
* Enable relative/filter/hide files in user preferences.
- blend load/save uses os message.
- image load gives os message. (remove check for slash at end of line, just let the os report an error)
- python api load image/font/text raise errors with message (was just retuning None for image and font)
- minor edits to py api errors.
path -> filepath (for rna and operators, as agreed on with elubie)
path -> data_path (for windowmanager context functions, this was alredy used in many places)
- fix for blend file thumbnails not being immediately visible in an external file manager (was writing the thumb before the blend)
- move overlay function from wm_files.c into thumbs_blend.c
- uses same thumbnail system as image browser
- blend files show thumbnails in ubuntu/gnome (freedesktop spec)
- 128x128 images are embedded into the blend file header, a simple loader avoids reading the entire blend file to extract it when generating thumbnails in the file selector.
When the image browser reads a directory it loads images and creates thumbnails, blend files embedded images are treated just like loading an image.
- the thumbnail is created from the camera view in solid mode. (no camera == no thumbnal).
- readfile/writefile.c: had to use the 'TEST' code name to save thumbnails, anything else would segfault older blender versions on load. (its not used elsewhere).
* small improvement to last commit: actually pass the error value from WM_write_file back to the operator and cancel the operator if not successful. This also preserves the indication that the file hasn't been saved in case of error.
that mode. This ensures proper initialization happens like creating the
cursor or building an acceleration structure. It also means edit and
particle mode are now saveable.
Not sure yet if this is a good feature, though personally I like being able
to load my exact state again after saving, but maybe entering edit mode is
too slow in some cases? It's easy to make it work only for the sculpt/paint
modes again if wanted.
This fixes bug #21004 about a missing sculpt cursor on load.
- update internal 'btempdir' from userprefs on changing and initializing the temp dir.
- add sequence strip operators nolonger require the sequence view to be active (better for automation).
(commit 27434 by Campbell from render25 branch)
It's (still) not working since the pool in the operator will not allow this operator to run without context.
For the window/area/screen has to be created somewhere (maybe in WM_init_game ).
I have no idea on what should be done to initialize it here, so if anyone knows how to proceed, please help here.
* side note: should we also have it as a command line option?
* Property update functions no longer get context, instead they get only
Main and Scene. The RNA api was intended to be as context-less as
possible, since it doesn't really matter who is changing the property,
everything that uses the property should be updated.
* There's still one exception case that use it now, screen operations
still depend on context too much. It also revealed a few places using
context where they shouldn't.
* Ideally Scene shouldn't be passed, but much of Blender still depends on
it, should be dropped when we try to support multiple scene editing.
Change was planned for a while, but need this now to be able to call
update without a context pointer.
* This is experimental, the file format may change still!
* Helps reduce memory usage, keeps .blend files smaller, and makes
saving quicker when not editing multires.
* This is implemented at the customdata level, currently only the
multires displacements can be stored externally.
ToDo
* Better integration with object duplication/removal/..
* Memory is not yet freed when exiting sculpt mode.
* Loading only lower levels is not supported yet.
What works:
The usual command line options for rendering.
All python scripts are loaded (which includes custom properties)
Render engines are loaded and can be used
-P to run scripts works partially: rna api works ok, not operators.
What doesn't:
Most operator calls in python. This is a problem with poll functions. (Brecht and Campbell are aware of this already)
Changes:
-d now also applied with -b (it was ignored before)
user file (.B25.blend) now also loaded in bg mode. This helps for custom paths and all.
wm is also initialized (it's needed for a lot of context calls)
Ghost, however, is not initialized.
Auto save is now working again in 2.5. It will also remember now what
the location of the original file was when recovering it, so that
library links still work and saving the restored file does not save to
the temp directory. There is also a new Recover Auto Save operator
which will open the filebrowser in the temp directory and show the
auto saved .blends.
Implemenation Notes:
* Timer storage was moved from window to windowmanager, so we can have
windowmanager level timers too now, doesn't make sense to have
autosave timer attached to a particular window.
* FileGlobal now has a filename field storing where the file was saved.
Note that this is only used when loading a file through the recover
operators, regular file read doesn't use it, so copying the quit.blend
manually over the original file will still work as expected.
* Jobs timer no longer uses operator now, this seems more like an
internal thing, changing keymaps should not make it possible to break
the jobs manager.
* Autosave is postponed by 10 seconds when a modal operator is running,
e.g. transform or file browsing.
* Moved setting G.sce in setup_app_data before depsgraph updates, these
can use the filename for pointcaches.
bpy.ops.mesh.primitive_torus_add(major_radius=1, minor_radius=0.25, major_segments=48, minor_segments=16)
- experemental dynamic menus, used for INFO_MT_file, INFO_MT_file_import, INFO_MT_file_export and INFO_MT_mesh_add. these can have items added from python.
eg.
- removed OBJECT_OT_mesh_add, use the python add menu instead.
- made mesh primitive ops - MESH_OT_primitive_plane_add, ...cube_add, etc. work in object mode.
- RNA scene.active_object wrapped
- bugfix [#19466] 2.5: Tweak menu only available for mesh objects added within Edit Mode
ED_object_exit_editmode was always doing an undo push, made this optional using the existing flag - EM_DO_UNDO, called everywhere except when adding primitives.
The support for this is really quite hacky, and I might disable this later if we cannot get some parts to work nicely.
Some notes:
* This is currently stored in the same variable that quaternions are stored in, since they both have 4 components. However, in RNA, I've added 2 properties specially for this.
* There are some shearing issues using certain axes - i.e. (1,1,0) - that will need to be checked on.
* Transform code is really quite temporary for this. Just a quick demo of what can be done...
* recent files now just write content of G.recent_files, was adding untitled.blend!
* removed unused and now superfluous code reading the .Bfs file (is done in fsmenu now)
This is problematic for a few reasons...
* I'd often save a blendfile only so it would appier in the open recent menu.
* Saving files (when you dont need to) makes access times less useful.
* binary diff's in SVN dont give any useful info. Sometimes I wasnt sure if I actually edited or saves for fast re-opening.
* Testing 2.4x files with animation data in 2.5 can loose info.
* Its not logical and other apps dont work this way.
Also made the recent file list in the file browser display the most recent item first (like the open recent menu).
* Move sound_init to make sure it gets called everytime user
preferences is reloaded.
* Merged sound_reinit and sound_init. One used user preferences
while the other did not, don't see the point of this, so just
made it always use user preferences now.
* Timeline header audio sync option now controls scene flag
rather than timeline flag. Since it uses the same playback
operator now, there is no distinction anymore.
* Added boolean property sync to animation play operator, to sync
with audio or not. Uses scene setting if property is not set.
* Playback stop button in info header now calls operator, so sounds
stop playing too.
New feature: allowing to open temporarily windows for output.
Implemented for:
- Render output (use output menu "new window" option).
- User Preferences (alt+U, plus added in 'File' menu)
Currently the window opens where your mouse is. The Render window
works as usual, with ESC or F11 moving it to back or front again.
That allows the window position to remain where you moved it on
new renders.
If you close a render window when it renders, the render thread
will be killed.
User prefs show 'info window' now... i thought we'd use outliner?
Anyhoo, I've made the 'save settings' to close the 2nd window as
well.
Opening a secondary file window for save I'll check on later,
this has to be checked with the current event system still.
the WM_window_open_temp() api call for this maintains currently
a *single* temp window. If you have a render window open, and call
for the preferences, the render window will be used for it. And
the other way around.
On closing the blender window, the temp windows close automatically
when there's no regular window open, and blender quits.
* Clean up File menu, added back recover last session op.
* .blend compress now behaves a bit different, previously
it would only respect the user preference. Now it saves
existing files the same way they are saved, and new files
following the user preference. The save operator has a
Compress toggle in the file browser left panels now.
* Add menu working again, some fixes to make these operators
work outside the 3d view were needed.
* Timeline menu removed, its contents will be moved to the
timeline header menus.
* Game menu can now start game, changed the start game op
to choose another 3d view if none is available.
* Render menu has a few items now.
* Help menu contains a few links again.