since i am not able to compile things for r20 on my computer here is the source...



  • ... maybe someone likes to compile it and release them for free.
    it is the plugEllo collection and arKos. i have tried for weeks now to get anything to compile for r20. my computer seems not to be able to find the folders or whatever and i am not able to resolve this wall of frustration this created to me.

    if you are interested, just message me and i'll send you the source.

    some information about the plugins:
    https://plugello.earthcontrol.de/
    https://arkos.earthcontrol.de/


  • Global Moderator

    Hi ello,

    we are sorry to hear, you are having problems porting your plugins to Cinema 4D R20.

    We are a bit surprised, you never contacted us for help. At least I'm not aware you did, neither via mail nor in this forum. Also I don't think you tried to apply for MAXON Registered Developer. Maybe with enough time your frustration reduces a bit and you are willing to accept our helping hand.

    Seeing your plugins are quite old, maybe R12 or R13 the main chunk of work will be to follow the changes introduced with Cinema 4D R15. But believe me, it's not as bad as it may look, when running the compiler the first time. It's mainly find and replace work. See Transition to Cinema 4D R15 API and it's child pages in the SDK documentation.
    For the remaining stuff and especially for setting up the project correctly, we have a Plugin Migration section in the docs.

    Also here in this forum, Donovan has written a nice thread on this topic: Compiling the Cinema 4D R20 C++ SDK Examples.

    To give you a rough idea, it took me roughly four hours to port a plugin of mine consisting of roughly 4500 lines of code written for R12 to Cinema 4D R20 (completely free of compiler warnings in the end). It depends of course on many factors and the complexity of a plugin, but I think, in many cases it's really not that bad. I also deliberately took the oldest version of the code I had, if I had taken a post-R15 version, I would have been done in less than an hour. And believe me, I'm not a fast coder.

    In the end, I'd like to emphasize once more, we are really willing to help.

    Cheers,
    Andreas



  • @a_block Thanks Andreas for the head up, by using the demo versions i was at least able to port the plugins to r18 in the past, which seemed to work even in r19, at least that is what a customer told me. with the r20 demo i couldn't even open up the sdk example. and exactly that is what prevents me from going on, since i am not able to find the issue, why it doesn't work. i don't even know where to start looking. and i am quite sure that my computer is the cause since it is quite old and the system may be a total mess due to those millions of installations and deinstallations i did over the years.

    i am trying to install the demo and visual studio on a friends computer to see if it gives positive results.

    edit: going thru the steps Donovan wrote. Seems to get me on track... so thanks again for the input



  • @a_block ok, i managed to compile the sdk, now i added my old plugins and am facing a bunch of errors (837) and warnings (9747) which i guess is not that bad, since it seems to be more general stuff.



  • i stumble across quite some things that have been removed. but that is the only thing stated. nothing tells me what replaced it. for example:

    struct DescriptionCommand
    {
      DescID id;  // Removed
    };
    

    I had this code in my plugin:

    	if (type == MSG_DESCRIPTION_COMMAND) {
    		DescriptionCommand* data = reinterpret_cast<DescriptionCommand*>(t_data);
    		if (data)
    		{
    			if (data->id == LOAD_PRESET) 
    			{
    				MessageDialog("Preset loaded."_s);
    			}
    			if (data->id == SAVE_PRESET) 
    			{
    				Filename library_dir = GeGetC4DPath(C4D_PATH_LIBRARY_USER);
    				Filename preset_dir = library_dir + Filename("arKos") + Filename("presets")+Filename("p1.c4d");
    				if (savePreset(op, preset_dir)) MessageDialog("Preset saved."_s);
    				else MessageDialog("Saving failed."_s);
    			}
    		}
    	}
    

    one thing that is really mean, why could i multiply a vector with a matrix in the past (and it worked) and now i need to exchange a few hundred lines that the matrix stands before the vector? this is something i cannot understand (to me it is just a unnecessary change which gives absolutely no benefit)

    Edit a_block: Added code tags.


  • Global Moderator

    Hi ello,

    I'm glad you made some progress and your mood seems to have improved a bit.

    In R20 (and actually it's a must for all new stuff being introduced by developers) many "anonymous" enums have been changed into named enums, leading to a change in how these symbols are reference.
    In your case it is SHADERINFO::BUMP_SUPPORT, so now the enum is named SHADERINFO and the contained symbols got shortened to the unique part.
    The background of this change is explained here: API Transition - Enumerations.

    I'd like to suggest to open new threads for specific questions, to keep the forum tidy and the thread's content more related to the actual subject.

    Edit: This wrote this before I saw your additional post. I'll get back to this additional post soon.

    Cheers,
    Andreas



  • @a_block thank you for your time. i am indeed having a hard time adopting to all those changes :)


  • Global Moderator

    Hi ello,

    DescID has not been removed, I'm not sure yet, why you are having issues using it. We'll get back to you tomorrow on this.

    Regarding Matrix and Vector multiplication, this was a change introduced with Cinema 4D R15. See List Of Name Changes in R15 API - Matrix Math. The reason is, that in mathematics there is nothing like a Vector multiplied from left to a Matrix. At least to my knowledge, I'm not an expert here (pretty sure a professor in mathematics will pop up here now, telling me I'm wrong).

    Please consider using the mark down and using code tags. I have added them to your previous post.

    Cheers,
    Andreas



  • thank you... it is my first visit to the new plugin cafe, thus i need to learn how to tag my entries



  • maybe someone can point me towards how i debug with visual studio 2017?
    because i get lot's of crashes :) what else to expect

    ok, found this: https://developers.maxon.net/?p=1560

    edit: visual studio now throws this at me

    application_Intel_64bit.pdb not loaded

    the only search result leads me here: http://www.plugincafe.com/forum/forum_posts.asp?TID=10601&KW=R16+memory+leaks&PID=41955 but i dont understand how the information i find there helps me



  • @ello said in since i am not able to compile things for r20 on my computer here is the source...:

    maybe someone can point me towards how i debug with visual studio 2017?
    because i get lot's of crashes :) what else to expect

    ok, found this: https://developers.maxon.net/?p=1560

    edit: visual studio now throws this at me

    application_Intel_64bit.pdb not loaded

    the only search result leads me here: http://www.plugincafe.com/forum/forum_posts.asp?TID=10601&KW=R16+memory+leaks&PID=41955 but i dont understand how the information i find there helps me

    Simply continue the execution twice. Those are 2 breakpoints that are triggered by Cinema 4D. Note that VS 2017 is not officially supported- maybe that's the cause. Those breakpoints are still risen, even if all breakpoints (and exceptions) are disabled.

    Maybe someone is able to help us out here?


  • Global Moderator

    Hello ello

    DescID id;  // Removed
    

    As I said in my previous post DescID has not been removed. I think, it may rather be a problem with a lacking include. Can please check if you do a #include <lib_description.h>?

    edit: visual studio now throws this at me
    application_Intel_64bit.pdb not loaded

    This is just a warning and perfectly normal. We do not provide a .pdb (program database) file for the application itself. These files contain debug information for Visual Studio and would allow inspection of the application we don't want to happen in public.
    It is also not related to the startup of Cinema 4D being interrupted twice. We are currently investigating the actual reason for these interruptions and hope to get them fixed with one of the next release. Sorry, for the inconvenience caused.

    Cheers,
    Andreas



  • hm, in the sdk help it is mentioned under "api change list in r20"... scrolling down to lib_description.h

    i installed VS2015 just for seeing if it works better with c4d. however, in 2017 i had a nice built output where i could sort errors and warnings. this isn't there in the 2015 version, or do i need to toggle it somewhere. cannot find

    nevermind, found it :)