summaryrefslogtreecommitdiffstats
path: root/devel-docs/gbr.txt
diff options
context:
space:
mode:
Diffstat (limited to 'devel-docs/gbr.txt')
-rw-r--r--devel-docs/gbr.txt75
1 files changed, 75 insertions, 0 deletions
diff --git a/devel-docs/gbr.txt b/devel-docs/gbr.txt
new file mode 100644
index 0000000..702c4e1
--- /dev/null
+++ b/devel-docs/gbr.txt
@@ -0,0 +1,75 @@
+The GIMP Paintbrush File Format Version 1 (.gbr)
+------------------------------------------------
+
+Based on examples and code, it seems that v1 is like v2, but it is
+lacking bytes 20 - 27 (no magic or spacing info), and thus having
+as last header field:
+
+Bytes 20 - (header_size - 1):
+ Type: char *
+ Value: undefined encoding string - name of brush
+
+GBR v1 is deprecated and should never be used to save new brushes.
+
+
+
+The GIMP Paintbrush File Format Version 2 (.gbr)
+------------------------------------------------
+
+HEADER
+------
+
+Bytes 0 - 3: header_size:
+ Type: 32 bit unsigned int
+ Value: size of brush header (28) + length of brush name
+
+Bytes 4 - 7: version
+ Type: 32 bit unsigned int
+ Value: The file format version.
+
+Bytes 8 - 11: width
+ Type: 32 bit unsigned int
+ Value: Brush width
+
+Bytes 12 - 15: height
+ Type: 32 bit unsigned int
+ Value: Brush height
+
+Bytes 16 - 19: bytes
+ Type: 32 bit unsigned int
+ Value: Colour depth of brush.
+ 1 = greyscale, 4 = RGBA
+
+Bytes 20 - 23: magic_number
+ Type: 32 bit unsigned int
+ Value: GIMP brush magic number.
+ ('G' << 24) + ('I' << 16) + ('M' << 8) + 'P'
+
+Bytes 24 - 27: spacing
+ Type: 32 bit unsigned int
+ Value: Default spacing to be used for brush. Percentage
+ of brush width.
+
+Bytes 28 - (header_size - 1):
+ Type: char *
+ Value: UTF-8 string - name of brush
+
+
+BODY
+----
+ Size: width * height * bytes
+ Type: uchar *
+ Value: Pixel values (row-first) for brush
+
+
+
+The GIMP Paintbrush File Format Version 3 (.gbr)
+------------------------------------------------
+
+This changed GIMP brush format was introduced by the FilmGimp or
+CinePaint developers without notifying the GIMP developers. We've
+added support for reading these brushes. The format is very similar
+to version 2 but uses the bytes field as a data format identifier.
+It seems the only format identifier in use is 18 which corresponds
+to 16bit floats. If you encounter brushes with a different data
+format, please let the GIMP developers know.