Lorenzooone wrote: ↑Tue Mar 26, 2024 2:43 am
Chroma wrote: ↑Tue Mar 12, 2024 9:40 am
I tried to start at the FTDI driver, I downloaded the ARM macOS version (I'm on an M2 Pro MBP), opened the DMG, and just found more .CPP and makefiles that I have no idea what to do with. I Googled Apple Developer Tools and just found a forum answering developer questions, nothing to download actually called Apple Developer Tools. I Googled how to install brew through terminal, but past that I have no idea where to go for SFML.
Is it possible once you gain access to said Mac, you're able to run this makefile stuff and package the actual app itself in releases? Then all I'd have to do is troubleshoot how to download the 2 dependencies, which I think I'd only have to do once and it's permanently done unless I switch computers.
Hopefully I can get all this running, I'm just used to CuteCapture which was just a single .app file, open and go. All this dependencies stuff and backend coding talk is completely foreign to me (and I assume most other people who may stumble across this).
harpentong wrote: ↑Fri Mar 22, 2024 5:48 pm
I also agree with the other user that a step by step guide would be preferred, I found this to be way too confusing and overwhelming. Your efforts are greatly appreciated, but this is too complex for the average user
alternatively, something prebuilt would be even better, im trying to figure out how to get this working on my mac, haven't been successful in getting it to work on windows, I got everything working on my M1 Mac except for the driver... Im running windows 11 pro via parallels virtual machine
Hi to both, I have made a couple of tests, and, among other things, I've tried "mitigating" the issues you're having, by avoiding entirely having to install FTD3XX.
You will still need to install SFML.
For that, once you have installed brew, run this in a terminal:
And that should be it.
Download the code that will be compiled from here:
https://github.com/Lorenzooone/xx3dsfml ... hanges.zip
If you have 7z installed on macOs (or you are on Linux), the next steps should be to run these two commands:
And that should be it!
If 7z is not installed, instead in the same folder that the files you previously downloaded are in, create a new folder named "ftd3xx" without quotation marks.
When it comes to FTD3XX, instead, download the one for your OS from this page:
https://ftdichip.com/drivers/d3xx-drivers/
Out of all the files which you will get, extract all the files which end in ".h" ("Types.h"/"WinTypes.h" and "ftd3xx.h", in theory) and "libftd3xx-static.a" into the "ftd3xx" folder you previously made.
Finally, go back to the main folder, the one where there should be a file named "Makefile".
Open a terminal in that folder and run:
Provided SFML is installed, this should allow you to create the application.
Here is how the main folder should look: Schermata del 2024-03-26 03-39-47.png
Here is how the ftd3xx folder should look: Schermata del 2024-03-26 03-39-53.png
Hey there - Mac user on an M2 chip here. I've run the latest version of your code, but I'm getting the following errors when trying to run the Makefile:
I also see the warnings with the switch statement, but figured that those are just warnings and are best ignored
Anyway so after seeing this I took a look at the Makefile and saw the following:
After some research I figured out my brew prefix was the first one, so I removed the latter and ended up with this:
clang++ -std=c++17 -I ftd3xx -c xx3dsfml.cpp -o xx3dsfml.o
xx3dsfml.cpp:466:11: warning: enumeration value 'JOINT' not handled in switch [-Wswitch]
switch (this->m_stype) {
^~~~~~~~~~~~~
xx3dsfml.cpp:466:11: note: add missing switch cases
switch (this->m_stype) {
^
xx3dsfml.cpp:580:13: warning: 95 enumeration values not handled in switch: 'Unknown', 'A', 'B'... [-Wswitch]
switch (event.key.code) {
^~~~~~~~~~~~~~
xx3dsfml.cpp:580:13: note: add missing switch cases
switch (event.key.code) {
^
xx3dsfml.cpp:492:12: warning: 21 enumeration values not handled in switch: 'Resized', 'LostFocus', 'GainedFocus'... [-Wswitch]
switch (event.type) {
^~~~~~~~~~
xx3dsfml.cpp:492:12: note: add missing switch cases
switch (event.type) {
^
xx3dsfml.cpp:698:11: warning: enumeration value 'END' not handled in switch [-Wswitch]
switch (this->m_info.crop_kind) {
^~~~~~~~~~~~~~~~~~~~~~
xx3dsfml.cpp:698:11: note: add missing switch cases
switch (this->m_info.crop_kind) {
^
4 warnings generated.
clang++ xx3dsfml.o -o xx3dsfml -std=c++17 -Wl,-rpath /usr/local/lib -framework Cocoa -framework OpenGL -framework IOKit ftd3xx/libftd3xx-static.a -lsfml-audio -lsfml-graphics -lsfml-system -lsfml-window -lpthread
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-graphics.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-audio.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-system.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: warning: ignoring file '/usr/local/Cellar/sfml/2.6.1/lib/libsfml-window.2.6.1.dylib': found architecture 'x86_64', required architecture 'arm64'
ld: Undefined symbols:
sf::WindowBase::setSize(sf::Vector2<unsigned int> const&), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::WindowBase::pollEvent(sf::Event&), referenced from:
Screen::poll() in xx3dsfml.o
sf::SoundSource::setVolume(float), referenced from:
Audio::update_volume(int, bool) in xx3dsfml.o
sf::SoundStream::initialize(unsigned int, unsigned int), referenced from:
Audio::Audio() in xx3dsfml.o
sf::SoundStream::play(), referenced from:
playback() in xx3dsfml.o
vtable for Audio in xx3dsfml.o
sf::SoundStream::stop(), referenced from:
playback() in xx3dsfml.o
playback() in xx3dsfml.o
playback() in xx3dsfml.o
vtable for Audio in xx3dsfml.o
sf::SoundStream::pause(), referenced from:
vtable for Audio in xx3dsfml.o
sf::SoundStream::onLoop(), referenced from:
vtable for Audio in xx3dsfml.o
sf::SoundStream::SoundStream(), referenced from:
Audio::Audio() in xx3dsfml.o
sf::SoundStream::~SoundStream(), referenced from:
Audio::Audio() in xx3dsfml.o
Audio::~Audio() in xx3dsfml.o
sf::RenderStates::Default, referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTarget::draw(sf::Drawable const&, sf::RenderStates const&), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTarget::clear(sf::Color const&), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTarget::setView(sf::View const&), referenced from:
Screen::reset() in xx3dsfml.o
Screen::open() in xx3dsfml.o
Screen::rotate() in xx3dsfml.o
Screen::crop() in xx3dsfml.o
sf::RenderWindow::RenderWindow(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::RenderWindow::~RenderWindow(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
Screen::~Screen() in xx3dsfml.o
sf::milliseconds(int), referenced from:
capture() in xx3dsfml.o
playback() in xx3dsfml.o
render(bool) in xx3dsfml.o
sf::RenderTexture::create(unsigned int, unsigned int, sf::ContextSettings const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::RenderTexture::display(), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::RenderTexture::setSmooth(bool), referenced from:
Screen::reset() in xx3dsfml.o
Screen::poll() in xx3dsfml.o
sf::RenderTexture::RenderTexture(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::RenderTexture::~RenderTexture(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
Screen::~Screen() in xx3dsfml.o
sf::Transformable::setPosition(float, float), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
Screen::move() in xx3dsfml.o
sf::Transformable::setRotation(float), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::Transformable::move(float, float), referenced from:
Screen::move() in xx3dsfml.o
Screen::move() in xx3dsfml.o
Screen::move() in xx3dsfml.o
sf::Transformable::setOrigin(float, float), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::RectangleShape::setSize(sf::Vector2<float> const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
Screen::build(int, int, bool) in xx3dsfml.o
sf::RectangleShape::RectangleShape(sf::Vector2<float> const&), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::View::setRotation(float), referenced from:
Screen::reset() in xx3dsfml.o
Screen::rotate() in xx3dsfml.o
sf::View::reset(sf::Rect<float> const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::View::setSize(float, float), referenced from:
Screen::reset() in xx3dsfml.o
Screen::rotate() in xx3dsfml.o
Screen::crop() in xx3dsfml.o
sf::View::View(), referenced from:
Screen::Screen(Screen::ScreenType) in xx3dsfml.o
sf::Color::Color(unsigned char, unsigned char, unsigned char, unsigned char), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::Shape::setTexture(sf::Texture const*, bool), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
Screen::build(int, int, bool) in xx3dsfml.o
sf::Shape::setTextureRect(sf::Rect<int> const&), referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::Shape::~Shape(), referenced from:
sf::RectangleShape::~RectangleShape() in xx3dsfml.o
sf::sleep(sf::Time), referenced from:
capture() in xx3dsfml.o
playback() in xx3dsfml.o
render(bool) in xx3dsfml.o
sf::String::String(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::locale const&), referenced from:
Screen::open() in xx3dsfml.o
sf::Window::setFramerateLimit(unsigned int), referenced from:
Screen::open() in xx3dsfml.o
Screen::open() in xx3dsfml.o
sf::Window::setVerticalSyncEnabled(bool), referenced from:
Screen::open() in xx3dsfml.o
sf::Window::close(), referenced from:
render(bool) in xx3dsfml.o
render(bool) in xx3dsfml.o
render(bool) in xx3dsfml.o
Screen::toggle() in xx3dsfml.o
sf::Window::create(sf::VideoMode, sf::String const&, unsigned int), referenced from:
Screen::open() in xx3dsfml.o
sf::Window::display(), referenced from:
Screen::draw() in xx3dsfml.o
Screen::draw(sf::RectangleShape*, sf::RectangleShape*) in xx3dsfml.o
sf::Texture::create(unsigned int, unsigned int), referenced from:
render(bool) in xx3dsfml.o
sf::Texture::update(unsigned char const*, unsigned int, unsigned int, unsigned int, unsigned int), referenced from:
render(bool) in xx3dsfml.o
render(bool) in xx3dsfml.o
sf::Texture::Texture(), referenced from:
___cxx_global_var_init in xx3dsfml.o
sf::Texture::~Texture(), referenced from:
___cxx_global_var_init in xx3dsfml.o
sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int), referenced from:
Screen::open() in xx3dsfml.o
sf::WindowBase::isOpen() const, referenced from:
Screen::toggle() in xx3dsfml.o
sf::SoundStream::getStatus() const, referenced from:
playback() in xx3dsfml.o
vtable for Audio in xx3dsfml.o
sf::RenderTexture::getTexture() const, referenced from:
Screen::build(int, int, bool) in xx3dsfml.o
sf::Transformable::getOrigin() const, referenced from:
Screen::move() in xx3dsfml.o
Screen::move() in xx3dsfml.o
typeinfo for sf::SoundStream, referenced from:
typeinfo for Audio in xx3dsfml.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It seems like sfml is meant for the intel chip macs and not the MX macs. I just used `brew install sfml` to install it; do you know if there's a compatible version for ARM macs somewhere?
I don't know much about sfml but these other errors all seem like they're coming from the library. I'm kinda hoping that once I can get that fixed it might actually generate the executable.