This file has a list of functionality not yet implemented or issues that
have to be fixed in libgdiplus.

---- Functionality not implemented

* Image formats 

- EXIF. There is libexif
- WMF and EMF. We do not support metafiles. See libwmf.

---- Not implemented functions

* Handle functions

Functions that use or create Win32 handles and are not yet implemented 
(except for window and device needed in System.Windows.Forms.)

GdipCreateBitmapFromResource
GdipCreateFontFromDC
GdipCreateFromHWND

* Generic functions

GdipBeginContainer2
GdipBeginContainerI
GdipGetPixelOffsetMode		[2]
GdipGetTextContrast		[2]
GdipSetPixelOffsetMode		[2]
GdipSetTextContrast		[2]
GdipTransformPoints
GdipTransformPointsI

* Image handeling

GdipSetImageAttributesThreshold
GdipSetImageAttributesOutputChannelColorProfile
GdipGetImageAttributesAdjustedPalette
GdipSetImageAttributesOutputChannel
GdipDrawImagePointsRect
GdipDrawImagePointsRectI 
GdipLoadImageFromStream
GdipSaveImageToStream
GdipSaveAdd
GdipSaveAddImage 

* Pens and brushes

GdipSetPenDashCap197819		[2]
GdipGetPenDashCap197819		[2]
GdipSetPenCustomStartCap	[3]
GdipGetPenCustomStartCap	[3]
GdipSetPenCustomEndCap		[3]
GdipGetPenCustomEndCap		[3]

* Functions related to paths

GdipAddString			[1]
GdipAddStringI			[1]
GdipIsOutlineVisiblePathPoint	[4]
GdipIsOutlineVisiblePathPointI	[4]
GdipIsVisiblePathPoint		[4]
GdipIsVisiblePathPointI		[4]
GdipWindingModeOutline
GdipWidenPath
GdipWarpPath


Notes
[1] Partially implemented. LayoutRect and StringFormat are ignored.
[2] Function exists (return Ok) but doesn't do anything (visually or not)
[3] Function exists (return Ok) but only display a warning on the console
[4] Partially implemented. GpGraphics is ignored.

---- Cairo limitations

* Maximum of 32bpp

	GDI+ supports bitmaps with more than 32bpp.
	http://bugzilla.ximian.com/show_bug.cgi?id=80693

* Coordinates limitations

	GDI+ supports 32bips of precision (Cairo is limited to 15bits)
	http://bugzilla.ximian.com/show_bug.cgi?id=79729

---- Issues

* All the functions that create Cairo resources have to be review to make
sure that we do not over reference the handles. For example, calling 
cairo_create and cairo_reference will set the internal cairo reference count
to two. A single cairo_destroy will decrease the internal counter to 1 but
it will not release the resource.

We have to review these calls to make sure that we are releasing propertly
the handles and not leaving them created when their associated object 
(GpGraphics in this case) is destroyed.


last updated: January 12th, 2007
