PCSX2 Documentation/WxWidgets Coding Strategies: Difference between revisions

Line 45: Line 45:
As of the writing of this doc, this topic is still a work-in-progress on the wx branch, meaning that there are still a few spots in the Emulation Core code that make direct references to the gui. These spots willhopefully get resolved in the near future.
As of the writing of this doc, this topic is still a work-in-progress on the wx branch, meaning that there are still a few spots in the Emulation Core code that make direct references to the gui. These spots willhopefully get resolved in the near future.


The principle ideal here is to allow the PCSX2 core libraries (the virtual machine) to be used from 3rd party user interfaces. By that I _do not_ mean abstracting the entire core to use a plugin API. The abstraction is meant to be from the standpoint of static linking only, without any complicated DLL mnemonics. If a DLL interface is provided in the future, it will be done using a separate project that provides a DLL interface layer to the static PCSX2 core static library. That is, the goal here is not to complicate code, but rather to simplify it and reduce inter-dependent clutter that can wreak havoc on thread safety and also makes future improvements and upgrades more difficult.
The principle ideal here is to allow the PCSX2 core libraries (the virtual machine) to be used from 3rd party user interfaces. By that I ''do not'' mean abstracting the entire core to use a plugin API. The abstraction is meant to be from the standpoint of static linking only, without any complicated DLL mnemonics. If a DLL interface is provided in the future, it will be done using a separate project that provides a DLL interface layer to the static PCSX2 core static library. That is, the goal here is not to complicate code, but rather to simplify it and reduce inter-dependent clutter that can wreak havoc on thread safety and also makes future improvements and upgrades more difficult.


Currently however there is no distinct separation between the emulation core and the wx-based GUI, since there are still several intertwined dependencies that still need to be dealt with in a nice manner.
Currently however there is no distinct separation between the emulation core and the wx-based GUI, since there are still several intertwined dependencies that still need to be dealt with in a nice manner.
ninja
782

edits