SDK Documentation
-
On 22/09/2014 at 06:42, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R16
Platform: Windows ; Mac ; Mac OSX ;
Language(s) : C++ ;---------
As you may have noticed, the R16 documentation for the C++ SDK was released in an incomplete state.
We felt it was better to release some documentation instead of nothing at all.
We still have about 20% of the header files to document, and all the articles found on the R15 doc still need to be ported to the new format.So while we are hacking our way, please refer to R15 documentation for anything missing.
Sorry for any trouble this causes, we will be updating the documentation the moment we have something to share. -
On 23/09/2014 at 13:30, xxxxxxxx wrote:
Thanks for the update, I was getting curious as it is now officially "Fall". I've started trying to hack together a general introduction to the SDK using the GitHub C++ Cinema 4D SDK Examples Wiki. Please let me know if there are plans to sunset the GitHub SDK Examples as I'd rather not build something only to have it deleted.
-
On 23/09/2014 at 14:05, xxxxxxxx wrote:
Hello Donovan,
The Github repository is here to stay. The work you propose has great value.
We are a bit on standby right now as we are discussing internally how we could automate the publication of our SDK samples out of the C4D development branch and into Github. This concerns MAXON`s delivery of code material. The Github repo is also about community made material and I think that github as the one place for collaboration is a great thing. It also permits various licenses, so you guys are not stuck with MAXON's choice for open source.
-
On 25/09/2014 at 08:25, xxxxxxxx wrote:
Well, hopefully the data is not just ported over but improved!
Just a simple example from the NET library:
GetRealFPS() - Get the real frames per second
GetFPS() - Get the frames per secondAha...really? So the second does not return real FPS (are they tomatoes?) or what is that supposed to tell the reader?
Another one is all the Team Render stuff, it is more than confusing even in the R15 docs (though it's such a crucial part). And now that R16 changed so much I completely feel lost.
There is not a single howto or how the Team Render pipeline actually works
(that would help already help a lot, like:
1. Assets are assembled - Message is sent for this
2. Assets are sent to the server
3. Assets are distributed to the clients
etc...)
Although the Net library is so vast and a lot of the stuff simply cannot be derived (and I am with the C4D sdk almost 12 years now!).It's stuff like this that costs valuable development time and I just hope the time you take is not only for cosmetic purposes but for content purposes as well!
I am well aware that everything takes time and doing docs is very time consuming but now that you guys are on it from scratch, it would be the best time to get the job done right in the first place!My 2 cents..
-
On 25/09/2014 at 08:41, xxxxxxxx wrote:
Thanks for chiming in.
In general, Things should be smoother once we have a way to extract the developer header documentation into a document the plugin developers can browse. Provided MAXON`s developers are thorough, this will bring the information much faster than asking a technical writer to come in, understand the code and write something.
We also have a second way for our developers to reach out to you, a plugin development blog. It is currently found at c4dprogrammingblog.wordpress.com.
To finish, We are assigning developers to answer your questions on this forum.
The code examples we write will be added to our SDK package. Additional content may be released on the github repository.
Now about Team render, we will try to provide some clarity soon.
-
On 25/09/2014 at 09:48, xxxxxxxx wrote:
Thanks Jean-Francois. This sounds great. I am looking forward to that. I am not really needing code examples (though some code snippets depending on complexity of the task doesn't hurt). Once I know how something works I can mostly derive what I need, but it's great to have some explicit resources, especially when it comes to things that are not that common or very specific (like the Team Renderer).
In any case, thanks for your time.
-
On 25/09/2014 at 14:10, xxxxxxxx wrote:
I would love to see a full documentation of C4D OpenGL "mystery" header
-
On 26/09/2014 at 06:55, xxxxxxxx wrote:
Oh good!
Thank you for the explanation.
Indeed I was a bit frightened as I saw the new R16 SDK documentation without all the additional informations and structure I was accustomed from the previous releases.
-
On 26/09/2014 at 14:11, xxxxxxxx wrote:
In case anybody missed this thread over at CGSociety, worth a read:
-
On 28/09/2014 at 04:20, xxxxxxxx wrote:
Here
s a post from one of Cinema
s known and respected plugin developers saying he is quitting because of lack of updates and support in the API and documentation between R12 and R16:http://forums.cgsociety.org/showpost.php?p=7895394&postcount=70
It
s a real shame and i know that Maxon are finally making noises about these things, but i think it
s worthwhile stressing the point. And despite the thread linked in the previous post ( huge discussion over at CGSociety ) I still worry that Maxon arent quite getting the point about what developers actually need and want to see with the API and docs.. Sincerely hope they get their s\*\*t together and we don
t end up with yet another half arsed solution that really hasnt been properly sounded out. Listen to what the community are saying Maxon - that
s all i`m saying[edit]
And god damnit can we fix this forum! I have to select-all and copy the text when i post a reply on here because half the time the post doesn`t go through and i have to hit back and repost..
-
On 28/09/2014 at 10:16, xxxxxxxx wrote:
About Art 2 Bit, it's unfortunate and we are not happy about this, obviously.
As I said multiple times now, (even on the CG thread you are pointing to) change is coming.We are in the middle of automating the header file documentation generation. It is a very important step because it will make all MAXON developers collectively responsible for documenting the API without relying on a documentation specialist to play catch-up. This means we can hope to have an almost complete and accurate coverage of our APIS in the future.
We have 2 new support engineers starting with us October first. I'll announce next Wednesday. They are not responsible for the past but they will be trying to help you having a better SDK support experience in the future. I will be appretiative that you give them the chance to shine and make a difference. That's what you are asking for right?
The SDK support website will change in the coming month. We are not touching the forum just yet but we are looking into how it it can be improved without loosing its content.
Originally posted by xxxxxxxx
Here
s a post from one of Cinema
s known and respected plugin developers saying he is quitting because of lack of updates and support in the API and documentation between R12 and R16:http://forums.cgsociety.org/showpost.php?p=7895394&postcount=70
It
s a real shame and i know that Maxon are finally making noises about these things, but i think it
s worthwhile stressing the point. And despite the thread linked in the previous post ( huge discussion over at CGSociety ) I still worry that Maxon arent quite getting the point about what developers actually need and want to see with the API and docs.. Sincerely hope they get their s\*\*t together and we don
t end up with yet another half arsed solution that really hasnt been properly sounded out. Listen to what the community are saying Maxon - that
s all i`m saying[edit]
And god damnit can we fix this forum! I have to select-all and copy the text when i post a reply on here because half the time the post doesn`t go through and i have to hit back and repost..
-
On 28/09/2014 at 11:56, xxxxxxxx wrote:
I'm eager to see the new support guys. Because I have questions about the new file structure and compiling for R16.
The docs briefly mention something about being able to create plugins anywhere we want.
But I can't get them to build unless they're in that "examples" folder. OUCH!I'm hoping there's something I'm missing that the docs aren't explaining.
Because having to do all of the plugin compiling from inside of that examples folder would suck.-ScottA
-
On 28/09/2014 at 14:06, xxxxxxxx wrote:
The easiest way to create a plugin project/solution is to clone the SDK in another folder located *exactly* at the same hierarchy level. visual studio solutions uses relative paths to point to the framework files. If you really are intent in changing the plugin location, you will need to change the relative paths in .sln, .vcprojx, etc.
Writing your plugin is started easilly by lobotomizing your SDK clone until you have the closest plugin sample to what you want to do. get a plugin ID and you are good to go. for Mac, I did a project once, not sure how easy it is but expect it should be that straight forward too. I know that writing xcode project file by hand is looking for trouble.
Originally posted by xxxxxxxx
I'm eager to see the new support guys. Because I have questions about the new file structure and compiling for R16.
The docs briefly mention something about being able to create plugins anywhere we want.
But I can't get them to build unless they're in that "examples" folder. OUCH!I'm hoping there's something I'm missing that the docs aren't explaining.
Because having to do all of the plugin compiling from inside of that examples folder would suck.-ScottA
-
On 28/09/2014 at 15:16, xxxxxxxx wrote:
Even If I use the copy and paste method. I'd still have that annoying "examples" parent folder in there.
I did look in the cinema4dsdk.sln & cinema4dsdk.vcxproj files for the paths. But I'm not finding any entries with that path.I need instructions how to get rid of that. So I can compile the cinema4dsdk without a parent folder.
The way it's been in all of the previous versions.-ScottA
-
On 28/09/2014 at 16:11, xxxxxxxx wrote:
Zip your project, send it to me at [email protected]
give me enough context so that I can understand your issues. -
On 28/09/2014 at 17:02, xxxxxxxx wrote:
I'm talking about the one that comes with c4d: plugins/examples/cinema4dsdk
This used to be in the plugins folder in previous versions: plugins/cinema4dsdk-In the previous versions. When we built it by running the .sln file. The plugins show up in the plugins menu in C4D.
-In R16. Now that cinema4dsdk is inside of a parent folder called "examples". The plugins are now found in plugins->examples.
That's an extra dig into the menu system every single time you want to get at your plugin!The reason why this is bad (to me anyway) is because it's already a hassle to make plugins with C++. Because we have to close C4D down every time we change our code. And then re-launch C4D after we change and compile the C++ code.
Now with R16's new file structure and parent folder layout. We also have to do another mouse click to get at our plugins. Because Maxon put them in a sub menu called "examples".
They took an already bad workflow. And made it even worse by forcing us to dig into a sub menu every time we want to run a plugin.
That's why I want to get rid of that parent folder.Maybe I'm making a mountain out of a molehill. But to me this is a giant extra hassle in an already cumbersome workflow.
I open & close C4D literally hundreds of times while making C++ plugins.
And now I'll also have to add digging through the menus to that already painful workflow.
So if there's a way to get rid of that parent folder. I'd really like to know how to do that. So I can get the plugins to show up under the plugins menu again.-ScottA
-
On 29/09/2014 at 12:42, xxxxxxxx wrote:
Hey Scott,
Originally posted by xxxxxxxx
Now with R16's new file structure and parent folder layout. We also have to do another mouse click to get at our plugins. Because Maxon put them in a sub menu called "examples".
In the C4D gui, I always use "Window->Customization->Customize Commands" and find my plugin with the "name filter". Then put a check in "Edit Palates" and drag the icon for my plugin into the top row of C4D's shortcuts. This speeds things up even more than clicking the plugins menu and then finding your plugin.
If you are developing a GeDialog, you can customize the layout by docking your plugin's dialog and then use "Window->Customization->Save As Startup Layout". If you have your CommandData class configured properly(virtual Bool RestoreLayout(void* secret)), your Dialog will be open in the layout C4D starts with. You can always revert back to the original startup layout using the "Layout:" pulldown menu in the top right corner of C4D gui and select "Standard", then "Window->Customization->Save As Startup Layout" to make this the next layout that C4D starts up with. Any layout can be saved and then be made the startup layout.
Also, if your plugin is working with some scene object and you don't want to create or open it it every time you start C4D, get your scene set up the way you want it before you run your plugin, then save the scene as "new.c4d" in the root of the user preferences folder for the version of C4D you are working with. Now C4D will start with the scene loaded saving even more clicks.
Originally posted by xxxxxxxx
So if there's a way to get rid of that parent folder. I'd really like to know how to do that. So I can get the plugins to show up under the plugins menu again.
When you are done developing your plugin, I believe(do not know for a fact) you can simply move everything needed for production up one directory and the plugins menu will behave as before. I tried it with the SDK and the plugins I executed worked fine. This may not work if the plugin needs to load items outside the the res folder at C4D startup. This has not been thoroughly tested, so Forum please let me know if this information is incorrect and I will edit this post.
Joe Buck
-
On 29/09/2014 at 14:46, xxxxxxxx wrote:
Hey Scott,
If you move your cinema4sdk back down to the plugins folder, or clone it as suggested, then to get it running do the following.
- Edit the MAXON_ROOTDIR inside of projectsettings.props.
Currently it is
<MAXON_ROOTDIR>..\..\..</MAXON_ROOTDIR>
Change it to this
<MAXON_ROOTDIR>..\..</MAXON_ROOTDIR>
- Open up the solution.
You will now notice that the cinema4dsdk loads but the cinema.framework doesn't. So lets just add it again.
Remove the cinema.framework from the solution in VS.
Right click on the solution and choose Add->Existing Project
Go to the folder
16\frameworks\cinema.framework\project
And add the project file cinema.framework.vcxproj.
- Right click on the Solution again and choose Project Dependencies.
Make sure cinema4dsdk is shown in the "Projects" drop down. Then check the "cinema.framework" in the "Depends on" box below.
- Lastly you need to add a reference to the framework.
Right click on the cinema4dsdk project and choose Add->References.
Next click the "Add New Reference" at the bottom of the dialog that appears.
Check the box for cinema.framework and press ok. Then ok again on the other dilaog.
- Compile!
Build your solution and you should now be all good to go.
Kent
-
On 29/09/2014 at 15:02, xxxxxxxx wrote:
Nice! Do you know how to do this for the Xcode project?
Thank you,
Joe Buck
-
On 29/09/2014 at 15:08, xxxxxxxx wrote:
Originally posted by xxxxxxxx
@kbar
Nice! Do you know how to do this for the Xcode project?
Thank you,
Joe BuckNo sorry. I am not on my mac at the moment to have a look.