Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update SpoutLibrary #3450

Merged
merged 5 commits into from Oct 9, 2023
Merged

Update SpoutLibrary #3450

merged 5 commits into from Oct 9, 2023

Conversation

hmartinez82
Copy link
Contributor

@hmartinez82 hmartinez82 commented Oct 8, 2023

Description

Spout2 was very old. The version was from 2016! For the Windows on ARM support a newer version of Spout2 is required.

This adds a new optional CMake parameter to tell the configuration that it's building for ARM64. Unfortunately, the MSVC toolset does not set CMake's x-compiling variables for us to detect so this new optional parameter is required. If you imagine some other way, more automatic, to detect x-compilation I'm all ears :)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • This change requires a documentation update
  • Housekeeping

How Has This Been Tested?

All unit tests pass

Checklist:

  • My code follows the code style of this project.
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (header file)
  • I have updated the respective chapter in the Stellarium User Guide
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

@hmartinez82 hmartinez82 changed the title Update spout2 Update SpoutLibrary Oct 8, 2023
@alex-w alex-w added this to Needs triage in OS: Windows via automation Oct 8, 2023
@alex-w alex-w added this to Needs triage in Hardware: ARM via automation Oct 8, 2023
@alex-w alex-w added the dependencies dependencies (such like ShowMySky, QXlsx, etc.) related issues label Oct 8, 2023
Copy link
Member

@alex-w alex-w left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

OS: Windows automation moved this from Needs triage to In progress Oct 8, 2023
Hardware: ARM automation moved this from Needs triage to In progress Oct 8, 2023
@hmartinez82
Copy link
Contributor Author

hmartinez82 commented Oct 8, 2023

How do I use / test Spout in Stellarium?

@alex-w
Copy link
Member

alex-w commented Oct 8, 2023

Please read Stellarium User Guide

@gzotti
Copy link
Member

gzotti commented Oct 8, 2023

Are there any functional changes in Spout2 since 2016? Or is "running on Win64/ARM" the only change?

@hmartinez82
Copy link
Contributor Author

Please read Stellarium User Guide

It's working \o/
image

Also, in the screenshot above, Stellarium is running natively as ARM64 and the receiver is running emulated, which means that even existing receivers will work if they are still x64 and not native.

@hmartinez82
Copy link
Contributor Author

Are there any functional changes in Spout2 since 2016? Or is "running on Win64/ARM" the only change?

I'll need help from @leadedge to answer this.

@leadedge
Copy link

leadedge commented Oct 9, 2023

There have been many changes since 2016 but fundamentally it works in the same way. The SpoutLibrary example shows more recent functions but the existing methods can still be used. SpoutSettings should be run initially to set registry keys.

@hmartinez82
Copy link
Contributor Author

hmartinez82 commented Oct 9, 2023

@leadedge SpoutSettings was only required for SpoutPanel. But fi SpoutPanel is not used then running SpoutSettings once is not required, correct? At least during my testing I did not need running SpoutSetting for receivers to recognize senders.

@leadedge
Copy link

leadedge commented Oct 9, 2023

@hmartinez82 - You are right that a receiver will work without any sender selection because it will detect the sender currently active. If SpoutSettings, or SpoutPanel itself, is run just once, the path to SpoutPanel is recorded in the registry so that receivers can read the path to open it.

SpoutSettings sets up several other registry keys in "Computer\HKEY_CURRENT_USER\SOFTWARE\Leading Edge\Spout". If they are not set, defaults are used by senders and receivers. This will be OK for Stellarium on an Arm machine.

If Stellarium is updated for an x86 machine, and a user has previously opened an older settings program (then called SpoutDXmode), keys for "DirectX9" and "Memoryshare" may be set . If there are problems, the user can run SpoutSettings which will erase these old keys and has diagnostics that are useful to trace the cause.

@alex-w
Copy link
Member

alex-w commented Oct 9, 2023

Looks like we should add some enhancements of description / notifications into Stellarium User Guide for Spout2.

@leadedge
Copy link

leadedge commented Oct 9, 2023

@alex-w - I had a quick look at the user guide. The link to the Spout home page will lead to a download and it contains basic readme files. The SpoutSettings program itself has multiple help buttons.

@gzotti
Copy link
Member

gzotti commented Oct 9, 2023

@leadedge @alex-w I was not even aware of the SpoutSettings program. I will add some more description to the Guide. Else this PR is OK for me.

Copy link
Member

@gzotti gzotti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does not break Win64 build, OK for me.

@alex-w alex-w merged commit 4b9e973 into Stellarium:master Oct 9, 2023
21 checks passed
OS: Windows automation moved this from In progress to Done Oct 9, 2023
Hardware: ARM automation moved this from In progress to Done Oct 9, 2023
@hmartinez82 hmartinez82 deleted the UpdateSpout2 branch October 9, 2023 11:33
@alex-w alex-w added this to the 23.4 milestone Oct 14, 2023
@alex-w alex-w added the state: published The fix has been published for testing in weekly binary package label Oct 23, 2023
@github-actions
Copy link

Hello @hmartinez82!

Please check the fresh version (development snapshot) of Stellarium:
https://github.com/Stellarium/stellarium-data/releases/tag/weekly-snapshot

@alex-w alex-w removed the state: published The fix has been published for testing in weekly binary package label Dec 23, 2023
Copy link

Hello @hmartinez82!

Please check the latest stable version of Stellarium:
https://github.com/Stellarium/stellarium/releases/latest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies dependencies (such like ShowMySky, QXlsx, etc.) related issues
Projects
Hardware: ARM
  
Done
OS: Windows
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

4 participants