summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d679abc
--- /dev/null
+++ b/README.md
@@ -0,0 +1,48 @@
+# drm-fourcc
+
+[![Crates.io](https://img.shields.io/crates/v/drm-fourcc)](https://crates.io/crates/drm-fourcc)
+![MIT Licensed](https://img.shields.io/crates/l/drm-fourcc)
+
+Provides an enums representing every pixel format and format modifier supported
+by DRM (as of kernel version 5.10.0).
+
+A [fourcc][fourcc_wiki] is four bytes of ascii representing some data format. This enum contains
+every fourcc representing a pixel format supported by [DRM][drm_wiki], the Linux Direct
+Rendering Manager.
+
+To get the bytes of the fourcc representing the format, cast to `u32`.
+
+```rust
+assert_eq!(DrmFourcc::Xrgb8888 as u32, 875713112);
+```
+
+To get the string form of the fourcc, use [`DrmFourcc::string_form`].
+
+```rust
+assert_eq!(DrmFourcc::Xrgb8888.string_form(), "XR24");
+```
+
+We also provide a type for representing a fourcc/modifier pair
+
+```rust
+let format = DrmFormat {
+ code: DrmFourcc::Xrgb8888,
+ modifier: DrmModifier::Linear,
+};
+```
+
+The enums are autogenerated from the [canonical list][canonical] in the Linux source code.
+
+## Features
+
+- `std`: Enable functionality that requires the standard library. Enabled by default
+- `build_bindings`: Build the bindings based on the headers on your machine. Should not be necessary in most cases.
+
+## Contributors
+
+- [Daniel Franklin](https://github.com/danielzfranklin)
+- [Victor Brekenfeld](https://github.com/Drakulix)
+
+[fourcc_wiki]: https://en.wikipedia.org/wiki/FourCC
+[drm_wiki]: https://en.wikipedia.org/wiki/Direct_Rendering_Managerz
+[canonical]: https://github.com/torvalds/linux/blame/master/include/uapi/drm/drm_fourcc.h