Voltar ao ranking

mosra/magnum

C++magnum.graphics

Lightweight and modular C++11 graphics middleware for games and data visualization

c-plus-plus-11openglwebglemscripteniosandroidgraphics-enginegame-enginec-plus-plusgamedevcmakeglfw
Crescimento de estrelas
Estrelas
5.2k
Forks
464
Crescimento semanal
Issues
55
2k4k
nov. de 2012mai. de 2017dez. de 2021jul. de 2026
README

Magnum — Lightweight and modular C++11 graphics middleware for games and data visualization

Looking for an open-source library that gives you graphics abstraction and platform independence on major desktop, mobile and web platforms? Do you want it to have all the convenience utilities around yet stay small, powerful and not give up on flexibility? Here it is. And it's free to use, even for commercial purposes.

Join the chat at https://gitter.im/mosra/magnum Build Status Build Status Coverage Status MIT License

Beauty of simplicity

Among Magnum essentials is a UTF-8-aware OS, filesystem and console abstraction, a feature-packed vector math library and a slim C++11 wrapper of OpenGL / WebGL family of APIs. Build on top of that or opt-in for more.

See all core features

With batteries included

Shaders and primitives for fast prototyping, algorithms, debugging and automatic testing, asset management, integration with popular windowing toolkits and a UI library. Everything fits together but you still have a choice.

List the extra features

Screws are not glued in

There's always more than one way to do things. Enjoy the freedom of choice and integrate your own asset loader, texture compressor, font format or math library, if you feel the need. Or use any of the various plugins.

View extension points


Wondering if Magnum is a good fit for your project? We prepared a few case studies to help you decide.

SUPPORTED PLATFORMS

  • Linux and embedded Linux
  • Windows with MSVC, clang-cl and MinGW, Windows RT (Store/Phone)
  • macOS, iOS
  • Android
  • Web (asm.js or WebAssembly), through Emscripten

Graphics APIs:

  • OpenGL 2.1 through 4.6, core profile functionality and modern extensions
  • OpenGL ES 2.0, 3.0–3.2 and extensions to match desktop OpenGL functionality
  • WebGL 1.0, 2.0 and extensions to match desktop OpenGL functionality

See the Build Status page for detailed per-platform build status.

WHAT'S NEW?

Curious about what was added or improved recently? Check out the Changelog page in the documentation.

GETTING STARTED

The best way to get started is to read the thorough download, build, install and start using Magnum in your project. There is also a complete building documentation — we provide packages for many platforms, including Windows, Linux and macOS. After that, there are various tutorials and examples and a complete feature guide explaining all aspects of the library.

Apart from that, various Magnum functionality is available through single-header libraries. Just download a file, #include it in your project and you're ready to go! No buildsystem wrangling needed.

RELATED PROJECTS

The engine itself is kept as small as possible with only a few dependencies. Additional functionality, often depending on external libraries, is provided in separate repositories.

Outside of the project itself, there's also a lot of community contributions — check them out on the website.

CONTACT & SUPPORT

If you want to contribute to Magnum, if you spotted a bug, need a feature or have an awesome idea, you can get a copy of the sources from GitHub and start right away! There is the already mentioned guide about how to download and build Magnum and also a guide about coding style and best practices which you should follow to keep the library as consistent and maintainable as possible.

See also the Magnum Project Contact & Support page for further information.

CREDITS

Detailed contributor list is maintained in the documentation. Big thanks to everyone involved!

There's also a list of third party components that affect public use of the project.

LICENSE

Magnum is licensed under the MIT/Expat license, see the COPYING file for details.

Repositórios relacionados
electronicarts/EASTL

EASTL stands for Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.

C++BSD 3-Clause "New" or "Revised" Licenseeastlstl
9.3k1k
boostorg/beast

HTTP and WebSocket built on Boost.Asio in C++11

C++Boost Software License 1.0boostc-plus-plus-11
boost.org/libs/beast
4.8k689
abumq/easyloggingpp

C++ logging library. It is powerful, supports asynchronous low latency, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.

C++MIT Licensec-plus-plus-11logging
3.9k943
pezy/LeetCode

:pencil2: LeetCode solutions in C++ 11 and Python3

C++MIT Licenseleetcodeleetcode-solutions
github.com/pezy/LeetCode
3.5k962
cnjinhao/nana

a modern C++ GUI library

C++Boost Software License 1.0modern-cppc-plus-plus-11
nana.acemind.cn
2.5k348
AcademySoftwareFoundation/OpenImageIO

Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.

C++Apache License 2.0imagesimage-processing
openimageio.readthedocs.org
2.3k686
ToruNiina/toml11

TOML for Modern C++

C++MIT Licensetomlc-plus-plus-11
toruniina.github.io/toml11/
1.3k183
redorav/hlslpp

Math library using HLSL syntax with multiplatform SIMD support

C++MIT Licensehlslmath
1.1k69
vincentlaucsb/csv-parser

A modern C++ CSV parser and serializer that doesn't make you choose between ease of use or performance.

C++MIT Licensecsvparser
vincentlaucsb.github.io/csv-parser/
1.1k199
mongodb/mongo-cxx-driver

C++ Driver for MongoDB

C++Apache License 2.0drivermongodb
mongodb.com/docs/drivers/cxx/
1.1k552
d99kris/rapidcsv

C++ CSV parser library

C++BSD 3-Clause "New" or "Revised" Licensecsv-parserc-plus-plus
1.1k200
cginternals/globjects

C++ library strictly wrapping OpenGL objects.

C++c-plus-plusc-plus-plus-11
globjects.org
53958