Merge branch 'blender-v4.0-release'
This commit is contained in:
commit
79dc2c7672
|
@ -464,9 +464,24 @@ extern "C" int GHOST_HACK_getFirstFile(char buf[FIRSTFILEBUFLG])
|
||||||
// key window from here if the closing one is not in the orderedWindows. This
|
// key window from here if the closing one is not in the orderedWindows. This
|
||||||
// saves lack of key windows when closing "About", but does not interfere with
|
// saves lack of key windows when closing "About", but does not interfere with
|
||||||
// Blender's window manager when closing Blender's windows.
|
// Blender's window manager when closing Blender's windows.
|
||||||
|
//
|
||||||
|
// NOTE: It also receives notifiers when menus are closed on macOS 14.
|
||||||
|
// Presumably it considers menus to be windows.
|
||||||
- (void)windowWillClose:(NSNotification *)notification
|
- (void)windowWillClose:(NSNotification *)notification
|
||||||
{
|
{
|
||||||
NSWindow *closing_window = (NSWindow *)[notification object];
|
NSWindow *closing_window = (NSWindow *)[notification object];
|
||||||
|
|
||||||
|
if (![closing_window isKeyWindow]) {
|
||||||
|
/* If the window wasn't key then its either none of the windows are key or another window
|
||||||
|
* is a key. The former situation is a bit strange, but probably forcin a key window is not
|
||||||
|
* something desirable. The latter situation is when we definitely do not want to change the
|
||||||
|
* key window.
|
||||||
|
*
|
||||||
|
* Ignoring non-key windows also avoids the code which ensures ordering below from running
|
||||||
|
* when the notifier is received for menus on macOS 14. */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
NSInteger index = [[NSApp orderedWindows] indexOfObject:closing_window];
|
NSInteger index = [[NSApp orderedWindows] indexOfObject:closing_window];
|
||||||
if (index != NSNotFound) {
|
if (index != NSNotFound) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -24,17 +24,11 @@ class DefaultMaterialNodeParser : public NodeParser {
|
||||||
NodeItem surface = create_node(
|
NodeItem surface = create_node(
|
||||||
"standard_surface",
|
"standard_surface",
|
||||||
NodeItem::Type::SurfaceShader,
|
NodeItem::Type::SurfaceShader,
|
||||||
{{"base_color", val(MaterialX::Color3(material_->r, material_->g, material_->b))},
|
{{"base", val(1.0f)},
|
||||||
{"diffuse_roughness", val(material_->roughness)}});
|
{"base_color", val(MaterialX::Color3(material_->r, material_->g, material_->b))},
|
||||||
|
{"diffuse_roughness", val(material_->roughness)},
|
||||||
if (material_->metallic > 0.0f) {
|
{"specular", val(material_->spec)},
|
||||||
surface.set_input("metalness", val(material_->metallic));
|
{"metalness", val(material_->metallic)}});
|
||||||
}
|
|
||||||
if (material_->spec) {
|
|
||||||
surface.set_input("specular", val(material_->spec));
|
|
||||||
surface.set_input("specular_color", val(material_->spec));
|
|
||||||
surface.set_input("specular_roughness", val(material_->roughness));
|
|
||||||
}
|
|
||||||
|
|
||||||
NodeItem res = create_node(
|
NodeItem res = create_node(
|
||||||
"surfacematerial", NodeItem::Type::Material, {{"surfaceshader", surface}});
|
"surfacematerial", NodeItem::Type::Material, {{"surfaceshader", surface}});
|
||||||
|
|
Loading…
Reference in New Issue