austin-clifton / ofxSeam

Seam is a pin-based node editor addon for OpenFrameworks that makes prototyping, iterating, and building data-driven visual systems easier and faster.
Other
6 stars 0 forks source link

Windows testing #1

Open moebiussurfing opened 11 months ago

moebiussurfing commented 11 months ago

Hey, thanks for sharing!

Do you have some screenshot/captures to easily look into?

I tried to compile here in Windows 11 / Visual Studio 2022 OF 0.11 release / C++14

This is the environment that are you using?

I am not sure that I did all the manual custom project steps, but I am asking just in case... I'll look better.

moebiussurfing commented 11 months ago

image

austin-clifton commented 11 months ago

Hi, thanks for taking a look at Seam!

In the past, I've compiled Seam on Windows 10 in Visual Studio 2019 using C++17 and the 0.11 OF release. Currently, I'm using UCRT64 msys2 on Windows 10 with the OF 0.12 release which uses C++17 by default, but all dependent libraries except the audio analyzer (mentioned below) should already be built for Visual Studio 64 bit debug builds.

Are you able to switch to OF 0.12? Seam uses some C++17 features and so does capnp, so you will either need to update to OF 0.12 or use OF 0.11 with C++17 enabled (I was able to do this in the past before the 0.12 release).

I've switched to using msys2 to compile OpenFrameworks projects on Windows because in my experience the Visual Studio tooling for OF isn't as well supported.

If you'd like to try the msys2 route, I have built msys2 libraries for libessentia in ofxAudioAnalyzer, which I can upload somewhere for you to use (large files, github won't let me upload them to a public repo). libessentia doesn't have a Visual Studio build, so if you'd like to stick with Visual Studio the easiest route is probably to add a macro that will exclude ofxAudioAnalyzer and related Nodes. I'll try to push a commit today that will make those easier to exclude.

austin-clifton commented 11 months ago

I just pushed a commit that excludes the ofxAudioAnalyzer related Node when BUILD_AUDIO_ANALYSIS isn't defined.

moebiussurfing commented 11 months ago

Ok. You are welcome. Cool thanks!

Yes, i am using OF GH master branch 0.12+/C++17 too, but i assumed that the repo was from some months ago and probably was OF 0.11. The README info for tweaking of the project mods was a bit different in terms of menu/windows names etc. from Visual Studio 2022.

I'll try again soon an i'll report back!

I don't use it too much but I have msys2 env installed too, so maybe I can check. BTW I tried several times to build the libessentia without success. Interesting that you did succesfully.

austin-clifton commented 11 months ago

BTW I tried several times to build the libessentia without success.

Yeah, it was quite painful to figure out using msys2, lol. I didn't even try to make a Visual Studio build.

I updated the README after I saw your issue since I realized it was a bit out of date. Hopefully it's a bit clearer now.

Yes let me know how your build goes; happy to help if I can! I should maybe add some usage docs as well, since not much is documented at the moment.

moebiussurfing commented 11 months ago

image

image

I had to pass the settings in ofApp::setup: seamEditor.Setup(settings);

Getting these errors:

image

moebiussurfing commented 11 months ago

image

moebiussurfing commented 11 months ago

But if I create the project with the PG, without doing any of the project mod steps, I am getting only (not sure bc not finished):

image

moebiussurfing commented 11 months ago

i copied manually imgui_stdlib.h/.cpp, and it seems better... maybe requires to push your ofxImGuiNodeEditor repo?

image

austin-clifton commented 11 months ago

i copied manually imgui_stdlib.h/.cpp, and it seems better... maybe requires to push your ofxImGuiNodeEditor repo?

image

ahh, good catch! Yes, I forgot to commit those, sorry. I just pushed those up.

Looks like you're getting much closer! I just pushed a commit to comment out the ChannelMap methods for now. I didn't finish writing that class.

For the min/max errors, prefixing std:: should fix those, so max() --> std::max() for instance. I think I fixed these, but if there are more that should fix those errors.

It's a little late here now but I'll double check the example usage files tomorrow and confirm they are up to date. I should perhaps add some usage documentation soon too.

Good luck!

austin-clifton commented 10 months ago

I updated the example usage yesterday! If you are able to compile, you should be able to get a visual up pretty quickly:

image

moebiussurfing commented 10 months ago

Thanks!

I pulled both repos. I had to add some std::min Retargeted project to last versions (Visual Studio 2022) compiled using debug.


I removed ......\addons\ofxSeam\libs\capnp\includes from Additional Include Directories

image


And add abs paths:

image


Errors:

image

EDIT: I think that I am getting the same error with the project manual mods added... Not sure if they are required? Are you using debug or release?

austin-clifton commented 10 months ago

ah, I should clarify this line in the README:

Navigate to "Configuration Properties" --> "C++" --> "Additional Include Directories" and remove all sub-directories of addons\ofxSeam\libs\capnp\includes.

It looks like your capnp include directories got messed up. I think you want to add back ..\..\..\addons\ofxSeam\libs\capnp\includes\.

OpenFrameworks automatically also includes sub-directories of that directory, which will cause some header file name collisions. You want addons/ofxSeam/libs/capnp/includes/ as an include directory, but not any of its sub-directories.

This is supposed to happen automatically using addon_config.mk, but I think the Visual Studio project generator for OpenFrameworks might not respect the ADDON_INCLUDES_EXCLUDE variable...

EDIT: I think that I am getting the same error with the project manual mods added... Not sure if they are required? Are you using debug or release?

not sure I built all the release libs but definitely Debug x64 should be built. Also make sure you are using at least C++17.

austin-clifton commented 10 months ago

I just did a quick test over here and was able to use the OF 0.12 project generator for Visual Studio to run the seam editor using an x64 Debug build, tested in VS2019.

Looks like the project generator has been fixed since the last time I tried; I didn't have to make any changes to include paths or libraries. Here's what my project settings look like:

image

image

image

image

I removed ofxAudioAnalyzer from the ADDON_DEPENDENCIES list here since ofxAudioAnalyzer isn't built for Visual Studio.

Somewhere around lines 14-15 of threshold.cpp are throwing an exception in the Visual Studio build. I'll take a look but for now you can comment those lines out so you can get something running.

Apologies for the confusing docs! You're the first other person to try and get Seam running, so this has been a bit of a guinea pig experiment 🥲

moebiussurfing commented 10 months ago

hey @austin-clifton , sorry for the delayed test...

I just pulled both repos (ofxImGuiNodeEditor too) and just created the example project with PG: Now I am getting this error:

image

Maybe you should push ofxImGuiNodeEditor ?

best

moebiussurfing commented 8 months ago

@austin-clifton ping... 😉

austin-clifton commented 8 months ago

Hi @moebiussurfing! So sorry for the delayed response. I don't know how I missed your last message.

Try pulling the latest version of the repo when you can. fastNoise.h is part of Seam, but looks like I didn't push the file when I should have (first commit with fastNoise.h isn't until Jan 7).

I tested the v0.02 release with a clean repo (no local changes) so you really should be able to build using latest on main now.

I've started pushing commits to a development branch instead of the main branch so that I don't push breaking changes to main. In the future, I'll only merge to main after I've finished a feature on a dev branch and wrapped up any necessary and breaking changes, and will tag a release and version bump when I merge to main.

moebiussurfing commented 8 months ago

Hey, thanks @austin-clifton , I thought you might have missed the issue/message... ;)

I already tried..., also with the more recent branches for both: dev/improve-texture-management and develop

--

Trying the release v0.02 with ofxImGuiNodeEditor/master

I am getting this: image (required the top small fix)

Don't worry about my impatient testing, of course. I'll be looking your progress to check it out time to time. Feel free also to tag me if want that I make some testing or so.

austin-clifton commented 8 months ago

hey @moebiussurfing do you have any idea what is trying to include that file? I just ran a global search across my entire OpenFrameworks codebase and I can't find that file, any #includes that specify it, or even the string "EngineOpenFrameworks". I'm quite confused about where source file requirement is coming from; I'm wondering if Visual Studio somehow picked up that source file as required even though it doesn't exist?

moebiussurfing commented 8 months ago

I just created the project with the Project Generator, without adding any edition to the project props into Visual Studio... I go check the README info again to see if I am missing something. BTW I can use the MSYS workflow too if that's what you are using... a binary exe would be fine too if it's easier and you agree.

austin-clifton commented 8 months ago

I just ran a sanity test using the v0.02 tag and a fresh repo clone, and fixed a few issues that I had already cleaned up in the dev branch but didn't make it into main before the v0.02 release. I also found some very broken pin pointer handling in VectorPin which I want to re-work before tagging another release. Due to the hack fix in VectorPin, the Threshold Node won't behave as expected for now, but otherwise I'm able to build and run a Visual Studio build here with the above mentioned fixes using a fresh clone of ofxImguiNodeEditor and ofxSeam.

I'm able to generate and run a sample project using the Project Generator now on latest in main with the source files in the example_usage directory. The changes I have to make specifically for Visual Studio are:

I never ran into the issue you saw with the EngineOpenFrameworks.cpp; I'm still confused about where that include is coming from.

Here's what my Project Generator looks like:

image

The MSYS2 workflow is more reliable in my experience and easier to use when making changes to addons, but I was building Seam using Visual Studio before I switched over for the sake of integrating audio analysis libraries that don't have Visual Studio builds. You really should be able to use whichever build system you're more comfortable with and my apologies it's been such a pain to get running! I can upload a built binary to the repo but I feel like there aren't enough built-in Nodes yet and you'll need to write your own Nodes in order to build a scene.