|
1 | 1 | # CppBMPLoader
|
2 |
| -An exhaustive BMP Loader, MIT-licensed, implemented for c11 and c20 |
| 2 | +An exhaustive BMP Loader, MIT-licensed, implemented for c++11 and c++20 |
| 3 | + |
| 4 | + |
| 5 | +## Genesis of this project |
| 6 | +The genesis of this project is the initial creation of the **OGLFW** library, |
| 7 | +an object overlay of the **GLFW** library, and the need to associate it with |
| 8 | +a library for loading images under the **MIT license** or from the public |
| 9 | +domain, free of rights, to associate them with icons provided in OGLFW. |
| 10 | + |
| 11 | +Being unable to find such a library under this type of license, a solution |
| 12 | +was to let users of the original **OGLFW** library load the images themselves |
| 13 | +using the external library of their choice, even if not under the MIT license. |
| 14 | + |
| 15 | +Another solution was to propose an `Icon` class with a virtual image loading |
| 16 | +method not implemented in this base class. This second solution allowed users |
| 17 | +to derive their own classes from this Icon base class and to implement the |
| 18 | +image loading method corresponding to the format of the images to be loaded |
| 19 | +(possibly using already existing but less permissively licensed libraries). |
| 20 | +To this end, and as an example of implementation, a `BMPIcon` derived class |
| 21 | +has been provided in the **OGLFW** library. Its implementation had to rely on |
| 22 | +an external library which allows the loading of **BMP** images. Unfortunately, |
| 23 | +no library met the required licensing criteria or, when unlicensed or under |
| 24 | +**MIT** license, did not allow decoding of all cases of BMP image encoding. |
| 25 | + |
| 26 | +The **CppBMPLoader** library therefore fills this gap by offering the only |
| 27 | +loading of **BMP** images in all the forms that this image format allows and |
| 28 | +under the permissive MIT license. It will also meet many other needs when we |
| 29 | +see the quantity of questions asked on this subject on the Internet and the |
| 30 | +number of BMPLoader libraries already existing but apparently incomplete that |
| 31 | +we can find on *GitHub*, programmed in c++ or in other programming languages. |
| 32 | + |
| 33 | +Initially, two versions of the library are offered, one responding to standard |
| 34 | +c++11 of the programming language and the other responding to standard c++20 |
| 35 | +and offering more advanced programming concepts (e.g. programmed in the form |
| 36 | +of c++ modules ). |
| 37 | + |
| 38 | +Notice: by April and May 2024, this original library **OGLFW** is still under |
| 39 | +development. |
0 commit comments