Commit Graph

50 Commits

Author SHA1 Message Date
a
4017266241 * deprecate lazy_load_achievements_icons in favor of paginated_achievements_icons
* new option `upload_achievements_icons_to_gpu` in `configs.main.ini` which controls whether the overlay should upload the achievements icons to the GPU and display them or not
* synchronize overlay proc with the periodic steam callback in a better way to avoid FPS drop
* prevent overlay flickering regression
* upload achievements icons to the GPU in the overlay proc periodically, this dramatically decreased the startup locking/halt time
* fix a potential deadlock scenario in the overlay as a result of synchonizing with 2 mutex objects
2024-08-21 23:56:52 +03:00
a
161bd8da33 * fix a bug when displaying progress notifications where the achieved icon was shown instead of the gray/locked one
* don't save/cache the achievement icon handle to allow lazy loading
* make the test achievement load either locked or unlocked icon randomly
* don't attempt to load the icon more than once
2024-08-18 05:02:20 +03:00
a
917eea288a don't load achievements icons in the overlay, already done in steam_user_stats 2024-08-18 05:01:53 +03:00
a
f581a892eb in the overlay, use the achievement icon handle directly instead of the icon filepath to load the icon resource 2024-08-18 05:00:34 +03:00
a
7e768c73fe deprecate searching for achievements icons in "achievement_images" folder when loading overlay icons 2024-08-18 05:00:06 +03:00
otavepto
2bea12e199 display & save progress/max_progress as uint32 2024-06-23 19:16:44 +03:00
otavepto
d30a5bf081 use the dynamic notifications timing 2024-06-20 21:49:22 +03:00
otavepto
0f878aec4b MY EYES! 2024-06-20 02:57:39 +03:00
otavepto
662a025a38 fix missing arg 2024-06-06 23:19:13 +03:00
otavepto
9ee40181b1 * allow test achievement to include a progress randomly
* allow showing the progress indicator in the achievement notifications, not only in the achievements list
* don't play sound when showing progress notifications
* disable progress notifications if the setting in the .ini was set
2024-06-06 23:19:13 +03:00
otavepto
7203e320ab separate function to apply color styles 2024-06-06 23:19:13 +03:00
otavepto
7201ac40b1 * add new button to the overlay "toggle user info" to show/hide user info + make it hidden by default
* make all popups toggleable, clicking the button another time will show or hide the popup depending on its last state
* reorder the placement of buttons
2024-06-06 23:19:13 +03:00
otavepto
5268683850 * make the overlay object oriented, that way when app shutdown then re-init steam api it would hold its own local state, avoiding racing troubles
* return early if the overlay was disabled without locking
* remove external checks for the disable_overlay flag, check for it inside the overlay code
2024-06-04 21:58:04 +03:00
otavepto
765f3f210c const ref string instead of copy 2024-05-22 23:08:56 +03:00
schmurger
e30cc2957f Removed update_achievement_progress function 2024-05-21 19:29:20 +03:00
schmurger
6b26ca1b4c Fix build 2024-05-21 19:29:20 +03:00
schmurger
b0cffd485b Added realtime progress update 2024-05-21 19:29:20 +03:00
schmurger
4e8f2505b5 Add achievement progress 2024-05-21 19:29:20 +03:00
otavepto
e5d1a8bda7 separate .h/.cpp files 2024-05-03 03:33:46 +03:00
otavepto
6e4c42410c * added 2 new options to the overlay appearance Notification_Margin_x and Notification_Margin_y
* updated the built-in overlay appearance & the example overlay ini file with a darker look and feel + changed some defaults
2024-04-30 08:38:38 +03:00
otavepto
9f1e09b97a * fix the animation timing, the notification start_time must be in millisec to avoid losing precision
* convert the animation duration to millisec once during settings parsing
* decrease the notification margin from 10.0 to 5.0, it looked way shifted on larger screens
* pass around instances on std::chrono instead of float, use float in the final stage when processing/operating-on the time (if needed)
* decrease the animation duration to 0.35 sec, looks more swishy!
2024-04-28 10:30:01 +03:00
schmurger
2eab708bb6 Added configuration for notification animation duration 2024-04-28 10:30:01 +03:00
schmurger
ce496284bc Added animation for notification popout. 2024-04-28 10:30:01 +03:00
otavepto
21cce304e8 * revert the changes to the notifications heights + calculate all notifications heights dynamically
* added a new button to the overlay `"Test achievement"` which triggeres a test achievement
* added a new overlay appearance option `Achievement_Unlock_Datetime_Format` which allows changing the date/time format of the unlocked achievements
* removed the condition which disabled the overlay sounds when it is shown
2024-04-25 03:17:36 +02:00
otavepto
82ba66fbe7 removed the warning for using force_xxx.txt from the overlay 2024-04-20 00:49:28 +02:00
otavepto
138123b1be load overlay audio from subfolder sounds + example files 2024-04-11 00:09:18 +02:00
otavepto
9fe55f2e81 for the overlay:
* reduce code duplication
* avoid bypassing local_storage when loading sounds
* avoid alloating sound buffers via new-delete, use std::vector
* clear/reset all global objects on destroy
2024-04-10 11:05:26 +02:00
otavepto
22fc5038a2 don't bypass local_storage in steam_overlay class 2024-04-10 11:05:26 +02:00
otavepto
b8d9b25a79 load achievements strings before creating fonts, so that their glyphs ranges are taken into consideration 2024-04-04 02:56:18 +02:00
otavepto
166e7db122 more logging 2024-03-20 00:25:54 +02:00
otavepto
af237639d5 * initially attempt to load the icons of all achievements, this will slow things down at startup,
but avoids having to load the achievement icon during gameplay which causes micro-stutter
2024-03-15 00:03:41 +02:00
otavepto
0b86464374 * load the icons of a single achievement each overlay callback invokation, will slow things down during startup
but this avoids having to load the achievement icon during gameplay which causes micro-stutter

* avoid loading and resizing the achievement icon each time it's unlocked

* Local_Storage: avoid allocating buffers unless `stbi_load()` was successfull
2024-03-15 00:03:41 +02:00
otavepto
37426bac82 allow notifications of these types to steal input focus:
notification_type_message
notification_type_invite
2024-03-15 00:03:41 +02:00
otavepto
4d2e14be3f manage overlay cursor input/clipping and internal frame processing in a better way 2024-03-15 00:03:41 +02:00
otavepto
c96b8f9935 don't show notifications or run overlay callbacks when it's not ready + refactor a private function 2024-03-09 04:19:38 +02:00
otavepto
5447940ed1 revert back the original behavior of starting the detector immediately when the renderer detector initial delay = 0 2024-03-08 22:10:04 +02:00
otavepto
827f8a472a refactoring + make fonts variables static 2024-03-08 18:13:29 +02:00
otavepto
d3c4026447 fix default notification height + a potential crash when creating notification table during exit 2024-03-08 18:13:29 +02:00
otavepto
99d689118e central function to take care of frame/input processing 2024-03-08 18:13:29 +02:00
otavepto
9a73720825 * check for ImGui context before initializing it, otherwise it might crash some games like Antichamber when you alt+tab during initialization
* ignore all overlay requests if it's not ready
* when unlocking an achievement, only load it's icon if that was specified in the json
* restore the code for ImGui font builder, this is needed to load the glyphs for all languages
* revert the code which loads the achievements info even if the overlay wasn't ready
2024-03-08 18:13:29 +02:00
otavepto
c19fc81e84 * revert the previous change and force-display a mouse cursor inside the overlay, Truberbrook and others won't show a cursor in the overlay by default
* attempt to fix the crash when closing the app, use global object with bigger life time and avoid local states

* attempt to fix usage of invalid/outdated window size when displaying notifications

* lock overlay mutex everywhere to avoid sync problems

* lock global emu mutex in the relevant places when using client APIs

* only change the ImGui ini and round corner settings once
2024-03-08 18:13:29 +02:00
otavepto
88ab37d78f * proper fix for the window resizing problem, thanks to Nemirtingas
* remove the code which adds custom Windows fonts but keep scaling

* only attempt to load achievements images when hook is ready

* cleanup overlay images on unhook

* free the detector when we get a renderer hook instance

* lock everywhere!

* prefix the debug messages for a cleaner debug log
2024-03-08 18:13:29 +02:00
otavepto
74a85fb38c * update the steam_overlay.c/.h code to accommodate the changes in the ImGui lib & the ingame overlay project/dependency
* remove the now non-compiling (and awful) code which locks the cursor inside the overlay

* workaround for the deprecated ImGui function BeginListBox()

* formatting
2024-03-08 18:13:29 +02:00
otavepto
0af025ea5d don't load images forever to avoid a never ending slowdown 2024-02-09 20:39:01 +02:00
otavepto
1bba2c09b0 * allow setting the achievements notifications via config file
* fixed a mistake when discarding ut8 bom marker
2024-01-26 14:37:17 +02:00
otavepto
5ec61403f5 don't spam loading achievements forever on failure 2024-01-24 22:57:32 +02:00
otavepto
9eee49d6af add a button to invite all friends playing same game 2024-01-24 22:57:32 +02:00
otavepto
21545509fd new type of notification when the auto accept config file is used 2024-01-24 22:57:32 +02:00
otavepto
0b8e5cb283 use the new flags in the overlay 2024-01-24 22:57:32 +02:00
otavepto
541d809364 relocate overlay .h files 2023-12-28 01:30:46 +02:00