mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-25 20:06:17 +00:00
Fix passing user data in user-triggered equeue events (#2948)
This commit is contained in:
parent
8cdd8dd725
commit
5b6fc788b3
2 changed files with 8 additions and 0 deletions
|
@ -145,6 +145,8 @@ bool EqueueInternal::TriggerEvent(u64 ident, s16 filter, void* trigger_data) {
|
||||||
if (event.event.ident == ident && event.event.filter == filter) {
|
if (event.event.ident == ident && event.event.filter == filter) {
|
||||||
if (filter == SceKernelEvent::Filter::VideoOut) {
|
if (filter == SceKernelEvent::Filter::VideoOut) {
|
||||||
event.TriggerDisplay(trigger_data);
|
event.TriggerDisplay(trigger_data);
|
||||||
|
} else if (filter == SceKernelEvent::Filter::User) {
|
||||||
|
event.TriggerUser(trigger_data);
|
||||||
} else {
|
} else {
|
||||||
event.Trigger(trigger_data);
|
event.Trigger(trigger_data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,12 @@ struct EqueueEvent {
|
||||||
event.data = reinterpret_cast<uintptr_t>(data);
|
event.data = reinterpret_cast<uintptr_t>(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TriggerUser(void* data) {
|
||||||
|
is_triggered = true;
|
||||||
|
event.fflags++;
|
||||||
|
event.udata = data;
|
||||||
|
}
|
||||||
|
|
||||||
void TriggerDisplay(void* data) {
|
void TriggerDisplay(void* data) {
|
||||||
is_triggered = true;
|
is_triggered = true;
|
||||||
if (data != nullptr) {
|
if (data != nullptr) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue