![]() ![]() Made plugins hot-load and unloadable so that they can be load/unloaded while studio is running ( obviously ). Implemented a general settings dialog that shows up on the first start of studio, so one can set the paths and whatnot that are needed for the various plugins to work. ![]() Now it’s called Ryzom Core Studio, and resides in it’s own directory ( studio ) in the main source code directory. Renamed and moved out toolset which used to be called OVQT. In this case solving this problem was fairly simple: Since those plugins use their own LIGO configs ( a context object of sorts ), guarding against multiple registrations was enough. When the first plugin that uses it loads there’s no problem, but with the second an assert is triggered because those classes have already been registered. So when the LIGO library is started up, it registers it’s classes. When building with Visual Studio each plugin gets it’s own instance of the static variables, while with GCC they share the same one. Unfortunately as it turns out it behaves differently depending on which compiler built it: GCC or Visual Studio. What’s also important that these Nel libraries are linked statically right now. Also Nel uses a quite powerful (de)serialization system which is based on an abstract object factory, which is implemented using static methods and static member variables. One of these libraries is the LIGO library, which is basically a data library. Ryzom is built on Nel the Nevrax libraries. Unfortunately two of it’s plugins kept triggering an assert when loaded together.Īs it turns out the source of the problem was that GCC and Visual Studio link libraries differently: Ryzom Core Studio is a cross platform tool, the entire point of creating it was to move away and get free of the shackles of Windows as the old Ryzom tools were written with MFC.
0 Comments
Leave a Reply. |