Re: [wxlua-users] using wx in two lanes

2014-10-28 Thread Victor Bombi
that is what I thought when i saw:

 // the one and only global application object
static wxAppConsole *ms_appInstance;

but also had seen some topics about trying to make VST-plugins GUI with 
wxWidgets, as this plugins are one dll loaded multiple times by the vst-host I 
guess this is an imposible task also.
what a pitty!!

thanks
victor
  - Original Message - 
  From: John Labenski 
  To: wxlua-users@lists.sourceforge.net 
  Sent: Monday, October 27, 2014 9:44 PM
  Subject: Re: [wxlua-users] using wx in two lanes


  On Mon, Oct 27, 2014 at 8:03 AM, Victor Bombi son...@telefonica.net wrote:

Hello,

this is related to something we talked before in the list.

In order to requirewx from two diferent lanes in luaLanes I modified
luamodule.cpp:
 instead of static wxLuaState s_wxlState; I have  wxLuaState* s_wxlState =
new wxLuaState; inside luaopen_wx so that we get a different wxLuaState in
each lane.

In each lane a wxFrame is created and wxGetApp():MainLoop() is called at the
end of the function used as the lane body.
The first lane that calls wxGetApp():MainLoop() succeds but the second one
fails because IsMainLoopRunning is true (as it is refering the same
instance) and this lane ends.

The main problem I see is that there is only one wxApp created by wxWidgets
so it is not possible to have two independent message loops. (and maybe two
independent wxApps)

Is there something that can be done to create two different wxApp one in
each lane?




  I'm pretty sure that having two separate wxApps in the same application is 
not supported by wxWidgets. Doing anything with a GUI widget from different 
threads at the same time is definitely not supported by any underlying GUI 
framework that wxWidgets uses; MSW, GTK, OSX, etc. 

  The standard practice is to create the GUI in one and only one thread 
(doesn't have to be main, but typically is) and then use 
wxEvtHandler::QueueEvent(wx.wxCommandEvent(...)) to post messages from any 
other thread to the GUI thread. Basically, you connect your app to an arbitrary 
event type, wxEVT_COMMAND_BUTTON_CLICKED for example, with a unique ID and pass 
your data through the wxCommandEvent's Get/SetString/Int() etc. You may want to 
use lanes to do this message passing between threads if you like or if it's 
possible.

  The bottom line, I really don't think creating two wxApps in a single process 
is ever going to work even if the wxLua side was made thread-safe. It would be 
incredibly fragile.


  Regards,

  John











--


  --



--


  ___
  wxlua-users mailing list
  wxlua-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wxlua-users
--
___
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users


[wxlua-users] using wx in two lanes

2014-10-27 Thread Victor Bombi
Hello,

this is related to something we talked before in the list.

In order to requirewx from two diferent lanes in luaLanes I modified 
luamodule.cpp:
 instead of static wxLuaState s_wxlState; I have  wxLuaState* s_wxlState = 
new wxLuaState; inside luaopen_wx so that we get a different wxLuaState in 
each lane.

In each lane a wxFrame is created and wxGetApp():MainLoop() is called at the 
end of the function used as the lane body.
The first lane that calls wxGetApp():MainLoop() succeds but the second one 
fails because IsMainLoopRunning is true (as it is refering the same 
instance) and this lane ends.

The main problem I see is that there is only one wxApp created by wxWidgets 
so it is not possible to have two independent message loops. (and maybe two 
independent wxApps)

Is there something that can be done to create two different wxApp one in 
each lane?

Best
victor bombi 


--
___
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users