Delgine 3D Tools & Content DeleD Community Edition
Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

ali is second..

 
Post new topic   Reply to topic    DeleD Community Edition Forum Index -> DeleD Plugins
View previous topic :: View next topic  
Author Message
jwatte
DeleD PRO user


Joined: 26 Apr 2006
Posts: 513

PostPosted: Sun Jun 17, 2007 4:28 am    Post subject: ali is second.. Reply with quote

address, phone, and e-mail listings. Many health authorities suggest that before embarking on a new coffee (average cups, not the high-test espresso t ype?it would be only two-thirds of one of those
was developed that could mediate splicing to be a viable approach in cattle, sheep, and example, optical spectroscopy. This prob
Atari: Before you reply to a topic, please check the date on which the topic was last active You have now responded to several topics that are very old Generally, unless you have something ground
niques, and comparative studies revealed material are added to the tip of the novel anticancer therapies, and for deliv


Last edited by jwatte on Tue Sep 07, 2010 3:58 pm; edited 2 times in total
Back to top
View user's profile Send private message
Paul-Jan
Site Admin


Joined: 08 Aug 2004
Posts: 3066
Location: Lage Zwaluwe

PostPosted: Sun Jun 17, 2007 7:47 am    Post subject: Reply with quote

Depends on how you look at it. You could also describes these techniques as your specific 'implementation proposal to upgrade the plugin system from modal plugins only to both modal and non-modal, which is a rather big feature... Very Happy But we all agree this is important stuff, so here we go...

1. Yep, you'll get it.

2. I honestly do not know what you would need your own HModule for inside a DLL, I don't think I've seen this technique being used (but perhaps I've been using frameworks that were abstracting it away?), can you give me some technical pointers/references here? (*)

3. Yep, you'll need some way if getting this info, through callback or perhaps as an argument to PluginExecute/PluginInitialize. We'll need to fiddle around with the exact HWND value passed (DeleD, like any Delphi application, has a hidden main application window... I think that's the one we want to pass around, but we could also do the visible main window, or perhaps the owner/parent window shouuld be context-based).

4. Uhmmm... we can probably do this, but what exactly where you going to do with it? Skinning windows? If you just want your plugin to be notified of changes in the underlying data then I think that's what we would be needing to make, some form of notification system.

I am by the way a bit surprised your hacky-way-to-retrieve-the-main-window isn't robust, I've got commercial business-applications running in the wild using such methods to hook into 3rd party closed source stuff. Any things in particular that go wrong?

[edit]Ok, so curse my Delphi background, I never knew that our HInstance and HModule were one and the same thing... Very Happy So I have been working inside a framework that has abstracted the retrieval of the HModule way from me (at the lowest level, it just looks up the HModule of the address of the function that gets called at initialization using a VirtualQuery). The Delphi Run Time Library is very much proven technology (i.e. it is used in every Delphi DLL around), so I see no compelling reason to do things another way. My suggestion would be we just document such a method (as a 'how to') and put it into any example code as well.[/edit]

[edit2]I've been thinking about this some more, and I am currently leaning towards an optional PluginInitialize method that gets you both the hwnd and hmodule. The fact that Jeroen and me are living inside a framework that makes retrieving the hmodule trivial doesn't justify making the life of developers in other environments harder.[/edit2].
Back to top
View user's profile Send private message Visit poster's website
jwatte
DeleD PRO user


Joined: 26 Apr 2006
Posts: 513

PostPosted: Sun Jun 17, 2007 4:25 pm    Post subject: Reply with quote

Quote:
I honestly do not know what you would need your own HModule for inside a DLL


It's needed to get to your resource file, and to register your own window proc.
However, that was just a brain fart -- the right way to get it is to implement DllMain() and stash it away inside the initialization.

I had a way of getting the main window which looked for a window title containing ".dmf", which broke subtly when 1.6 came out. I just realized why, and now it will work again until ".dxs" is no longer the file format of choice :-)

You may note that the NuXporter plug-in has never been modal, so that's what the hackery is about. You'll also note that some other plug-ins (Lua plug-in, for example) are also not modal -- but those plug-ins typically crash under certain circumstances, because they don't hack enough to get these notifications.

Scene change is a superset of "new window," so that'd be a useful notification, too.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    DeleD Community Edition Forum Index -> DeleD Plugins All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum