When creating project files the multi-configuration generator is used. CMAKE_BUILD_TYPE is then not set, so always release libs were copied.
For now copy both release and debug.
from Alexander Kuznetsov (alexk)
bugfix for [#23553] F2 on filebrowser = bug?
from the tracker
--- snip
File Explorer redraws weirdly on second press of F2 if non-default view or file types were selected previously.
This patch prohibits second call of file selector in the same window.
The bug goes much deeper. If file selector is never closed properly (cancel or select), it never gets released. (at
least the handler). If you press F2 or Ctrl-F3 ten times and than "Back to Previous" and repeat all of this
several times Blender will freeze. Also after calling file selector at least two times, on cancellation Blender will
return to full area independently to what state it was before.
---
include small unrelated change to quiet unpack prints when fonts are not found.
- function renames, move WM functions into collections wm.add_keymap() --> wm.keymaps.new()
note: new is used for named items in a collection, which return the result.
- Action.get_frame_range() is now a readonly property 'frame_range', floats rather then ints.
- OBJ import/export now work with non utf8 paths. (all exporters and importers need changes like this)
- strip non utf8 chars from new ID blocks (also applies to renaming)
- set the file rename button to allow non-utf8 chars.
This patch makes SCA_PythonKeyboard.events and SCA_PythonMouse.events return a dictionary of all inputs (including inactive) instead of a list of active inputs.
Example usage:
import bge
if bge.logic.keyboard.events[bge.events.SPACEBAR] = bge.logic.KX_INPUT_JUST_ACTIVATED:
print("Spacebar pressed!")
A couple of changes to the patch:
* Wrap python stuff in #ifndef DISABLE_PYTHON
* Clear and decref m_event_dict in the destructors
A couple of things not related to the patch:
* Made member variables private
* Removed a commented out (and no longer used) method (SCA_PythonMouse.show())
* Added ND_FRAME_RANGE to the header listener, changing frame range in Properties Window didn't update it in the timeline, reported by Hardworker in IRC. Thanks!
* Main Area Listener doesn't listen to all NC_SCENE Notifiers now, only selected ND Notifiers, like the header does. This is more efficient. If there is a reason to let it listen to all NC_SCENE notifiers, please tell me. :)
- user input gets non utf8 chars stripped all text input other then file paths.
- python has the same limitations, it will raise an error on non utf8 strings except for paths use unicode escape literals so its possible to deal with saving to these file paths from python.
- new string functions
BLI_utf8_invalid_byte(str, len) returns the first invalid utf8 byte or -1 on on success.
BLI_utf8_invalid_strip(str, len) strips non utf-8 chars.
This happend because of incorrect order of calculating used layer mask and drawing
header. Added layer content changed notifier to recalc used layers when needed.
This also fixes header redrawing in "Move to layer" operator and when user
changes Object.layers in properties view
This patch allows a user to pass binary data to LibLoad() to load a blend file from memory instead of a file path. I don't know how useful this will be for others, but I've used it so far for:
* Decrypting .blend files and loading them without having to store the .blend on the hard drive
* Pulling .blend data out of an archive and loading it (again skipping the hard drive)
So, it seems the biggest use for this is skipping a bit of file IO (and possibly some security problems).
Example usage:
import bge
with f as open('myfile.blend', 'rb'):
data = f.read()
bge.logic.LibLoad('Name', 'Scene', data)
from Alexander Kuznetsov (alexk)
Authors comments
---
- Rename textfield sometimes exceeded scroll bars' and window's borders.
- Restrict buttons were over not under the rename field.
- Restrict lines didn't go all the way.
- Because of 2.4x interface system, in 2.5 rows were shifted 2 pixels up.
- In Datablocks and User Preferences view bottom line was down by one.
- Rows in Datablocks, User Preferences and Keymap view didn't extend all the way but check boxes and text fields did. It was visible while scrolling horizontally or at right bottom corner.
- Vertical lines in Datablocks and User Preferences didn't stop at the last horizontal line after last row.
This patch fixes those problems.
P.S. I tested the vertical offset with value of 40 so it works perfectly.
obj.add_vertex_group() --> obj.vertex_groups.new()
obj.add_vertex_to_group() --> obj.vertex_groups.assign()
note: obj.vertex_groups.assign() will be very slow, need to have this take a list rather then 1 vertex at a time.
The code was taking the last layer, but that is only valid if the mesh has only one kind of CustomData types (e.g. only UVMaps or only VertexColors). The solution I found is to call CustomData_get_named_layer_index instead. To avoid some situations where an uv with this name may already exist and the number of UVs is already the limit we are returning a CDL only when the texture is properly created.
As a bonus that also fixes the same problem with VertexColor.
- mesh.add_geometry(v, e, f) --> mesh.vertices.add(tot), mesh.edges.add(tot), mesh.faces.add(tot)
- mesh.add_material(mat) --> mesh.materials.link(mat)
changed material.link so it always adds a material even if it exists in the list, this behavior is good for users but not scripts since it can mess up indicies (some formats may have the same material set twice).
G.main->name (also bpy.data.filepath) was being set to an uninitialized string.
Not much we can do about this so set G.main->name an empty string if no file is loaded.
the render engine assumes the RenderResult's rectf is not in linear color space when color management is disabled so the sequencer and opengl render need to follow this else it results in dark images.
Contributed by Imran Syed (freakabcd)
Adds a field where the user can put in name/nickname that exporters
then can use to write authoring information, where possible.
Contributed by Imran Syed (freakabcd).
This adds basic authoring tool and author info ("Blender User" for now).
NOTE: Linux and OSX users need now to update their OpenCOLLADA libs - Blender should now compile fine with their latest revision.
Made some changes to the original patch to ensure linking is done correctly.
Some small cleanups for scons too.
patch [#23317] Changed some operators' RNA to accept lengths
by Lorenzo Tozzi (oni_niubbo)
with the minor change to use XYZ subtype rather then LENGTH.
- also fixes a problem where xray+transp+alpha1.0 objects wouldnt draw at all.
- the patch worked by adding twice but this leaked memory.
- solve by adding the xraytransp object to the xray list if the alpha is 1.0
also made drawing in camera view stick to the camera border (belated durian request),
useful for animation review without worrying about screensize moving the overlay about.
The UserPrefs Default was never getting initialised correctly, so new scenes would not get the default AutoKeying mode set correctly ("add but off"). I remembered fixing some problems like this before, but it seems that fix only fixed old files vs the user-prefs for new scenes.
G.sce was being restored after undo but not G.main->name
also changed reading a new file so G.main->name gets set to the startup.blend even if its not on the disk, not ideal but would set to <memory2> otherwise.
Thanks Campbell - one day I get used to C pointer management hell :)
* when using it to get, the whole string comes in one single line with Linux EOL (\n)
* works only for text
- image filepath in the image view would only be set when first loading a frame.
- check to free animated image buffers on opengl render was comparing against the wrong value.
* 'Active' on TimeLine header needs to show choices ALL KeyingSets available (Builtins + Scene-Absolutes), not just the ones in Scene ("Absolute Paths")
* The active KeyingSet setting is needed/used-by for both of these.
- some remove() functions took an int argument rather then the item to remove.
- disallow None argument.
- raise an error if the item isnt in the collection.
works like scons where using a subset of the targets name is enough.
make_quicky.py py
...expands into
make bf_python bf_python_ext blender/fast
arguments like -j4 are passed on.
eg:
row.prop_search_self(scene, "active", "keying_sets", text="")
...becomes
row.prop_search(scene.keying_sets, "active", scene, "keying_sets", text="")
This is more flexible since it works for other UI functions too.
eg:
bpy.context.StringProperty(attr='myprop'); del bpy.context.myprop
- made rna StringProperty/PointerProperty & similar into class methods.
- file selector hide option was inverted
scene.active_keying_set --> scene.keying_sets.active
...same for active_uv_texture. active_vertex_color, active_keyconfig,
- move mesh.add_uv_layer() and mesh.add_vertex_color() into their collections
also have them return the newly created layer and dont set the layer active.
uvtex = mesh.uv_layers.new(name)
vcol = mesh.vertex_colors.new(name)
- they now share the same code so it wont happen again.
- added id_data to properties so we can do...
matrix = C.object.matrix_world
obj = matrix.owner.id_data # get the original object back.
Submitted by: Alexander Kuznetsov (alexk)
Ctrl-LMB or Double-Click over the expand buttons in the Outliner would try renaming the object/item, but in 2.4x this only happened over the name.
layout.prop_search_self(), the same as layout.prop_search() except it uses an attribute of the collection.
A number of collections have an 'active' member which couldnt be used with prop_search() and meant we had a mix of active properties being in collections and directly added as properties.