Thanks for the suggestions Nate. I realize you're super busy and I really appreciate all of your help.
I did figure some things out. 😉
I realized that the Corona runtime is actually setting skeleton.x and skeleton.y, while C++ is setting the root bone coordinates.
Both are setting these to positive values. I missed the fact that Corona is NOT actually setting the root bone coordinates, which means that when the root bone gets drawn, it is drawn at 0, 0 relative to skeleton.x, skeleton.y... doh... and since C++ uses flipped coordinates, setting the root bone to a positive value will cause it to get flipped with is The Right Thing™ for the SMFL runtime.
So... one mystery solved. :-)
I've added an x, y to my own skeleton class, and now I'm drawing things relative to its x, y.
I hate to be optimistic, but my pose looks 100% correct compared to the Corona bone points EXCEPT for the arm bone locations! :/
Loading Image
Is this another red herring, or does this actually help?
As for your other suggestion, I did a simple test where I created a root bone, and 4 other bones with a length of 10 and coordinates of:
(10, 10), (-10, 10), (10, -10), (-10, -10)
All of those bone points check out. I tested them one at a time. My drawing looks like:
Loading Image
I also plugged this into a test skeleton file and tested those one at a time... they draw correctly.
Any thoughts?