commit 963b25f807ba5199f2d7955f301b9726eecedf33
parent 4cb8077cfd37657217d60412a68681edbf0a0eea
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 18 Oct 2023 12:01:00 +0200
Write release note for version 2.1
Wraps the README text in 72 columns to match the convention of plain
text e-mails. It can therefore be sent as a publication announcement
e-mail without being reformatted.
Diffstat:
| M | README.md | | | 96 | ++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------- |
1 file changed, 61 insertions(+), 35 deletions(-)
diff --git a/README.md b/README.md
@@ -2,19 +2,19 @@
AW is a C library whose purpose is to load the Alias Wavefront
[`obj`](http://www.martinreddy.net/gfx/3d/OBJ.spec) and
-[`mtl`](http://www.fileformat.info/format/material/) file formats. Only a
-subset of these formats are currently supported.
+[`mtl`](http://www.fileformat.info/format/material/) file formats. Only
+a subset of these formats are currently supported.
-For `obj` files, polygonal primitives with their per vertex-position, normal
-and texture coordinates are loaded. Smooth, common and material groupings are
-also handled correctly.
+For `obj` files, polygonal primitives with their per vertex-position,
+normal and texture coordinates are loaded. Smooth, common and material
+groupings are also handled correctly.
-For `mtl` files, ambient, diffuse, specular, glossiness and transmissive RGB or
-XYZ colors are supported. Additionally, it loads the refraction index and the
-illumination model. The library also loads the filename of ambient, diffuse,
-specular, glossiness and bump textures and their attributes (blend< u|v \>,
-color correction, channel mapping, texcoord < offset|scale|turbulence \>, image
-resolution and bump multiplier).
+For `mtl` files, ambient, diffuse, specular, glossiness and transmissive
+RGB or XYZ colors are supported. Additionally, it loads the refraction
+index and the illumination model. The library also loads the filename of
+ambient, diffuse, specular, glossiness and bump textures and their
+attributes (blend< u|v \>, color correction, channel mapping, texcoord
+< offset|scale|turbulence \>, image resolution and bump multiplier).
## Requirements
@@ -31,47 +31,73 @@ Edit config.mk as needed, then run:
## Release notes
+### Version 2.1
+
+### POSIX make
+
+Replace CMake by Makefile as build system. The build procedure is
+written in POSIX make, which the user can configure via the `config.mk`
+file. The POSIX script `make.sh` contains commands that could be found
+directly in the Makefile, but which are placed here to simplify its
+writing. Finally, a pkg-config file is provided to link the library as
+an external dependency.
+
+In addition to the features already provided by its CMake alternative,
+the Makefile supports the construction of static libraries, provides an
+uninstall target and updates compiler and linker flags to increase the
+security and robustness of generated binaries. In any case, the main
+motivation for using POSIX make is to rely on a good old
+well-established standard with simple functionality, available on all
+UNIX systems, thus simplifying its portability and support while being
+much lighter.
+
+### Miscellaneous
+
+Update the `aw_obj_desc` data structure: add the number of positions,
+texcoords and normals as new member variables of the structure.
+
### Version 2.0.1
-Sets the CMake minimum version to 3.1: since CMake 3.20, version 2.8 has become
-obsolete.
+Sets the CMake minimum version to 3.1: since CMake 3.20, version 2.8 has
+become obsolete.
### Version 2.0
Full review and refactoring of the code.
-- The named groups, the maps and the materials become pod data structures
- without any init/release/copy function. Their name is now exposed as a
- regular `const char*` rather than stored in a `struct str` data structure.
-- All floating point data are encoded in double precision rather than in single
- precision.
-- The `struct aw_obj_vertex` data structure stores only the index of the vertex
- attributes. Their values are retrieved by the new `aw_obj_get_vertex_data`
- function.
-- Add an optional stream name parameter to the `aw_<obj|mtl>_load_stream`
- functions: it allows the user to define the name of the stream to load, a
- name that is internally used by the logger to print messages regarding the
- stream.
+- The named groups, the maps and the materials become pod data
+ structures without any init/release/copy function. Their name is now
+ exposed as a regular `const char*` rather than stored in a `struct
+ str` data structure.
+- All floating point data are encoded in double precision rather than in
+ single precision.
+- The `struct aw_obj_vertex` data structure stores only the index of the
+ vertex attributes. Their values are retrieved by the new
+ `aw_obj_get_vertex_data` function.
+- Add an optional stream name parameter to the
+ `aw_<obj|mtl>_load_stream` functions: it allows the user to define the
+ name of the stream to load, a name that is internally used by the
+ logger to print messages regarding the stream.
- Rename the `get` functions.
- Rely on RSys to parse the input files and to perform text conversions.
-- Add support of the `map_bump` keyword as an alias of the `bump` keyword in
- the mtl fileformat.
+- Add support of the `map_bump` keyword as an alias of the `bump`
+ keyword in the mtl fileformat.
### Version 1.3.1
-- Update the version of the RSys dependency to 0.6: replace the deprecated
- `[N]CHECK` macros by the new macro `CHK`.
+- Update the version of the RSys dependency to 0.6: replace the
+ deprecated `[N]CHECK` macros by the new macro `CHK`.
### Version 1.3
-- Add the `aw_obj_purge` and `aw_mtl_purge` functions that not only reset the
- state of the loaders, as the `aw_obj_clear` and `aw_mtl_clear` functions, but
- also free their internal memory.
+- Add the `aw_obj_purge` and `aw_mtl_purge` functions that not only
+ reset the state of the loaders, as the `aw_obj_clear` and
+ `aw_mtl_clear` functions, but also free their internal memory.
## License
Copyright (C) 2014-2017, 2020-2023 Vincent Forest (vaplv@free.fr)
-AW is free software released under GPL v3+ license: GNU GPL version 3 or later.
-You are welcome to redistribute it under certain conditions; refer to the
-COPYING file for details.
+AW is free software released under GPL v3+ license: GNU GPL version 3 or
+later. You are welcome to redistribute it under certain conditions;
+refer to the COPYING file for details.