November 7, 2010 at 6:21 pm #5027
First off let me say what an awesome framework Syphon is. Congrats to all of the developers.
I’ve been playing around with Syphon and have made two quick implementations of a server.
OpenFrameworks implementation can be found here:
Cinder implementation can be found here:
Can’t wait to see how this framework improves. Using Resolume, I’ve had great success. Only occasionally is there any dropped frames. Once again, well done.November 7, 2010 at 6:50 pm #5028
Hey that is *fantastic*. Let me check those out, and I can put those in SVN and build off of them.
Thanks so much!November 7, 2010 at 7:04 pm #5029
Hey, interesting. I notice you are doing readback to the CPU via ofImage, you can make this a lot faster by using an ofTexture and using
Rather than using the ofImage. When using ofImage for that, as far as I know, you readback to the CPU, rather than keeping the data on the GPU which is the main advantage of Syphon in general. Also, NSAutoreleasePools need to be made, and server needs to be released and stopped in the deconstructor. Otherwise, awesome!
I’ve changed your ofxSyphonServer, if its ok with you, I can throw this in SVN, giving you credit for the initial implementation.
Thanks so much!November 7, 2010 at 9:07 pm #5031
Ok, here is an updated and fixed example using auto release pools and proper server retirement protocol. I also extended the server to be able to publish a passed in texture. Technically speaking it should not need its own internal ofTexture but having a one-shot publishScreen function is kind of nice. I think it could use a bit of cleaning up, but all in all its pretty nice and works exactly as the QC implementation does, which is nice.
Here is a link to the updated XCode Project.November 7, 2010 at 10:05 pm #5032
I placed the autorelease pool in main.mm, you could remove it from there now that it’s contained in the class itself. I’m pretty new to ObjC, I was surprised that I could even make it this far.
Yeah, I completely forgot about loadScreenData(), nice catch. The Cinder implementation doesn’t move the data off the GPU and back again. I’ll update that with a publishTexture method as well.
Anything I can do to help with Syphon is cool with me.November 7, 2010 at 10:10 pm #5033
Oh, I never looked at main.mm since its usually “the same old thing”, sorry about missing that. Im going to attempt a client shortly. Ill put it up on the SVN, add a readme, put your info on it, and what not.
Thanks for helping out, its much appreciated! I have not used Cinder or gotten heavily into it, but ill have to check it out. Thanks again!November 7, 2010 at 11:27 pm #5034
No problem. I’ve posted a much simpler Cinder example with updated methods similar to the OF rewrite now. IMHO, Cinder is very powerful, especially in 3D applications. It’s for a bit more advanced crowd, as it uses iterators and pointers all over the place and does away with GLUT for native OpenGL on Windows and Mac. You need a decent comp to run most of the examples. My four year old Mac Pro is right on the edge, anything with integrated graphics, forget it. Cinder’s still in its infancy, but it’s coming along nicely.November 8, 2010 at 6:06 am #5035bangnoiseKeymaster
Hey thanks, this is great. I’ve put this up on svn as an OF addon – it should integrate with the OF directory structure, but if I’ve got things wrong give a holler.
Further to vade’s changes I’ve removed all the Objective-C code from all the files except ofxSyphonServer.mm so the rest of the project remains pure C++ – makes it easier for folk to integrate with the rest of OF.
We’ll take a look at your Cinder stuff and get it up on svn soon too… many thanks for this.November 8, 2010 at 11:38 am #5036
Thanks for the help. I just committed a working ofxSyphonClient to SVN along with a new project file. Feel free to base the Cinder port of a client off of it, it should be pretty straightforward!
Thanks for your help and enthusiasm!
- You must be logged in to reply to this topic.