spiv: Stop loader thread before resizing backend buffer.
[gfxprim.git] / doc / general.txt
blobd71ec1ff7092fb1afaa35a8d6d75bd4e1cd6b004
1 General information
2 -------------------
3 Gfxprim is simple modular 2D bitmap graphics library with emphasis on speed
4 and correctness.
6 One of the key points of the library is code generation. Most of the graphics
7 operations are written using 'jinja' templating engine which is used to
8 generate specialized C code. So, for an example, once  you add pixel
9 definition into configuration file, creating specialized filters, loaders and
10 conversions to other pixel formats is just a matter of typing "make && make
11 clean".
13 The library also includes, fairly optimized, fixed-point image filters, namely
14 various resampling algorithms used to resize images, low pass filters, etc...
16 Implemented features
17 ~~~~~~~~~~~~~~~~~~~~
19 Graphics Rendering
20 ^^^^^^^^^^^^^^^^^^
21 * Basic Graphics Primitives (with and without fill)
22 ** PutPixel/GetPixel
23 ** Lines
24 ** Circles
25 ** Ellipses
26 ** Polygons
28 * Text Drawing
29 ** Supports both proportional and non proportional fonts
30 ** Basic fonts are compiled in the library
31 ** Font rendering can be altered by style attributes
32 ** Supports, for example, pixel multiplication and tracking
33 ** Includes basic support for freetype
35 * Bitmaps and Blitting
36 ** Create, Destroy bitmap
37 ** Subcontext, rectangular region in one context could be used as a context
38 ** Fast specialized blits (with 90, 180 and 270 degree rotation)
40 * Image loading/saving
41 ** Read and Write support for PNG
42 ** Read and Write support for JPEG
43 ** Read support for BMP
44 ** Read support for GIF
46 * Graphic backed input event handling
47 ** Linux Frame-buffer
48 ** SDL support
49 ** Experimental X11 support
51 Bitmap Filters
52 ^^^^^^^^^^^^^^
53 * Point filters
54 ** Brightness
55 ** Contrast
56 ** General Point filter
58 * Linear filters
59 ** Specialized Gaussian blur
60 ** Separable Convolution
61 ** General Convolution
63 * Arithmetics filters
64 ** Addition
65 ** Multiplication
66 ** Difference
67 ** Maximum, Minimum
69 * Floyd Steinberg dithering
71 * Bitmap resampling algorithms
72 ** Nearest Neighbour
73 ** Bilinear
74 ** Cubic
76 * Bitmap rotation and mirroring
77 ** 90 180 and 170 degree rotation
79 * Histogram generator
81 Work in progress
82 ~~~~~~~~~~~~~~~~
84 * Python bindings
85 ** basic support works now
86 ** could be combined with PyGTK for GUI drawing (experimental)
88 * Anti Aliased drawing
89 ** Line and PutPixel are finished
91 * Gamma correction and color profiles