This week, I've been working a lot on Panda's multi-touch support. The goal is to make some headway towards modifying Panda's architecture to not make the assumption of a single mouse. Since Panda is around two decades old at this point, and multi-touch hardware was not widely available during the time it was written, this is a very formidable task. I'd like to get at least of baseline level of support, but some large changes will need to be made throughout Panda's code in order to bring its pointer handling up to modern standards. In order to ensure the support I finish is at least somewhat usable, I will probably need to skip out on my stretch goals. But, that's why they're stretch goals in the first place, right?
I'd like to quickly detail how you can help test out the iOS port using your own game. I am making available a wheel that contains all of the files required to develop a Panda app on iOS. To build your game for iOS, there is a new command, `make_xcodeproj` that comes as an addition to the recently released deploy-ng system. There is no formal documentation available yet, but one should be able to surmise how it works based on the source code, located in direct/dist/commands.py. It is best if you get a build of your app using the build_apps command going first, since make_xcodeproj piggy-backs off of it in order to generate an Xcode project.
I have been quite busy these past two weeks. I have been working on fleshing out a design for Panda's multitouch support, along with trying to get a deployment pipeline working on iOS. I got Travis CI working on the panda3d-thirdparty repository, so now anyone can go download and build the thirdparty packages for iOS. Once I'm done wrapping up the initial deployment pipeline, I am going to package up some of the sample apps for people to try out!
Time for another update. These past two weeks I've been trying to clean up how I've been implementing things, since a lot of my code thus far has been pretty prototypey. I have the backend at a point where I can start to turn to other features, like multitouch. This past week I implemented some basic mouse emulation, which you can take a look at here:
This week has been one where work has been less visible. I've been trying to get the Panda lifecycle completely working, which has been quite difficult without good debug tools. I guess that's good motivation to get PStats and the like working! I also have a build going for the iOS simulator, and I'd like to figure out a way of lipo-ing those two libraries together for distribution. I'm pretty sure CMake supports something like this, but I still need to look into it. For this next week, I'll be trying to get Panda startup and shutdown completely working, so you can properly switch between samples without memory leaks.