Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Splash

    Scheduled Pinned Locked Moved SDK Help
    7 Posts 0 Posters 634 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 18/05/2005 at 07:02, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:    
      Platform:   Windows  ;   
      Language(s) :     C++  ;

      ---------
      Hi all,
      Where's the spot in a plug to place (intro)splashscreen code ?
      Thanks,

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 18/05/2005 at 08:47, xxxxxxxx wrote:

        When do you want the splash to display? During Cinema 4D startup or plugin startup?

        This might get tricky if your plugin uses a non-modal, dockable dialog. It may be run during startup (Restore()) in which case the splash will always show then for users doing this.

        I would think that Execute() or just before wherever it is that you open your dialog (or start processing with the plugin). Probably best to be non-modal if it will possibly interfere with other activity (C4D startup).

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 18/05/2005 at 11:12, xxxxxxxx wrote:

          Thanks Robert,
          Your right, there are some side-effects.
          I now do have a modal, in init (tag-Plug), with a global passcounter, so as far as i can see now, it only shows up once.
          What do you think ?

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 18/05/2005 at 12:38, xxxxxxxx wrote:

            I take it that the global counter is to avoid those unavoidable Cinema replications? Init() seems to be a good place. Is this splash on a timer (shows for a few seconds, for instance) or on a user event (user clicks mouse on it or somewhere to remove it)?

            1 Reply Last reply Reply Quote 0
            • H Offline
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 18/05/2005 at 13:32, xxxxxxxx wrote:

              Yes, your right about the counter.
              Its a modal, so the user must click ok/cancel.
              It seems to function fine.

              1 Reply Last reply Reply Quote 0
              • H Offline
                Helper
                last edited by

                THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                On 18/05/2005 at 13:51, xxxxxxxx wrote:

                I hope this is for a demo version, otherwise a modal splash screen sounds very intrusive. The best place for such a thing in a regular plugin would be in the About menu item.
                If you want the splash to occur on the first use of your plugin, so that it doesn't appear in every session, then the Init() function is a good way to initiate the splash. However, the dialog must not be opened from there. In R9+ the scene preparation code is executed in a thread. I learned the hard way with MSA that having dialogs in there can cause subtle crashes. What's worse was that these crashes only occured in the demo version, so I didn't spot them during testing.
                This is the way I do it in my updated, R9 safe, demo versions:

                    
                    
                    const LONG DEMO_MESSAGE_ID = ...;
                    
                    
                    
                    
                    class MSADemoMessage : public MessageData  
                    {  
                    public:  
                      virtual Bool CoreMessage(LONG id, const BaseContainer& bc)  
                      {  
                        switch(id)  
                        {  
                        case DEMO_MESSAGE_ID:  
                          MessageDialog(bc.GetLong(BFM_CORE_PAR1));  
                        }  
                        return TRUE;  
                      }  
                    };
                    
                    
                    
                    
                    Bool RegisterMSADemoMessage()  
                    {  
                      return RegisterMessagePlugin(DEMO_MESSAGE_ID,   
                        "MSA Demo Message", 0,   
                        gNew MSADemoMessage);  
                    }
                    
                    
                    
                    
                    void DoMessageDialog(LONG id)  
                    {  
                      SpecialEventAdd(DEMO_MESSAGE_ID, id, 0);  
                    }
                    
                    
                    
                    
                    void MSATag::Execute(...)  
                    {  
                      if (demo && firsttime)  
                      {  
                        ...  
                        DoMessageDialog(DEMO_MESSAGE_TEXT);  
                      }  
                    }
                

                Since the dialog is called via a core message it's always thread safe.

                1 Reply Last reply Reply Quote 0
                • H Offline
                  Helper
                  last edited by

                  THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

                  On 19/05/2005 at 02:44, xxxxxxxx wrote:

                  It's a demo indeed. But pretty intrusive yes.
                  But the 'subtle crashes' must be my problems with the  colliding ID in the different versions of C4D.
                  I've got the message, thanks.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post