User Tools

Site Tools


devel:libcore

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

devel:libcore [2015-11-14 22:22] (current)
Line 1: Line 1:
 +{{update}}
 +
 +{{notice|Note|You should also see the [[api_documentation]] for more in-depth information.}}
 +
 +[[libcore]] is the name of the shared library that contains the core of the [[doomsday_engine]] version 2.((The actual file name depends on the platform:
 +  *  On Windows, it is **deng_core.dll**.
 +  *  On Mac OS X, it is **libdeng_core.dylib**.
 +  *  On Linux, it is **libdeng_core.so**.)) It is based on [[hawthorn]].
 +
 +
 +====== Doomsday 2 architecture ======
 +
 +
 +Doomsday 2 comprises a set of libraries that act as the foundation of [[doomsday_client]],​ Server, [[shell]], and other applications. Everything builds on [[libcore]],​ the core library that contains functionality essential to all applications.
 +
 +{{ file:​doomsday_2_component_architecture.png }}
 +
 +
 +===== Core library (libcore) =====
 +
 +App, Library, base for subsystems, threading.
 +
 +
 +==== Data ====
 +
 +Block, values, Variable, Record, Writer, Reader, byte ordering, reference counting, ZIP archives.
 +
 +
 +==== Internal file system ====
 +
 +[[file_system|FS]],​ folders, native/​archive files.
 +
 +
 +==== Network ====
 +
 +Link, Protocol, packets.
 +
 +Network architecture on the application level (sessions):
 +
 +{{ file:​sessions_and_users.png }}
 +
 +//See also:// [[network_protocol]]
 +
 +
 +==== Scripting ====
 +
 +Script, Parser, Process, Module, statements, expressions,​ functions.
 +
 +{{ file:​scripting_arch.png?​700x0 }}
 +
 +
 +===== Shell library (libshell) =====
 +
 +
 +Connecting to servers, protocol for talking with servers. Generic UI components needed by the Shell apps and the UI framework.
 +
 +
 +===== GUI library (libgui) =====
 +
 +
 +[[libgui]] builds on [[libdeng2]] and adds functionality integral to GUI applications:​ OpenGL drawing, input events, and audio.
 +
 +
 +===== UI framework (libappfw) =====
 +
 +
 +The Doomsday UI framework is in its own library and contains a number of UI widgets and supporting functionality for tasks like laying out and drawing text.
 +
 +
 +===== Common application subsystems (libdoomsday) =====
 +
 +
 +[[libdoomsday]] contains all the common subsystems shared by [[doomsday_server]] and [[doomsday_client]].
 +
 +
 +===== Legacy / C language support (liblegacy) =====
 +
 +
 +[[liblegacy]] contains old supporting code (like the memory zone and dynamic strings for C) that was more relevant before C++ was taken into use. This library is intended to eventually become obsolete as more and more code is based on the newer libraries.
 +
 +
 +====== Version numbering ======
 +
 +libcore version numbers are composed of the following parts:
 +  *  //Major version number:// 2.
 +  *  //Minor version number:// incremented once a set of long-term goals have been met.
 +  *  //​Patchlevel://​ incremented for patch releases.
 +
 +In addition to the version number there is also the independent [[build_number]] as defined by the [[automated_build_system]].
 +
 +The [[doomsday_client]] and [[doomsday_server]] use the same version number as libcore.
 +
 +
 +====== Footnotes ======
 +
 +<​references/>​
 +
 +
 +====== See also ======
 +
 +  *  [[refactor_engine_into_a_shared_library]]
 +  *  [[internal_file_system]]
 +  *  [[doomsday_script]]
 +  *  [[plugin_factory]]
 +  *  [[packaging_resources]]
 +  *  [[roadmap]]
 +
 +
 +
  
devel/libcore.txt ยท Last modified: 2015-11-14 22:22 (external edit)