![]() |
|
#1
|
||||
|
||||
|
I've recently been writing plugins for vsxu. I've never written c++ much in the past. So it came a suprise that I easily created several plugins in only a few days. I thought I'd write this article to give people a more plain english / noobs perspective on what is entailed.
I've been using VSXU's classy GUI for creating presets for many years now. I'd always wanted to write plugins but never managed to get a proper development environment in place. JAW ran me through setting up an environment using freely available tools:
GETTING STARTED Don't be scared off by the volume of code below, most of it is comments I've added to explain details. Writing your first plugin is really easy. Plugin C++ files and dll's are located in the vsxu/plugins/src/ folder Open up the main.cpp file in each plugin directory and you'll notice that the files often contain multiple classes, each spitting out a different plugin. People familiar with object oriented programming will sift through this easily. For your first plugin its best to choose a plugin type that is similar to what you want to achieve. For example if you want to output a mesh (like a cube or something more fancy) in your plugin, choose mesh.generators. It will generally have all the includes nested inside itself. The class files are much like most object oriented class files. So if you're native to processing, web programming etc you should fit in quite nicely. Defining Variables, Inputs and Outputs This part is relatively easy. Declaring variables / inputs and outputs you'll use in your plugin PHP Code:
PHP Code:
PHP Code:
Finally, the run function which basically runs every frame. This is where your plugin does something useful. Processing users will be familiar with this concept. PHP Code:
Once you're done, compile your module, and copy the .dll file into the relevant plugin folder in vsxu artiste
__________________
Last edited by asterix; 21st March 2011 at 11:44 AM. |
|
#2
|
||||
|
||||
|
Or you could write FFGL plugins which work in applications with a large number of users...
__________________
Putting the cross into crossplatform www.vjstore.org Free Clips!! AVHire.net Equipment Rental for VJs by VJs |
|
#3
|
||||
|
||||
|
Sure you could. But I think alot of vj's haven't really looked into developing their own plugins for anything because the concepts aren't so clear, which is the aim of this post
__________________
|
|
#4
|
||||
|
||||
|
FFGL can't push mesh data around and so on, so it's not as flexible for purely generative stuff.
Plus you can also define your own data types in VSXu if you need... I think comparing VSXu and FFGL is kind of pointless, a better comparison would be vvvv or OpenFrameworks.
__________________
VSXu - realtime 3D visual programming language for Windows & GNU/Linux |
|
#5
|
||||
|
||||
|
Quote:
agreed. there is a good method by using OpenFrameworks to make FFGL plugins. http://code.google.com/p/ofxffglplugin/ I found it to be pretty straightforward to use.. been playing with this since December 2010. Visual C++ Express 2008 is a good editor to use with this. ......... but Pete, awesome job bro... look foward to see some of your new ninja tools in action
|
|
#6
|
||||
|
||||
|
I tried the ofxffglplugin a couple weeks ago, my code compiled (using codeblocks, not msvc , though), but was not visible in any ffgl host. gave up after dicking around for a week...
__________________
www.phononoia.at Last edited by bilderbuchi; 22nd March 2011 at 11:08 AM. Reason: wording correction |
|
#7
|
||||
|
||||
|
I'm not sure that codeblocks is supported - i've used both MSVC and Xcode to make plugins which work.
I do find it irritating trying to use MSVC - most of the OF developers seem to use codeblocks but nobody has made the ofFFGL codeblocks package. I got stuck trying to combine 2 OF plugins in MSVC - it was really easy in Xcode...
__________________
Putting the cross into crossplatform www.vjstore.org Free Clips!! AVHire.net Equipment Rental for VJs by VJs |
|
#8
|
||||
|
||||
|
It's not supported inasmuch as there's no C::B files in the packaged version. That's just a bundle of settings and file paths for a certain IDE, though, so if there were a way to get all the meaningful settings out of an MSVC file in a non-painful way, or alternatively know all the stuff one has to adjust from a default/empty oF/C::B project file, one could create a project file.
I have neither, so I asked Resolume for advice since they are the originators of the project, and got an answer from Joris to the effect that 'that was done for the love, on the side, and so we can't support it since we have no time'. Never gotten around to asking Daniel if he would do it in his sparetime, which was what Joris recommended to do. I figured that by that time you'd already have made your blanking plugin yourself, and I had other stuff in the queue. :-P
__________________
www.phononoia.at |
![]() |
| Thread Tools | |
| Display Modes | |
|
|