Compare commits

...

4 Commits

Author SHA1 Message Date
vaner
fe1c916ee8
Merge ef07891cbc into 533c616cb8 2024-10-22 22:13:40 +02:00
Clay John
533c616cb8
Merge pull request #98391 from RandomShaper/rd_thread_switch
Some checks are pending
🔗 GHA / 📊 Static checks (push) Waiting to run
🔗 GHA / 🤖 Android (push) Blocked by required conditions
🔗 GHA / 🍏 iOS (push) Blocked by required conditions
🔗 GHA / 🐧 Linux (push) Blocked by required conditions
🔗 GHA / 🍎 macOS (push) Blocked by required conditions
🔗 GHA / 🏁 Windows (push) Blocked by required conditions
🔗 GHA / 🌐 Web (push) Blocked by required conditions
🔗 GHA / 🪲 Godot CPP (push) Blocked by required conditions
Implement thread ownership change for RenderingDevice
2024-10-22 13:10:32 -07:00
lullabyist
ef07891cbc Reducing opacity further to 0.2
Unselected nodes were still affecting visibility
2024-10-23 00:34:45 +05:30
Pedro J. Estébanez
d5d509bbd6 Implement thread ownership change for RenderingDevice 2024-10-21 20:56:42 +02:00
4 changed files with 13 additions and 5 deletions

View File

@ -1161,12 +1161,12 @@ void AnimationNodeStateMachineEditor::_state_machine_draw() {
for (int i = 0; i < transition_lines.size(); i++) {
TransitionLine tl = transition_lines[i];
if (!tl.hidden) {
float opacity = 0.25; // Default to reduced opacity
float opacity = 0.2; // Default to reduced opacity
if (selected_transition_from != StringName() && selected_transition_to != StringName()) {
// A transition is selected
if ((tl.from_node == selected_transition_from && tl.to_node == selected_transition_to) || (tl.from_node == selected_transition_to && tl.to_node == selected_transition_from)) {
opacity = 1.0; // Full opacity for the selected transition
opacity = 1.0; // Full opacity for the selected transition pair
}
} else if (!connected_nodes.is_empty()) {
// A node is selected
@ -1205,11 +1205,11 @@ void AnimationNodeStateMachineEditor::_state_machine_draw() {
if (selected_transition_from != StringName() && selected_transition_to != StringName()) {
// A transition is selected
if (name != selected_transition_from && name != selected_transition_to) {
opacity = 0.25;
opacity = 0.2;
}
} else if (!connected_nodes.is_empty() && !connected_nodes.has(name)) {
// A node is selected, keep existing behavior
opacity = 0.25;
// A node is selected
opacity = 0.2;
}
Ref<StyleBox> original_style = is_selected ? theme_cache.node_frame_selected : theme_cache.node_frame;

View File

@ -7260,6 +7260,10 @@ void RenderingDevice::_bind_methods() {
BIND_ENUM_CONSTANT(DEBUG_PASS);
}
void RenderingDevice::make_current() {
render_thread_id = Thread::get_caller_id();
}
RenderingDevice::~RenderingDevice() {
finalize();

View File

@ -1496,6 +1496,8 @@ public:
static RenderingDevice *get_singleton();
void make_current();
RenderingDevice();
~RenderingDevice();

View File

@ -370,6 +370,8 @@ Size2i RenderingServerDefault::get_maximum_viewport_size() const {
void RenderingServerDefault::_assign_mt_ids(WorkerThreadPool::TaskID p_pump_task_id) {
server_thread = Thread::get_caller_id();
server_task_id = p_pump_task_id;
// This is needed because the main RD is created on the main thread.
RenderingDevice::get_singleton()->make_current();
}
void RenderingServerDefault::_thread_exit() {