diff options
Diffstat (limited to 'servers')
| -rw-r--r-- | servers/audio_server.cpp | 6 | ||||
| -rw-r--r-- | servers/visual/shader_language.cpp | 41 | ||||
| -rw-r--r-- | servers/visual/visual_server_scene.cpp | 5 |
3 files changed, 32 insertions, 20 deletions
diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 783788a6a1..a030871754 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -518,6 +518,8 @@ void AudioServer::remove_bus(int p_index) { memdelete(buses[p_index]); buses.remove(p_index); unlock(); + + emit_signal("bus_layout_changed"); } void AudioServer::add_bus(int p_at_pos) { @@ -571,6 +573,8 @@ void AudioServer::add_bus(int p_at_pos) { buses.push_back(bus); else buses.insert(p_at_pos, bus); + + emit_signal("bus_layout_changed"); } void AudioServer::move_bus(int p_bus, int p_to_pos) { @@ -593,6 +597,8 @@ void AudioServer::move_bus(int p_bus, int p_to_pos) { } else { buses.insert(p_to_pos - 1, bus); } + + emit_signal("bus_layout_changed"); } int AudioServer::get_bus_count() const { diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp index f5c926c093..d5a9bfb606 100644 --- a/servers/visual/shader_language.cpp +++ b/servers/visual/shader_language.cpp @@ -3702,26 +3702,6 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct //todo parse default value tk = _get_token(); - if (tk.type == TK_OP_ASSIGN) { - - Node *expr = _parse_and_reduce_expression(NULL, Map<StringName, BuiltInInfo>()); - if (!expr) - return ERR_PARSE_ERROR; - if (expr->type != Node::TYPE_CONSTANT) { - _set_error("Expected constant expression after '='"); - return ERR_PARSE_ERROR; - } - - ConstantNode *cn = static_cast<ConstantNode *>(expr); - - uniform.default_value.resize(cn->values.size()); - - if (!convert_constant(cn, uniform.type, uniform.default_value.ptrw())) { - _set_error("Can't convert constant to " + get_datatype_name(uniform.type)); - return ERR_PARSE_ERROR; - } - tk = _get_token(); - } if (tk.type == TK_COLON) { //hint @@ -3837,6 +3817,27 @@ Error ShaderLanguage::_parse_shader(const Map<StringName, FunctionInfo> &p_funct tk = _get_token(); } + if (tk.type == TK_OP_ASSIGN) { + + Node *expr = _parse_and_reduce_expression(NULL, Map<StringName, BuiltInInfo>()); + if (!expr) + return ERR_PARSE_ERROR; + if (expr->type != Node::TYPE_CONSTANT) { + _set_error("Expected constant expression after '='"); + return ERR_PARSE_ERROR; + } + + ConstantNode *cn = static_cast<ConstantNode *>(expr); + + uniform.default_value.resize(cn->values.size()); + + if (!convert_constant(cn, uniform.type, uniform.default_value.ptrw())) { + _set_error("Can't convert constant to " + get_datatype_name(uniform.type)); + return ERR_PARSE_ERROR; + } + tk = _get_token(); + } + shader->uniforms[name] = uniform; if (tk.type != TK_SEMICOLON) { diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index 884489375f..04dcde1365 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -730,6 +730,11 @@ void VisualServerScene::instance_set_exterior(RID p_instance, bool p_enabled) { } void VisualServerScene::instance_set_extra_visibility_margin(RID p_instance, real_t p_margin) { + Instance *instance = instance_owner.get(p_instance); + ERR_FAIL_COND(!instance); + + instance->extra_margin = p_margin; + _instance_queue_update(instance, true, false); } Vector<ObjectID> VisualServerScene::instances_cull_aabb(const AABB &p_aabb, RID p_scenario) const { |