DmitriySalnikov / OBSNotifier

Simple program for displaying notifications from OBS on your desktop.
MIT License
46 stars 1 forks source link

[Feature Request]: Notifications in or over fullscreen apps #9

Open Pinwee opened 1 year ago

Pinwee commented 1 year ago

Feature description

Hello thank you very much for this plugin, he helped me solve the problem of bad experience when using obs! However, I found a situation that OBSNotifier can't show the notification floating window when the game software such as "it take two" is in full screen. And in the case of borderless windowing and so on are normal, can you add a pop-up window alert function for full-screen mode?

您好非常感谢您的这个插件,他帮助我解决了使用obs时候体验不好的问题! 但是我发现一个情况,在《it take two》等游戏软件全屏状态的时候OBSNotifier无法显示通知浮窗的提示。 而在无边框窗口化等情况都是正常的,请问能增加全屏模式的弹窗提示功能吗?

Implementation Ideas

No response

DmitriySalnikov commented 1 year ago

I have already answered this question in other places. In short, the main problem is anti-cheats. I can easily make a mode with notifications displayed on top of borderless-fullscreen windows as a non-interactive overlay, but I'm afraid that you can get banned for this. And for notifications on top of exclusive fullscreen games, I will need to integrate into the game process, and this is even more likely to lead to a ban. Maybe I'm afraid of anti-cheats for nothing. But I'm sure it wouldn't be a problem if this app had a digital signature that costs money. And most likely I will have to abandon the plugin system, but additional notification styles can be added through this repository.

Pinwee commented 1 year ago

Thank you for your reply, I understand, full-screen games and borderless windowed games run different mechanisms, if you simply realize the full-screen in-game display will be the risk of being banned, the use of certificates need to spend extra money. then this problem can only be temporarily shelved. but still thank you very much for the development of this plug-in, now it has been very good to use!

FoxGaal commented 1 year ago

the games I play dont have an anti cheat and I would want this feature. Could you have it as a checkbox option with warning of what enabling it could do?

FoxGaal commented 1 year ago

still waiting for this 🙏 can't use this plugin without it.

DmitriySalnikov commented 1 year ago

@FoxGaal What exactly do you want? Overlay on top of windowed and borderless mode or on top of exclusive fullscreen mode? Because it may take me a couple of weeks or a month to implement the overlay on top of the fullscreen mode.. And at this time I will not be able to properly improve and update my other projects. (I also clarified that in the future I will need a legal entity or sole proprietor to create a signature)

FoxGaal commented 1 year ago

just an overlay on top of UWP apps, Minecraft bedrock to be specific. It needs to work on top of full full screen borderless or when you press F11. This app has no client side anti cheat.

DmitriySalnikov commented 1 year ago

My idea with WS_EX_TOPMOST | WS_EX_TRANSPARENT | WS_EX_LAYERED is also useless, because UWP can have a higher priority. Minecraft in a full-screen window (F11) has more rights and is located on a completely different "layer" of windows. And to get the rights to display the window above the UWP, I still need to get a digital signature from an authorized retailer. Source

Or simply (not easy at all) try to draw my notifications directly on DirectX canvas..

FoxGaal commented 1 year ago

are you saying you wont be able to implement it then?

DmitriySalnikov commented 1 year ago

I have seen that there is one way to raise the level of rights that is definitely "illegal". I can try using it later.

DmitriySalnikov commented 12 months ago

@FoxGaal image


https://github.com/DmitriySalnikov/OBSNotifier/assets/7782218/14e4b2a3-b68a-41b6-8bc4-e552a3788a00

1600x900 on a 1080p display. When switching to fullscreen, the screen is completely reinitialized, but the notification still shows up. This means that no injection into the DirectX or OpenGL rendering process is required!!! In this case, all that is needed to make it work and not attract the attention of anti-cheats is a digital signature (150-300$ for the first signature if I don't run into any other difficulties).

And also if I capture the game in OBS, and not the desktop, then the overlay on the video will not be visible.


And I am very surprised that nowhere on the Internet is it mentioned that the overlay can be displayed with UIAccess rights, and not by embedding into the DirectX/OpenGL process (or I was looking in the wrong place.).

FoxGaal commented 12 months ago

this is very good news tysm!

DmitriySalnikov commented 12 months ago

Additional testing showed that UIAccess allows me to display notifications only on top of DirectX fullscreen games (Dishonored, Crysis 2,3, Baldurs Gate 3 (dx11)). OpenGL and Vulkan use a more "true" fullscreen and don't allow me to display notifications on top of them.

Even games using the first versions of DirectX allow me to display notifications on top of them, for example Deus Ex (2000) running on Unreal Engine 1 (1998). But Noita, BG3 (Vulkan) or Godot Engine don't allow it.


In fact, this behavior is no different from the official Xbox Game Bar app. As well as Windows notification about switching music tracks also cannot be displayed on top of OpenGL/Vulkan.

DmitriySalnikov commented 12 months ago

There should be a link and a description of the update here, but I thought again and won't post it yet.

Now I'm waiting for an email with answers about the digital signature. If everything goes well, then I will arrange a fundraiser for the purchase of a signature.

I apologize if I caused any inconvenience.