Repository navigation
dgm-lib v3.0.0
dgm-lib v3.0.0
- Library target has been renamed to
dgm-liband adgm::dgm-libalias has been added. Use that for linking - You can now use
find_packageon a downloaded release to easily link the library. See docs/integration for details - You can force dgm-lib to use an external installation / clone of SFML to maintain a consistent version with other libraries. See docs/integration for details
dgm::AppStateConfigmarked as finaldgm::Clipis now nodiscard and finaldgm::Camerais now finaldgm::Errorreplacesdgm::ErrorMessage- Contains message and a stacktrace
- This is a
std::expectedversion ofdgm::Exception
dgm::ResourceManagerhas been streamlinedgetandgetMutableare now throwing so they can return references directly- No more
.value().get()pattern - Resource not present is treated as a precondition fail
- No more
LoadCallbacknow returnsstd::expected<T, dgm::Error>instead of having an inout T parameter- Resources no longer have to be default-constructible (yay, RAII), but they have to be movable
- Two moves are issued per resource load, but that's a price I am willing to pay for RAII
loadResourcesFromDirectoryis no longer recursive because Android NDK is shit- All
dgm::Utility::load*functions have been adjusted dgm::ParticleSystemInterfaceis now explicit
- Previously deprecated default constructors were removed (
dgm::Clip,dgm::TileMap,dgm::Path) - Moved
PreallocatedMemoryAmountfromdgm::DynamicBuffertemplate parameters to the constructor parameters- Also made the whole thing explicit
- Added examples
example-08-pathfindingshowcasingdgm::NavMeshexample-09-collisionsshowcasingdgm::Collisionexample-10-camera-minimapshowcasing how to use multipledgm::Cameraobjectsexample-11-appstateshowcasing how to usedgm::Appand implement customdgm::AppStatederivates
- Default constructor of
dgm::Animationwas removed dgm::Animationis nodiscard and final, most of the interface is noexceptdgm::Timeis nodiscarddgm::Window::getWindowContextrenamed togetSfmlWindowContextdgm::Window::beginDrawrenamed tocleardgm::Window::endDrawrenamed todisplaydgm::Controllercompletely revamped- No longer dependent on xinput
getInputValue/isInputToggledreplaced withreadAnalog/readDigitalupdatemethod was removed
dgm::GenericMeshhas deleted copy constructor and an explicitclonemethoddgm::GeneralMeshconstructor accepting vector of bools has been removed- Compilation for Android is supported
- SFML bumped to v3.0.0
dgm::Cameradropped all methods that used separate x, y coordinates in favor ofsf::VectorversionssetRotation/rotateGraduallynow acceptssf::Angleinstead of floatdgm::Window::pollEventnow returnsstd::optional<sf::Event>and accepts no parameters- Math utils migrated to use
sf::AnglepolarToCartesianoverload acceptingPolarCoordsstruct was removedcartesianToPolaroverload accepting two floats was removed
dgm::Conemigrated to usesf::Angledgm::Particlemigrated to usesf::Angledgm::Math::mapremoveddgm::Math::getRotatedremoved, replaced bysf::Vector2::rotateBydgm::Math::getDotProductremoved, replaced bysf::Vector2::dotdgm::Math::getSizeremoved, replaced bysf::Vector2::lengthdgm::Math::polarToCartesianremoved, replaced bysf::Vector2constructor accepting length and angledgm::Particleand related particle system classes now internally allocate 6 vertices instead of 4, becausesf::PrimitiveType::Quadswas removed.