diff --git a/InstallWindows.txt b/InstallWindows.txt
--- a/InstallWindows.txt
+++ b/InstallWindows.txt
@@ -1,7 +1,7 @@
 It is tedious to install ShivaVG on Windows with MinGW/Msys (I 
-don't think Cygwin will work at all). With GHC-6.10.1 most 
-people appear to be following these instructions to install 
-HOpenGL and HGLUT - they are the ones I followed:
+don't think Cygwin will work at all). With GHC-6.10.1 (and 6.10.2,
+and 6.10.3 ?) most people appear to be following these instructions 
+to install HOpenGL and HGLUT - they are the ones I followed:
 
 http://netsuperbrain.com/blog/posts/freeglut-windows-hopengl-hglut/
 
@@ -49,15 +49,15 @@
 > tar xvfz OpenVG-0.1.tar.gz
 
 > cd OpenVG-0.1
-> runhaskell Setup.hs configure
-> runhaskell Setup.hs build
-> runhaskell Setup.hs install
-> runhaskell Setup.hs haddock
+> runhaskell Setup.lhs configure
+> runhaskell Setup.lhs build
+> runhaskell Setup.lhs install
+> runhaskell Setup.lhs haddock
 
 To run the test you need to copy `openvg32.dll` from
-the shivavg src directory into OpenVG-0.1/examples.
+the shivavg src directory into OpenVG-0.2/examples.
 The cd to examples and run with:
-> runhaskell -lopenvg TestVgu.hs
+> runhaskell -lopenvg32 TestVgu.hs
 
 This should display a white window with some line drawn
 shapes.
@@ -105,11 +105,4 @@
 
 
 
-  
 
-  
-
- 
-
-   
-   
diff --git a/NEWS b/NEWS
new file mode 100644
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,24 @@
+
+
+version 0.2 (07 Jul 2009):
+  * Updated to support ShivaVG version 0.2.1
+  * ShivaVG 0.2.1 add support for
+    - vgHardwareQuery 
+
+  * ShivaVG 0.2.1 stubbed a number of functions that were previously missing
+    - vgMask
+    - vgChildImage
+    - vgGetParent
+    - vgColorMatrix
+    - vgConvolve
+    - vgSeparableConvolve
+    - vgGaussianBlur
+    - vgLookup
+    - vgLookupSingle
+
+    - vguComputeWarpQuadToSquare
+    - vguComputeWarpSquareToQuad
+    - vguComputeWarpQuadToQuad
+ 
+version 0.1 (02 Feb 2009):
+  * Support for ShivaVG version 0.2.0 
diff --git a/OpenVG.cabal b/OpenVG.cabal
--- a/OpenVG.cabal
+++ b/OpenVG.cabal
@@ -1,33 +1,38 @@
 name:             OpenVG
-version:          0.1
+version:          0.2
 license:          BSD3
 license-file:     LICENSE
 copyright:        Stephen Tetley <stephen.tetley@gmail.com>
 maintainer:       Stephen Tetley <stephen.tetley@gmail.com>
 homepage:         http://code.google.com/p/copperbox/
 category:         Graphics
-synopsis:         OpenVG (shivag-0.2.0) binding
+synopsis:         OpenVG (shivag-0.2.1) binding
 description:
   A Haskell binding for the OpenVG vector graphics API version 1.0.1
-  (specifically the shivavg-0.2.0 implementation).
+  specifically the shivavg-0.2.1 implementation.
+  *** Windows users - use version 1.0 and ShivaVG-0.2.0. ***
 
+
 build-type:         Simple
 stability:          alpha
 cabal-version:      >= 1.2
 
 extra-source-files:
   InstallWindows.txt,
+  NEWS,
   README.txt,
   examples/TestUtils.hs,
   examples/TestVgu.hs
 
 library
   hs-source-dirs:     src
-  build-depends:      base, OpenGL >= 2.2, GLUT >= 2.1.1.2
+  build-depends:      base < 5, OpenGL >= 2.2, GLUT >= 2.1.1.2
 
   
   exposed-modules:
     Graphics.Rendering.OpenVG,
+    Graphics.Rendering.OpenVG.Util.Colors,
+    Graphics.Rendering.OpenVG.Util.PathCommands,
     Graphics.Rendering.OpenVG.VG,
     Graphics.Rendering.OpenVG.VGU,
     Graphics.Rendering.OpenVG.VG.BasicTypes,
diff --git a/README.txt b/README.txt
--- a/README.txt
+++ b/README.txt
@@ -1,9 +1,20 @@
 Haskell bindings to ShivaVG (OpenVG implementation).
 
+Haskell OpenVG 0.1 binds to ShivaVG-0.2.0
+Haskell OpenVG 0.2 binds to ShivaVG-0.2.1
+
 I've tested the bindings on both Windows XP (MinGW/Msys) 
-and MacOSX leopard.
+and MacOSX Leopard.
 
-KNOWN PROBLEMS:
+On MacOSX both the 0.2 and 0.1 bindings seem work on 
+their respective libraries.
+
+On Windows I've not been able to get the 0.2 bindings to work,
+so go with Haskell OpenVG 0.1 and ShivaVG-0.2.0.
+
+
+
+OTHER PROBLEMS:
 
 MacOSX - runhaskell / GHCi freeze the shell when you try to run
 the example TestVgu.hs. You will have to compile it first.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,5 @@
+#!/usr/bin/env runhaskell
+
+import Distribution.Simple
+
+main = defaultMain
diff --git a/Setup.lhs b/Setup.lhs
deleted file mode 100644
--- a/Setup.lhs
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env runhaskell
-> import Distribution.Simple
-> main = defaultMain
diff --git a/src/Graphics/Rendering/OpenVG.hs b/src/Graphics/Rendering/OpenVG.hs
--- a/src/Graphics/Rendering/OpenVG.hs
+++ b/src/Graphics/Rendering/OpenVG.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/Util/Colors.hs b/src/Graphics/Rendering/OpenVG/Util/Colors.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenVG/Util/Colors.hs
@@ -0,0 +1,627 @@
+{-# OPTIONS -Wall #-}
+
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenVG.Util.Colors
+-- Copyright   :  (c) Stephen Tetley 2009
+-- License     :  BSD3
+--
+-- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
+-- Stability   :  highly unstable
+-- Portability :  GHC
+--
+-- Colour definitions named with the SVG \'named colours\', but
+-- defining OpenGL colours. 
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenVG.Util.Colors (
+    -- * Named colours
+    aliceblue, 
+    antiquewhite,
+    aqua,
+    aquamarine,
+    azure,
+    beige,
+    bisque,
+    black,
+    blanchedalmond,
+    blue,
+    blueviolet,
+    brown,
+    burlywood,
+    cadetblue,
+    chartreuse,
+    chocolate,
+    coral,
+    cornflowerblue,
+    cornsilk,
+    crimson,
+    cyan,
+    darkblue,
+    darkcyan,
+    darkgoldenrod,
+    darkgray,
+    darkgreen,
+    darkgrey,
+    darkkhaki,
+    darkmagenta,
+    darkolivegreen,
+    darkorange,
+    darkorchid,
+    darkred,
+    darksalmon,
+    darkseagreen,
+    darkslateblue,
+    darkslategray,
+    darkslategrey,
+    darkturquoise,
+    darkviolet,
+    deeppink,
+    deepskyblue,
+    dimgray,
+    dimgrey,
+    dodgerblue,
+    firebrick,
+    floralwhite,
+    forestgreen,
+    fuchsia,
+    gainsboro,
+    ghostwhite,
+    gold,
+    goldenrod,
+    gray,
+    grey,
+    green,
+    greenyellow,
+    honeydew,
+    hotpink,
+    indianred,
+    indigo,
+    ivory,
+    khaki,
+    lavender,
+    lavenderblush,
+    lawngreen,
+    lemonchiffon,
+    lightblue,
+    lightcoral,
+    lightcyan,
+    lightgoldenrodyellow,
+    lightgray,
+    lightgreen,
+    lightgrey,
+    lightpink,
+    lightsalmon,
+    lightseagreen,
+    lightskyblue,
+    lightslategray,
+    lightslategrey,
+    lightsteelblue,
+    lightyellow,
+    lime,
+    limegreen,
+    linen,
+    magenta,
+    maroon,
+    mediumaquamarine,
+    mediumblue,
+    mediumorchid,
+    mediumpurple,
+    mediumseagreen,
+    mediumslateblue,
+    mediumspringgreen,
+    mediumturquoise,
+    mediumvioletred,
+    midnightblue,
+    mintcream,
+    mistyrose,
+    moccasin,
+    navajowhite,
+    navy,
+    oldlace,
+    olive,
+    olivedrab,
+    orange,
+    orangered,
+    orchid,
+    palegoldenrod,
+    palegreen,
+    paleturquoise,
+    palevioletred,
+    papayawhip,
+    peachpuff,
+    peru,
+    pink,
+    plum,
+    powderblue,
+    purple,
+    red,
+    rosybrown,
+    royalblue,
+    saddlebrown,
+    salmon,
+    sandybrown,
+    seagreen,
+    seashell,
+    sienna,
+    silver,
+    skyblue,
+    slateblue,
+    slategray,
+    slategrey,
+    snow,
+    springgreen,
+    steelblue,
+    tan,
+    teal,
+    thistle,
+    tomato,
+    turquoise,
+    violet,
+    wheat,
+    white,
+    whitesmoke,
+    yellow,
+    yellowgreen
+) where
+
+import Graphics.Rendering.OpenGL.GL ( 
+    Color4(..), Color3(..), GLfloat )
+
+import Prelude hiding ( tan )
+
+class RGB t where rgb :: GLfloat -> GLfloat -> GLfloat -> t GLfloat
+
+instance RGB Color4 where
+  rgb r g b = Color4 (r / 255.0) (g / 255.0) (b / 255.0) 1.0
+
+instance RGB Color3 where
+  rgb r g b = Color3 (r / 255.0) (g / 255.0) (b / 255.0)
+  
+  
+aliceblue           :: RGB c => c GLfloat
+aliceblue           = rgb 240 248 255
+
+antiquewhite        :: RGB c => c GLfloat
+antiquewhite        = rgb 250 235 215
+
+aqua                :: RGB c => c GLfloat
+aqua                = rgb 0 255 255
+
+aquamarine          :: RGB c => c GLfloat
+aquamarine          = rgb 127 255 212
+
+azure               :: RGB c => c GLfloat
+azure               = rgb 240 255 255
+
+beige               :: RGB c => c GLfloat  
+beige               = rgb 245 245 220
+
+bisque              :: RGB c => c GLfloat
+bisque              = rgb 255 228 196
+
+black               :: RGB c => c GLfloat
+black               = rgb  0 0 0
+
+blanchedalmond      :: RGB c => c GLfloat
+blanchedalmond      = rgb 255 235 205
+
+blue                :: RGB c => c GLfloat
+blue                = rgb  0 0 255
+
+blueviolet          :: RGB c => c GLfloat
+blueviolet          = rgb 138 43 226
+
+brown               :: RGB c => c GLfloat
+brown               = rgb 165 42 42
+
+burlywood           :: RGB c => c GLfloat
+burlywood           = rgb 222 184 135
+
+cadetblue           :: RGB c => c GLfloat
+cadetblue           = rgb  95 158 160
+
+chartreuse          :: RGB c => c GLfloat
+chartreuse          = rgb 127 255 0
+
+chocolate           :: RGB c => c GLfloat
+chocolate           = rgb 210 105 30
+
+coral               :: RGB c => c GLfloat
+coral               = rgb 255 127 80
+
+cornflowerblue      :: RGB c => c GLfloat
+cornflowerblue      = rgb 100 149 237
+
+cornsilk            :: RGB c => c GLfloat
+cornsilk            = rgb 255 248 220
+
+crimson             :: RGB c => c GLfloat
+crimson             = rgb 220 20 60
+
+cyan                :: RGB c => c GLfloat
+cyan                = rgb  0 255 255
+
+darkblue            :: RGB c => c GLfloat
+darkblue            = rgb  0 0 139
+
+darkcyan            :: RGB c => c GLfloat
+darkcyan            = rgb  0 139 139
+
+darkgoldenrod       :: RGB c => c GLfloat
+darkgoldenrod       = rgb 184 134 11
+
+darkgray            :: RGB c => c GLfloat
+darkgray            = rgb 169 169 169
+
+darkgreen           :: RGB c => c GLfloat
+darkgreen           = rgb  0 100 0
+
+darkgrey            :: RGB c => c GLfloat
+darkgrey            = rgb 169 169 169
+
+darkkhaki           :: RGB c => c GLfloat
+darkkhaki           = rgb 189 183 107
+
+darkmagenta         :: RGB c => c GLfloat
+darkmagenta         = rgb 139 0 139
+
+darkolivegreen      :: RGB c => c GLfloat
+darkolivegreen      = rgb  85 107 47
+
+darkorange          :: RGB c => c GLfloat
+darkorange          = rgb 255 140 0
+
+darkorchid          :: RGB c => c GLfloat
+darkorchid          = rgb 153 50 204
+
+darkred             :: RGB c => c GLfloat
+darkred             = rgb 139 0 0
+
+darksalmon          :: RGB c => c GLfloat
+darksalmon          = rgb 233 150 122
+
+darkseagreen        :: RGB c => c GLfloat
+darkseagreen        = rgb 143 188 143
+
+darkslateblue       :: RGB c => c GLfloat
+darkslateblue       = rgb  72 61 139
+
+darkslategray       :: RGB c => c GLfloat
+darkslategray       = rgb  47 79 79
+
+darkslategrey       :: RGB c => c GLfloat
+darkslategrey       = rgb  47 79 79
+
+darkturquoise       :: RGB c => c GLfloat
+darkturquoise       = rgb  0 206 209
+
+darkviolet          :: RGB c => c GLfloat
+darkviolet          = rgb 148 0 211
+
+deeppink            :: RGB c => c GLfloat
+deeppink            = rgb 255 20 147
+
+deepskyblue         :: RGB c => c GLfloat
+deepskyblue         = rgb  0 191 255
+
+dimgray             :: RGB c => c GLfloat
+dimgray             = rgb 105 105 105
+
+dimgrey             :: RGB c => c GLfloat
+dimgrey             = rgb 105 105 105
+
+dodgerblue          :: RGB c => c GLfloat
+dodgerblue          = rgb  30 144 255
+
+firebrick           :: RGB c => c GLfloat
+firebrick           = rgb 178 34 34
+
+floralwhite         :: RGB c => c GLfloat
+floralwhite         = rgb 255 250 240
+
+forestgreen         :: RGB c => c GLfloat
+forestgreen         = rgb  34 139 34
+
+fuchsia             :: RGB c => c GLfloat
+fuchsia             = rgb 255 0 255
+
+gainsboro           :: RGB c => c GLfloat
+gainsboro           = rgb 220 220 220
+
+ghostwhite          :: RGB c => c GLfloat
+ghostwhite          = rgb 248 248 255
+
+gold                :: RGB c => c GLfloat
+gold                = rgb 255 215 0
+
+goldenrod           :: RGB c => c GLfloat
+goldenrod           = rgb 218 165 32
+
+gray                :: RGB c => c GLfloat
+gray                = rgb 128 128 128
+
+grey                :: RGB c => c GLfloat
+grey                = rgb 128 128 128
+
+green               :: RGB c => c GLfloat
+green               = rgb  0 128 0
+
+greenyellow         :: RGB c => c GLfloat
+greenyellow         = rgb 173 255 47
+
+honeydew            :: RGB c => c GLfloat
+honeydew            = rgb 240 255 240
+
+hotpink             :: RGB c => c GLfloat
+hotpink             = rgb 255 105 180
+
+indianred           :: RGB c => c GLfloat
+indianred           = rgb 205 92 92
+
+indigo              :: RGB c => c GLfloat
+indigo              = rgb  75 0 130
+
+ivory               :: RGB c => c GLfloat
+ivory               = rgb 255 255 240
+
+khaki               :: RGB c => c GLfloat
+khaki               = rgb 240 230 140
+
+lavender            :: RGB c => c GLfloat
+lavender            = rgb 230 230 250
+
+lavenderblush       :: RGB c => c GLfloat
+lavenderblush       = rgb 255 240 245
+
+lawngreen           :: RGB c => c GLfloat
+lawngreen           = rgb 124 252 0
+
+lemonchiffon        :: RGB c => c GLfloat
+lemonchiffon        = rgb 255 250 205
+
+lightblue           :: RGB c => c GLfloat
+lightblue           = rgb 173 216 230
+
+lightcoral          :: RGB c => c GLfloat
+lightcoral          = rgb 240 128 128
+
+lightcyan           :: RGB c => c GLfloat
+lightcyan           = rgb 224 255 255
+
+lightgoldenrodyellow  :: RGB c => c GLfloat
+lightgoldenrodyellow  = rgb 250 250 210
+
+lightgray           :: RGB c => c GLfloat
+lightgray           = rgb 211 211 211
+
+lightgreen          :: RGB c => c GLfloat
+lightgreen          = rgb 144 238 144
+
+lightgrey           :: RGB c => c GLfloat
+lightgrey           = rgb 211 211 211
+
+lightpink           :: RGB c => c GLfloat
+lightpink           = rgb 255 182 193
+
+lightsalmon         :: RGB c => c GLfloat
+lightsalmon         = rgb 255 160 122
+
+lightseagreen       :: RGB c => c GLfloat
+lightseagreen       = rgb  32 178 170
+
+lightskyblue        :: RGB c => c GLfloat
+lightskyblue        = rgb 135 206 250
+
+lightslategray      :: RGB c => c GLfloat
+lightslategray      = rgb 119 136 153
+
+lightslategrey      :: RGB c => c GLfloat
+lightslategrey      = rgb 119 136 153
+
+lightsteelblue      :: RGB c => c GLfloat
+lightsteelblue      = rgb 176 196 222
+
+lightyellow         :: RGB c => c GLfloat
+lightyellow         = rgb 255 255 224
+
+lime                :: RGB c => c GLfloat
+lime                = rgb  0 255 0
+
+limegreen           :: RGB c => c GLfloat
+limegreen           = rgb  50 205 50
+
+linen               :: RGB c => c GLfloat
+linen               = rgb 250 240 230
+
+magenta             :: RGB c => c GLfloat
+magenta             = rgb 255 0 255
+
+maroon              :: RGB c => c GLfloat
+maroon              = rgb 128 0 0
+
+mediumaquamarine    :: RGB c => c GLfloat
+mediumaquamarine    = rgb 102 205 170
+
+mediumblue          :: RGB c => c GLfloat
+mediumblue          = rgb 0 0 205
+
+mediumorchid        :: RGB c => c GLfloat
+mediumorchid        = rgb 186 85 211
+
+mediumpurple        :: RGB c => c GLfloat
+mediumpurple        = rgb 147 112 219
+
+mediumseagreen      :: RGB c => c GLfloat
+mediumseagreen      = rgb 60 179 113
+
+mediumslateblue     :: RGB c => c GLfloat
+mediumslateblue     = rgb 123 104 238
+
+mediumspringgreen   :: RGB c => c GLfloat
+mediumspringgreen   = rgb 0 250 154
+
+mediumturquoise     :: RGB c => c GLfloat
+mediumturquoise     = rgb 72 209 204
+
+mediumvioletred     :: RGB c => c GLfloat
+mediumvioletred     = rgb 199 21 133
+
+midnightblue        :: RGB c => c GLfloat
+midnightblue        = rgb  25 25 112
+
+mintcream           :: RGB c => c GLfloat
+mintcream           = rgb 245 255 250
+
+mistyrose           :: RGB c => c GLfloat
+mistyrose           = rgb 255 228 225
+
+moccasin            :: RGB c => c GLfloat
+moccasin            = rgb 255 228 181
+
+navajowhite         :: RGB c => c GLfloat
+navajowhite         = rgb 255 222 173
+
+navy                :: RGB c => c GLfloat
+navy                = rgb  0 0 128
+
+oldlace             :: RGB c => c GLfloat
+oldlace             = rgb 253 245 230
+
+olive               :: RGB c => c GLfloat
+olive               = rgb 128 128 0
+
+olivedrab           :: RGB c => c GLfloat
+olivedrab           = rgb 107 142 35
+
+orange              :: RGB c => c GLfloat
+orange              = rgb 255 165 0
+
+orangered           :: RGB c => c GLfloat
+orangered           = rgb 255 69 0
+
+orchid              :: RGB c => c GLfloat
+orchid              = rgb 218 112 214
+
+palegoldenrod       :: RGB c => c GLfloat
+palegoldenrod       = rgb 238 232 170
+
+palegreen           :: RGB c => c GLfloat
+palegreen           = rgb 152 251 152
+
+paleturquoise       :: RGB c => c GLfloat
+paleturquoise       = rgb 175 238 238
+
+palevioletred       :: RGB c => c GLfloat
+palevioletred       = rgb 219 112 147
+
+papayawhip          :: RGB c => c GLfloat
+papayawhip          = rgb 255 239 213
+
+peachpuff           :: RGB c => c GLfloat
+peachpuff           = rgb 255 218 185
+
+peru                :: RGB c => c GLfloat
+peru                = rgb 205 133 63
+
+pink                :: RGB c => c GLfloat
+pink                = rgb 255 192 203
+
+plum                :: RGB c => c GLfloat
+plum                = rgb 221 160 221
+
+powderblue          :: RGB c => c GLfloat
+powderblue          = rgb 176 224 230
+
+purple              :: RGB c => c GLfloat
+purple              = rgb 128 0 128
+
+red                 :: RGB c => c GLfloat
+red                 = rgb 255 0 0
+
+rosybrown           :: RGB c => c GLfloat
+rosybrown           = rgb 188 143 143
+
+royalblue           :: RGB c => c GLfloat
+royalblue           = rgb  65 105 225
+
+saddlebrown         :: RGB c => c GLfloat
+saddlebrown         = rgb 139 69 19
+
+salmon              :: RGB c => c GLfloat
+salmon              = rgb 250 128 114
+
+sandybrown          :: RGB c => c GLfloat
+sandybrown          = rgb 244 164 96
+
+seagreen            :: RGB c => c GLfloat
+seagreen            = rgb  46 139 87
+
+seashell            :: RGB c => c GLfloat
+seashell            = rgb 255 245 238
+
+sienna              :: RGB c => c GLfloat
+sienna              = rgb 160 82 45
+
+silver              :: RGB c => c GLfloat
+silver              = rgb 192 192 192
+
+skyblue             :: RGB c => c GLfloat
+skyblue             = rgb 135 206 235
+
+slateblue           :: RGB c => c GLfloat
+slateblue           = rgb 106 90 205
+
+slategray           :: RGB c => c GLfloat
+slategray           = rgb 112 128 144
+
+slategrey           :: RGB c => c GLfloat
+slategrey           = rgb 112 128 144
+
+snow                :: RGB c => c GLfloat
+snow                = rgb 255 250 250
+
+springgreen         :: RGB c => c GLfloat
+springgreen         = rgb  0 255 127
+
+steelblue           :: RGB c => c GLfloat
+steelblue           = rgb  70 130 180
+
+tan                 :: RGB c => c GLfloat
+tan                 = rgb 210 180 140
+
+teal                :: RGB c => c GLfloat
+teal                = rgb  0 128 128
+
+thistle             :: RGB c => c GLfloat
+thistle             = rgb 216 191 216
+
+tomato              :: RGB c => c GLfloat
+tomato              = rgb 255 99 71
+
+turquoise           :: RGB c => c GLfloat
+turquoise           = rgb  64 224 208
+
+violet              :: RGB c => c GLfloat
+violet              = rgb 238 130 238
+
+wheat               :: RGB c => c GLfloat
+wheat               = rgb 245 222 179
+
+white               :: RGB c => c GLfloat
+white               = rgb 255 255 255
+
+whitesmoke          :: RGB c => c GLfloat
+whitesmoke          = rgb 245 245 245
+
+yellow              :: RGB c => c GLfloat
+yellow              = rgb 255 255 0
+
+yellowgreen         :: RGB c => c GLfloat
+yellowgreen         = rgb 154 205 50
+
+
+
+
+
diff --git a/src/Graphics/Rendering/OpenVG/Util/PathCommands.hs b/src/Graphics/Rendering/OpenVG/Util/PathCommands.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/Rendering/OpenVG/Util/PathCommands.hs
@@ -0,0 +1,173 @@
+{-# OPTIONS -Wall #-}
+
+--------------------------------------------------------------------------------
+-- |
+-- Module      :  Graphics.Rendering.OpenVG.Util.PathCommands
+-- Copyright   :  (c) Stephen Tetley 2009
+-- License     :  BSD3
+--
+-- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
+-- Stability   :  highly unstable
+-- Portability :  GHC
+--
+-- Path Segment commands corresponding to section 8.5.2
+--
+--------------------------------------------------------------------------------
+
+module Graphics.Rendering.OpenVG.Util.PathCommands (
+  -- * Translate Path Commands
+  pathData,
+  
+  -- * Path commands
+  closePath,
+  moveAbs, moveRel,
+  lineAbs, lineRel,
+  hlineAbs, hlineRel,
+  vlineAbs, vlineRel,
+  quadraticAbs, quadraticRel,
+  cubicAbs, cubicRel,
+  smoothQuadAbs, smoothQuadRel,
+  smoothCubicAbs, smoothCubicRel,
+  smallCcwArcAbs, smallCcwArcRel,
+  smallCwArcAbs, smallCwArcRel,
+  largeCcwArcAbs, largeCcwArcRel,
+  largeCwArcAbs, largeCwArcRel,
+  
+  
+) where
+
+import Graphics.Rendering.OpenVG.VG.Paths
+
+data SegmentCommand a = 
+     CLOSE_PATH
+   | MOVE_TO    PathType a a
+   | LINE_TO    PathType a a
+   | HLINE_TO   PathType a
+   | VLINE_TO   PathType a
+   | QUAD_TO    PathType a a a a
+   | CUBIC_TO   PathType a a a a a a
+   | SQUAD_TO   PathType a a
+   | SCUBIC_TO  PathType a a a a
+   | SCCWARC_TO PathType a a a a a
+   | SCWARC_TO  PathType a a a a a
+   | LCCWARC_TO PathType a a a a a
+   | LCWARC_TO  PathType a a a a a
+   deriving ( Eq, Show )
+
+pathData :: StorablePathData a => [SegmentCommand a] -> ([PathCommand], [a])
+pathData = foldr fn ([],[]) where
+  fn :: SegmentCommand a -> ([PathCommand], [a]) -> ([PathCommand], [a])
+  fn CLOSE_PATH                     (xs,ys) = (ClosePath:xs,ys) 
+  fn (MOVE_TO t x y)                (xs,ys) 
+          | t == Absolute                   = (MoveToAbs : xs, x:y:ys)
+          | otherwise                       = (MoveToRel : xs, x:y:ys)
+  fn (LINE_TO t x y)                (xs,ys) 
+          | t == Absolute                   = (LineToAbs : xs, x:y:ys)
+          | otherwise                       = (LineToRel : xs, x:y:ys)
+  fn (HLINE_TO t x)                 (xs,ys)
+          | t == Absolute                   = (HLineToAbs : xs, x:ys)
+          | otherwise                       = (HLineToRel : xs, x:ys)
+  fn (VLINE_TO t y)                 (xs,ys)
+          | t == Absolute                   = (VLineToAbs : xs, y:ys)
+          | otherwise                       = (VLineToRel : xs, y:ys)
+  fn (QUAD_TO t x y x' y')          (xs,ys)
+          | t == Absolute                   = (QuadToAbs : xs, x:y:x':y':ys)
+          | otherwise                       = (QuadToRel : xs, x:y:x':y':ys)
+  fn (CUBIC_TO t x y x' y' x'' y'') (xs,ys)
+          | t == Absolute                   = (CubicToAbs : xs, x:y:x':y':x'':y'':ys)
+          | otherwise                       = (CubicToRel : xs, x:y:x':y':x'':y'':ys)
+  fn (SQUAD_TO t x y)               (xs,ys)
+          | t == Absolute                   = (SQuadToAbs : xs, x:y:ys)
+          | otherwise                       = (SQuadToRel : xs, x:y:ys)
+  fn (SCUBIC_TO t x y x' y')        (xs,ys)
+          | t == Absolute                   = (SCubicToAbs : xs, x:y:x':y':ys)
+          | otherwise                       = (SCubicToRel : xs, x:y:x':y':ys)
+  fn (SCCWARC_TO t rh rv rt x y)    (xs,ys)
+          | t == Absolute                   = (SCCWArcToAbs : xs, rh:rv:rt:x:y:ys)
+          | otherwise                       = (SCCWArcToRel : xs, rh:rv:rt:x:y:ys)
+  fn (SCWARC_TO t rh rv rt x y)     (xs,ys)
+          | t == Absolute                   = (SCWArcToAbs : xs, rh:rv:rt:x:y:ys)
+          | otherwise                       = (SCWArcToRel : xs, rh:rv:rt:x:y:ys)
+  fn (LCCWARC_TO t rh rv rt x y)    (xs,ys)
+          | t == Absolute                   = (LCCWArcToAbs : xs, rh:rv:rt:x:y:ys)
+          | otherwise                       = (LCCWArcToRel : xs, rh:rv:rt:x:y:ys)
+  fn (LCWARC_TO t rh rv rt x y)     (xs,ys)
+          | t == Absolute                   = (LCWArcToAbs : xs, rh:rv:rt:x:y:ys)
+          | otherwise                       = (LCWArcToRel : xs, rh:rv:rt:x:y:ys)
+
+
+closePath :: SegmentCommand a
+closePath = CLOSE_PATH
+
+moveAbs :: StorablePathData a => a -> a -> SegmentCommand a
+moveAbs = MOVE_TO Absolute 
+
+moveRel :: StorablePathData a => a -> a -> SegmentCommand a
+moveRel = MOVE_TO Relative 
+
+lineAbs :: StorablePathData a => a -> a -> SegmentCommand a
+lineAbs = LINE_TO Absolute 
+
+lineRel :: StorablePathData a => a -> a -> SegmentCommand a
+lineRel = LINE_TO Relative 
+
+hlineAbs :: StorablePathData a => a -> SegmentCommand a
+hlineAbs = VLINE_TO Absolute 
+
+hlineRel :: StorablePathData a => a -> SegmentCommand a
+hlineRel = HLINE_TO Relative 
+
+vlineAbs :: StorablePathData a => a -> SegmentCommand a
+vlineAbs = VLINE_TO Absolute 
+
+vlineRel :: StorablePathData a => a -> SegmentCommand a
+vlineRel = VLINE_TO Relative 
+
+quadraticAbs :: StorablePathData a => a -> a -> a -> a -> SegmentCommand a
+quadraticAbs = QUAD_TO Absolute
+
+quadraticRel :: StorablePathData a => a -> a -> a -> a -> SegmentCommand a
+quadraticRel = QUAD_TO Relative
+
+cubicAbs :: StorablePathData a => a -> a -> a -> a -> a -> a -> SegmentCommand a
+cubicAbs = CUBIC_TO Absolute
+
+cubicRel :: StorablePathData a => a -> a -> a -> a -> a -> a -> SegmentCommand a
+cubicRel = CUBIC_TO Relative
+
+smoothQuadAbs :: StorablePathData a => a -> a -> SegmentCommand a
+smoothQuadAbs = SQUAD_TO Absolute
+
+smoothQuadRel :: StorablePathData a => a -> a -> SegmentCommand a
+smoothQuadRel = SQUAD_TO Relative
+
+smoothCubicAbs :: StorablePathData a => a -> a -> a -> a -> SegmentCommand a
+smoothCubicAbs = SCUBIC_TO Absolute
+
+smoothCubicRel :: StorablePathData a => a -> a -> a -> a -> SegmentCommand a
+smoothCubicRel = SCUBIC_TO Relative
+
+smallCcwArcAbs :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+smallCcwArcAbs = SCCWARC_TO Absolute
+
+smallCcwArcRel :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+smallCcwArcRel = SCCWARC_TO Relative
+
+smallCwArcAbs :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+smallCwArcAbs = SCWARC_TO Absolute
+
+smallCwArcRel :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+smallCwArcRel = SCWARC_TO Relative
+
+largeCcwArcAbs :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+largeCcwArcAbs = LCCWARC_TO Absolute
+
+largeCcwArcRel :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+largeCcwArcRel = LCCWARC_TO Relative
+
+largeCwArcAbs :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+largeCwArcAbs = LCWARC_TO Absolute
+
+largeCwArcRel :: StorablePathData a => a -> a -> a -> a -> a -> SegmentCommand a
+largeCwArcRel = LCWARC_TO Relative
+
diff --git a/src/Graphics/Rendering/OpenVG/VG.hs b/src/Graphics/Rendering/OpenVG/VG.hs
--- a/src/Graphics/Rendering/OpenVG/VG.hs
+++ b/src/Graphics/Rendering/OpenVG/VG.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
@@ -14,6 +14,7 @@
 -- (version 1.0.1).
 -- The implementation targets the Shiva-VG implementation which is not 
 -- complete. Image Filters and Querying Hardware are not implemented. 
+--
 --------------------------------------------------------------------------------
 
 module Graphics.Rendering.OpenVG.VG (
diff --git a/src/Graphics/Rendering/OpenVG/VG/BasicTypes.hsc b/src/Graphics/Rendering/OpenVG/VG/BasicTypes.hsc
--- a/src/Graphics/Rendering/OpenVG/VG/BasicTypes.hsc
+++ b/src/Graphics/Rendering/OpenVG/VG/BasicTypes.hsc
@@ -5,8 +5,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.BasicTypes
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
@@ -39,9 +39,10 @@
 
 #include <vg/openvg.h>
 
-import Data.Word ( Word32 )
 import Graphics.Rendering.OpenGL.GL.BasicTypes
 
+import Foreign.Ptr
+
 type VGfloat    = GLfloat
 type VGbyte     = GLbyte
 type VGubyte    = GLubyte
@@ -74,10 +75,12 @@
     | otherwise = error ("unmarshalBool: illegal value " ++ show x)
   
     
-type VGHandle = #type VGHandle
+newtype VGHandle = VGHandle (Ptr ())
 
+
 vg_INVALID_HANDLE :: VGHandle 
-vg_INVALID_HANDLE = #const VG_INVALID_HANDLE
+vg_INVALID_HANDLE = VGHandle nullPtr
+
 
 type VGPath  = VGHandle
 type VGImage = VGHandle
diff --git a/src/Graphics/Rendering/OpenVG/VG/Blending.hs b/src/Graphics/Rendering/OpenVG/VG/Blending.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Blending.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Blending.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Blending
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/CFunDecls.hsc b/src/Graphics/Rendering/OpenVG/VG/CFunDecls.hsc
--- a/src/Graphics/Rendering/OpenVG/VG/CFunDecls.hsc
+++ b/src/Graphics/Rendering/OpenVG/VG/CFunDecls.hsc
@@ -5,8 +5,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.CFunDecls
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
@@ -40,40 +40,40 @@
 type VGTilingMode'          = VGenum
 
 
-foreign import ccall unsafe "vg/openvg.h vgGetError" 
+foreign import ccall unsafe "vg/openvg.h vgGetError"
     vgGetError :: IO VGErrorCode'
 
 
 
-foreign import ccall unsafe "vg/openvg.h vgFlush" 
+foreign import ccall unsafe "vg/openvg.h vgFlush"
     vgFlush :: IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgFinish" 
+
+foreign import ccall unsafe "vg/openvg.h vgFinish"
     vgFinish ::  IO ()
-    
-        
+
+
 -- getters and setters
-foreign import ccall unsafe "vg/openvg.h vgSeti" 
+foreign import ccall unsafe "vg/openvg.h vgSeti"
     vgSeti :: VGenum -> VGint -> IO ()
-    
+
 foreign import ccall unsafe "vg/openvg.h vgSetf"
     vgSetf :: VGenum -> VGfloat -> IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgSetfv" 
+
+foreign import ccall unsafe "vg/openvg.h vgSetfv"
     vgSetfv :: VGenum -> VGint -> Ptr VGfloat -> IO ()
-    
+
 foreign import ccall unsafe "vg/openvg.h vgSetiv"
     vgSetiv :: VGenum -> VGint -> Ptr VGint -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgGetf" 
+foreign import ccall unsafe "vg/openvg.h vgGetf"
     vgGetf :: VGenum -> IO VGfloat
-    
+
 foreign import ccall unsafe "vg/openvg.h vgGeti"
     vgGeti :: VGenum -> IO VGint
 
 foreign import ccall unsafe "vg/openvg.h vgGetVectorSize"
     vgGetVectorSize :: VGenum -> IO VGint
-    
+
 foreign import ccall unsafe "vg/openvg.h vgGetfv"
     vgGetfv :: VGenum -> VGint -> IO (Ptr VGfloat)
 
@@ -92,355 +92,348 @@
 foreign import ccall unsafe "vg/openvg.h vgSetParameteriv"
     vgSetParameteriv :: VGHandle -> VGenum -> VGint -> Ptr VGint -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgGetParameterf"  
-    vgGetParameterf :: VGHandle -> VGenum -> IO VGfloat                                                             
+foreign import ccall unsafe "vg/openvg.h vgGetParameterf"
+    vgGetParameterf :: VGHandle -> VGenum -> IO VGfloat
 
-foreign import ccall unsafe "vg/openvg.h vgGetParameteri"  
+foreign import ccall unsafe "vg/openvg.h vgGetParameteri"
     vgGetParameteri :: VGHandle -> VGenum -> IO VGint
 
-foreign import ccall unsafe "vg/openvg.h vgGetParameterVectorSize"  
+foreign import ccall unsafe "vg/openvg.h vgGetParameterVectorSize"
     vgGetParameterVectorSize :: VGHandle -> VGenum -> IO VGint
 
-foreign import ccall unsafe "vg/openvg.h vgGetParameterfv"  
+foreign import ccall unsafe "vg/openvg.h vgGetParameterfv"
     vgGetParameterfv :: VGHandle -> VGenum -> VGint -> IO (Ptr VGfloat)
 
-foreign import ccall unsafe "vg/openvg.h vgGetParameteriv"  
+foreign import ccall unsafe "vg/openvg.h vgGetParameteriv"
     vgGetParameteriv :: VGHandle -> VGenum -> VGint -> IO (Ptr VGint)
 
-    
+
 -- | Matrix Manipulation
 -- set the current matrix to the identity matrix
-foreign import ccall unsafe "vg/openvg.h vgLoadIdentity"  
+foreign import ccall unsafe "vg/openvg.h vgLoadIdentity"
     vgLoadIdentity :: IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgLoadMatrix"  
+
+foreign import ccall unsafe "vg/openvg.h vgLoadMatrix"
     vgLoadMatrix :: Ptr VGfloat -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgGetMatrix"  
+foreign import ccall unsafe "vg/openvg.h vgGetMatrix"
     vgGetMatrix :: IO (Ptr VGfloat)
 
--- multiple the current matrix by the given matrix    
-foreign import ccall unsafe "vg/openvg.h vgMultMatrix"  
+-- multiple the current matrix by the given matrix
+foreign import ccall unsafe "vg/openvg.h vgMultMatrix"
     vgMultMatrix :: Ptr VGfloat -> IO ()
-    
 
-foreign import ccall unsafe "vg/openvg.h vgTranslate"  
+
+foreign import ccall unsafe "vg/openvg.h vgTranslate"
     vgTranslate :: VGfloat -> VGfloat -> IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgScale"  
+
+foreign import ccall unsafe "vg/openvg.h vgScale"
     vgScale :: VGfloat -> VGfloat -> IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgShear"  
+
+foreign import ccall unsafe "vg/openvg.h vgShear"
     vgShear :: VGfloat -> VGfloat -> IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgRotate"  
+
+foreign import ccall unsafe "vg/openvg.h vgRotate"
     vgRotate :: VGfloat -> IO ()
 
 -- | Masking and Clearing
-{-
--- TODO vgMask seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgMask"  
-    vgMask :: VGImage -> VGMaskOperation' -> 
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgMask"
+    vgMask :: VGImage -> VGMaskOperation' ->
                   VGint -> VGint -> VGint -> VGint -> IO ()
--}
-    
-foreign import ccall unsafe "vg/openvg.h vgClear"  
+
+
+foreign import ccall unsafe "vg/openvg.h vgClear"
     vgClear :: VGint -> VGint -> VGint -> VGint -> IO ()
 
 
 
 -- | Paths
-foreign import ccall unsafe "vg/openvg.h vgCreatePath"  
-    vgCreatePath :: VGint 
-                 -> VGPathDatatype' 
-                 -> VGfloat 
+foreign import ccall unsafe "vg/openvg.h vgCreatePath"
+    vgCreatePath :: VGint
+                 -> VGPathDatatype'
                  -> VGfloat
-                 -> VGint 
-                 -> VGint 
-                 -> VGbitfield 
+                 -> VGfloat
+                 -> VGint
+                 -> VGint
+                 -> VGbitfield
                  -> IO VGPath
-    
 
 
-foreign import ccall unsafe "vg/openvg.h vgClearPath"  
+
+foreign import ccall unsafe "vg/openvg.h vgClearPath"
     vgClearPath :: VGPath -> VGbitfield -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgDestroyPath"  
+foreign import ccall unsafe "vg/openvg.h vgDestroyPath"
     vgDestroyPath :: VGPath -> IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgRemovePathCapabilities"  
+
+foreign import ccall unsafe "vg/openvg.h vgRemovePathCapabilities"
     vgRemovePathCapabilities :: VGPath -> VGbitfield -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgGetPathCapabilities"  
+foreign import ccall unsafe "vg/openvg.h vgGetPathCapabilities"
     vgGetPathCapabilities :: VGPath -> IO VGbitfield
-    
-foreign import ccall unsafe "vg/openvg.h vgAppendPath"  
+
+foreign import ccall unsafe "vg/openvg.h vgAppendPath"
     vgAppendPath :: VGPath -> VGPath -> IO ()
 
--- append the data in /Ptr a/ to the path handle /VGPath/.    
-foreign import ccall unsafe "vg/openvg.h vgAppendPathData"  
+-- append the data in /Ptr a/ to the path handle /VGPath/.
+foreign import ccall unsafe "vg/openvg.h vgAppendPathData"
     vgAppendPathData :: VGPath -> VGint -> Ptr VGubyte -> Ptr a -> IO ()
 
 
-foreign import ccall unsafe "vg/openvg.h vgModifyPathCoords"  
+foreign import ccall unsafe "vg/openvg.h vgModifyPathCoords"
     vgModifyPathCoords :: VGPath -> VGint -> VGint -> Ptr a -> IO ()
-    
 
-foreign import ccall unsafe "vg/openvg.h vgTransformPath"  
+
+foreign import ccall unsafe "vg/openvg.h vgTransformPath"
     vgTransformPath :: VGPath -> VGPath -> IO ()
-    
-    
-foreign import ccall unsafe "vg/openvg.h vgInterpolatePath"  
-    vgInterpolatePath :: VGPath 
-                      -> VGPath 
-                      -> VGPath 
-                      -> VGfloat 
+
+
+foreign import ccall unsafe "vg/openvg.h vgInterpolatePath"
+    vgInterpolatePath :: VGPath
+                      -> VGPath
+                      -> VGPath
+                      -> VGfloat
                       -> IO VGboolean
-{-
--- TODO vgPathLength seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgPathLength"  
-    vgPathLength :: VGPath -> VGint -> VGint -> IO VGfloat   
--}
 
-{-
--- TODO vgPointAlongPath seems to be missing in the dll... ?                                
-foreign import ccall unsafe "vg/openvg.h vgPointAlongPath"  
-    vgPointAlongPath :: VGPath 
-                     -> VGint 
-                     -> VGint 
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgPathLength"
+    vgPathLength :: VGPath -> VGint -> VGint -> IO VGfloat
+
+
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgPointAlongPath"
+    vgPointAlongPath :: VGPath
+                     -> VGint
+                     -> VGint
                      -> VGfloat
                      -> Ptr VGfloat
                      -> Ptr VGfloat
                      -> Ptr VGfloat
                      -> Ptr VGfloat
-                     -> IO ()  
--}
+                     -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgPathBounds"  
-    vgPathBounds :: VGPath 
-                 -> Ptr VGfloat 
-                 -> Ptr VGfloat 
+
+foreign import ccall unsafe "vg/openvg.h vgPathBounds"
+    vgPathBounds :: VGPath
                  -> Ptr VGfloat
                  -> Ptr VGfloat
-                 -> IO () 
-                                                   
+                 -> Ptr VGfloat
+                 -> Ptr VGfloat
+                 -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgPathTransformedBounds"  
-    vgPathTransformedBounds :: VGPath 
-                            -> Ptr VGfloat 
-                            -> Ptr VGfloat 
+
+foreign import ccall unsafe "vg/openvg.h vgPathTransformedBounds"
+    vgPathTransformedBounds :: VGPath
                             -> Ptr VGfloat
                             -> Ptr VGfloat
-                            -> IO () 
+                            -> Ptr VGfloat
+                            -> Ptr VGfloat
+                            -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgDrawPath"  
+foreign import ccall unsafe "vg/openvg.h vgDrawPath"
     vgDrawPath :: VGPath -> VGbitfield -> IO ()
 
 
 
--- | Paint 
-foreign import ccall unsafe "vg/openvg.h vgCreatePaint"  
-    vgCreatePaint :: IO VGPaint    
+-- | Paint
+foreign import ccall unsafe "vg/openvg.h vgCreatePaint"
+    vgCreatePaint :: IO VGPaint
 
-foreign import ccall unsafe "vg/openvg.h vgDestroyPaint"  
+foreign import ccall unsafe "vg/openvg.h vgDestroyPaint"
     vgDestroyPaint :: VGPaint -> IO ()
-    
-foreign import ccall unsafe "vg/openvg.h vgSetPaint"  
+
+foreign import ccall unsafe "vg/openvg.h vgSetPaint"
     vgSetPaint :: VGPaint -> VGbitfield -> IO ()
 
 {-
 -- TODO vgGetPaint seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgGetPaint"  
+foreign import ccall unsafe "vg/openvg.h vgGetPaint"
     vgGetPaint :: VGPaintMode' -> IO VGPaint
 -}
 
 {-
 -- TODO vgSetColor seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgSetColor"  
+foreign import ccall unsafe "vg/openvg.h vgSetColor"
     vgSetColor :: VGPaint -> VGuint -> IO ()
 -}
 
 {-
 -- TODO vgGetColor seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgGetColor"  
+foreign import ccall unsafe "vg/openvg.h vgGetColor"
     vgGetColor :: VGPaint -> IO VGuint
 -}
 
-foreign import ccall unsafe "vg/openvg.h vgPaintPattern"  
+foreign import ccall unsafe "vg/openvg.h vgPaintPattern"
     vgPaintPattern :: VGPaint -> VGImage -> IO ()
 
 
 -- | Images
 
-foreign import ccall unsafe "vg/openvg.h vgCreateImage"  
-    vgCreateImage :: VGImageFormat' 
+foreign import ccall unsafe "vg/openvg.h vgCreateImage"
+    vgCreateImage :: VGImageFormat'
                   -> VGint
                   -> VGint
                   -> VGbitfield
                   -> IO VGImage
-                                  
-                                  
-foreign import ccall unsafe "vg/openvg.h vgDestroyImage"  
-    vgDestroyImage :: VGImage -> IO () 
-                  
-foreign import ccall unsafe "vg/openvg.h vgClearImage"  
-    vgClearImage :: VGImage -> VGint -> VGint -> VGint -> VGint -> IO () 
-                              
-foreign import ccall unsafe "vg/openvg.h vgImageSubData"  
-    vgImageSubData :: VGImage 
+
+
+foreign import ccall unsafe "vg/openvg.h vgDestroyImage"
+    vgDestroyImage :: VGImage -> IO ()
+
+foreign import ccall unsafe "vg/openvg.h vgClearImage"
+    vgClearImage :: VGImage -> VGint -> VGint -> VGint -> VGint -> IO ()
+
+foreign import ccall unsafe "vg/openvg.h vgImageSubData"
+    vgImageSubData :: VGImage
                    -> Ptr a
                    -> VGint
-                   -> VGImageFormat' 
-                   -> VGint 
-                   -> VGint 
+                   -> VGImageFormat'
                    -> VGint
-                   -> VGint 
+                   -> VGint
+                   -> VGint
+                   -> VGint
                    -> IO ()
-                                    
 
-foreign import ccall unsafe "vg/openvg.h vgGetImageSubData"  
-    vgGetImageSubData :: VGImage 
+
+foreign import ccall unsafe "vg/openvg.h vgGetImageSubData"
+    vgGetImageSubData :: VGImage
                       -> Ptr a
                       -> VGint
-                      -> VGImageFormat' 
-                      -> VGint 
-                      -> VGint 
+                      -> VGImageFormat'
                       -> VGint
-                      -> VGint 
+                      -> VGint
+                      -> VGint
+                      -> VGint
                       -> IO ()
 
-{-
--- TODO vgChildImage seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgChildImage"  
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgChildImage"
     vgChildImage :: VGImage -> VGint -> VGint -> VGint -> VGint -> IO VGImage
--}
 
-{-
--- TODO vgGetParent seems to be missing in the dll... ?                        
-foreign import ccall unsafe "vg/openvg.h vgGetParent"  
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgGetParent"
     vgGetParent :: VGImage -> IO VGImage
--}
 
 
-foreign import ccall unsafe "vg/openvg.h vgCopyImage"  
-    vgCopyImage :: VGImage -> VGint -> VGint 
-                -> VGImage -> VGint -> VGint 
-                -> VGint   -> VGint 
+
+foreign import ccall unsafe "vg/openvg.h vgCopyImage"
+    vgCopyImage :: VGImage -> VGint -> VGint
+                -> VGImage -> VGint -> VGint
+                -> VGint   -> VGint
                 -> VGboolean
                 -> IO ()
-    
-                             
-foreign import ccall unsafe "vg/openvg.h vgDrawImage"  
+
+
+foreign import ccall unsafe "vg/openvg.h vgDrawImage"
     vgDrawImage :: VGImage -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgSetPixels"  
-    vgSetPixels :: VGint 
-                -> VGint 
-                -> VGImage 
-                -> VGint 
-                -> VGint 
-                -> VGint 
-                -> VGint 
+foreign import ccall unsafe "vg/openvg.h vgSetPixels"
+    vgSetPixels :: VGint
+                -> VGint
+                -> VGImage
+                -> VGint
+                -> VGint
+                -> VGint
+                -> VGint
                 -> IO ()
 
-foreign import ccall unsafe "vg/openvg.h vgWritePixels"  
+foreign import ccall unsafe "vg/openvg.h vgWritePixels"
     vgWritePixels :: Ptr a
-                  -> VGint 
-                  -> VGImageFormat'  
-                  -> VGint 
-                  -> VGint 
-                  -> VGint 
-                  -> VGint 
+                  -> VGint
+                  -> VGImageFormat'
+                  -> VGint
+                  -> VGint
+                  -> VGint
+                  -> VGint
                   -> IO ()
-                
 
-foreign import ccall unsafe "vg/openvg.h vgGetPixels"  
+
+foreign import ccall unsafe "vg/openvg.h vgGetPixels"
     vgGetPixels :: VGImage
-                -> VGint 
-                -> VGint  
-                -> VGint 
-                -> VGint 
-                -> VGint 
-                -> VGint 
+                -> VGint
+                -> VGint
+                -> VGint
+                -> VGint
+                -> VGint
+                -> VGint
                 -> IO ()
-                  
-foreign import ccall unsafe "vg/openvg.h vgReadPixels"  
-    vgReadPixels :: Ptr a 
+
+foreign import ccall unsafe "vg/openvg.h vgReadPixels"
+    vgReadPixels :: Ptr a
                  -> VGint
-                 -> VGImageFormat' 
-                 -> VGint  
-                 -> VGint 
-                 -> VGint 
-                 -> VGint 
+                 -> VGImageFormat'
+                 -> VGint
+                 -> VGint
+                 -> VGint
+                 -> VGint
                  -> IO ()
-                
 
-foreign import ccall unsafe "vg/openvg.h vgCopyPixels"  
+
+foreign import ccall unsafe "vg/openvg.h vgCopyPixels"
     vgCopyPixels :: VGint
                  -> VGint
-                 -> VGint  
-                 -> VGint 
-                 -> VGint 
-                 -> VGint 
+                 -> VGint
+                 -> VGint
+                 -> VGint
+                 -> VGint
                  -> IO ()
-                              
 
+
 -- | Image Filters
 
-{-
--- TODO vgColorMatrix seems to be missing in the dll... ? 
-foreign import ccall unsafe "vg/openvg.h vgColorMatrix"  
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgColorMatrix"
     vgColorMatrix :: VGImage -> VGImage -> Ptr VGfloat -> IO ()
--}     
 
-{-
--- TODO vgConvolve seems to be missing in the dll... ? 
-foreign import ccall unsafe "vg/openvg.h vgConvolve"  
-    vgConvolve :: VGImage 
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgConvolve"
+    vgConvolve :: VGImage
                -> VGImage
                -> VGint
                -> VGint
                -> VGint
-               -> VGint 
+               -> VGint
                -> Ptr VGshort
                -> VGfloat
                -> VGfloat
                -> VGTilingMode'
-               -> IO ()                            
--}
+               -> IO ()
 
-{-
--- TODO vgSeparableConvolve seems to be missing in the dll... ? 
-foreign import ccall unsafe "vg/openvg.h vgSeparableConvolve"  
-    vgSeparableConvolve :: VGImage 
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgSeparableConvolve"
+    vgSeparableConvolve :: VGImage
                         -> VGImage
                         -> VGint
                         -> VGint
                         -> VGint
-                        -> VGint 
+                        -> VGint
                         -> Ptr VGshort
                         -> Ptr VGshort
                         -> VGfloat
                         -> VGfloat
                         -> VGTilingMode'
-                        -> IO () 
--}
+                        -> IO ()
 
-{-
--- TODO vgGaussianBlur seems to be missing in the dll... ?            
-foreign import ccall unsafe "vg/openvg.h vgGaussianBlur"  
-    vgGaussianBlur :: VGImage 
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgGaussianBlur"
+    vgGaussianBlur :: VGImage
                    -> VGImage
                    -> VGfloat
                    -> VGfloat
                    -> VGTilingMode'
-                   -> IO () 
--}
+                   -> IO ()
 
-{-
--- TODO vgLookup seems to be missing in the dll... ? 
-foreign import ccall unsafe "vg/openvg.h vgLookup"  
-    vgLookup :: VGImage 
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgLookup"
+    vgLookup :: VGImage
              -> VGImage
              -> Ptr VGubyte
              -> Ptr VGubyte
@@ -448,47 +441,46 @@
              -> Ptr VGubyte
              -> VGboolean
              -> VGboolean
-             -> IO () 
--}
+             -> IO ()
 
-{-
--- TODO vgLookupSingle seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgLookupSingle"  
-    vgLookupSingle :: VGImage 
+
+-- Stubbed in shivaVG 0.2.1 (not implemented)
+foreign import ccall unsafe "vg/openvg.h vgLookupSingle"
+    vgLookupSingle :: VGImage
                    -> VGImage
                    -> Ptr VGuint
                    -> VGImageChannel'
                    -> VGboolean
                    -> VGboolean
-                   -> IO () 
--}
+                   -> IO ()
 
 
 -- | Hardware Queries
-{-
--- TODO vgHardwareQuery seems to be missing in the dll... ?
-foreign import ccall unsafe "vg/openvg.h vgHardwareQuery"  
-    vgHardwareQuery :: VGHardwareQueryType' 
-                    -> VGint 
+
+-- | Query hardware capabilites
+
+-- Implemented in shivaVG 0.2.1
+foreign import ccall unsafe "vg/openvg.h vgHardwareQuery"
+    vgHardwareQuery :: VGHardwareQueryType'
+                    -> VGint
                     -> IO VGHardwareQueryResult'
--}
 
 -- | Renderer and Extension Information
-foreign import ccall unsafe "vg/openvg.h vgGetString"  
-    vgGetString :: VGStringID' -> IO CString 
+foreign import ccall unsafe "vg/openvg.h vgGetString"
+    vgGetString :: VGStringID' -> IO CString
 
 -- | Shiva-VG Extensions
 -- See the README in the shiva archive.
-foreign import ccall unsafe "vg/openvg.h vgCreateContextSH"  
+foreign import ccall unsafe "vg/openvg.h vgCreateContextSH"
     vgCreateContextSH :: VGint -> VGint -> IO VGboolean
-    
-foreign import ccall unsafe "vg/openvg.h vgResizeSurfaceSH"  
+
+foreign import ccall unsafe "vg/openvg.h vgResizeSurfaceSH"
     vgResizeSurfaceSH :: VGint -> VGint -> IO ()
-    
 
-foreign import ccall unsafe "vg/openvg.h vgDestroyContextSH"  
+
+foreign import ccall unsafe "vg/openvg.h vgDestroyContextSH"
     vgDestroyContextSH :: IO ()
-    
+
 
 
 
diff --git a/src/Graphics/Rendering/OpenVG/VG/Constants.hsc b/src/Graphics/Rendering/OpenVG/VG/Constants.hsc
--- a/src/Graphics/Rendering/OpenVG/VG/Constants.hsc
+++ b/src/Graphics/Rendering/OpenVG/VG/Constants.hsc
@@ -5,8 +5,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Constants
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/DrawingContext.hs b/src/Graphics/Rendering/OpenVG/VG/DrawingContext.hs
--- a/src/Graphics/Rendering/OpenVG/VG/DrawingContext.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/DrawingContext.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.ShivaExtensions
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Extending.hs b/src/Graphics/Rendering/OpenVG/VG/Extending.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Extending.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Extending.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Extending
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Images.hs b/src/Graphics/Rendering/OpenVG/VG/Images.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Images.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Images.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Images
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Paint.hs b/src/Graphics/Rendering/OpenVG/VG/Paint.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Paint.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Paint.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Paint
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Parameters.hs b/src/Graphics/Rendering/OpenVG/VG/Parameters.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Parameters.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Parameters.hs
@@ -4,8 +4,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Parameters
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Paths.hs b/src/Graphics/Rendering/OpenVG/VG/Paths.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Paths.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Paths.hs
@@ -5,8 +5,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Paths
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/RenderingQuality.hs b/src/Graphics/Rendering/OpenVG/VG/RenderingQuality.hs
--- a/src/Graphics/Rendering/OpenVG/VG/RenderingQuality.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/RenderingQuality.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.RenderingQuality
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Scissoring.hs b/src/Graphics/Rendering/OpenVG/VG/Scissoring.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Scissoring.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Scissoring.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Scissoring
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/ShivaExtensions.hs b/src/Graphics/Rendering/OpenVG/VG/ShivaExtensions.hs
--- a/src/Graphics/Rendering/OpenVG/VG/ShivaExtensions.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/ShivaExtensions.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.ShivaExtensions
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VG/Utils.hs b/src/Graphics/Rendering/OpenVG/VG/Utils.hs
--- a/src/Graphics/Rendering/OpenVG/VG/Utils.hs
+++ b/src/Graphics/Rendering/OpenVG/VG/Utils.hs
@@ -4,8 +4,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Utils
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VGU.hs b/src/Graphics/Rendering/OpenVG/VGU.hs
--- a/src/Graphics/Rendering/OpenVG/VGU.hs
+++ b/src/Graphics/Rendering/OpenVG/VGU.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VGU
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VGU/CInternals.hsc b/src/Graphics/Rendering/OpenVG/VGU/CInternals.hsc
--- a/src/Graphics/Rendering/OpenVG/VGU/CInternals.hsc
+++ b/src/Graphics/Rendering/OpenVG/VGU/CInternals.hsc
@@ -5,8 +5,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VGU.CInternals
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
@@ -78,11 +78,8 @@
            -> VGfloat -> VGfloat
            -> VGenum 
            -> IO VGUErrorCode'  
-                 
-{-
 
--- not implemented by shiva-vg
-
+-- Stubbed in shivaVG 0.2.1 (not implemented)
 foreign import ccall unsafe "vg/openvg.h vguComputeWarpQuadToSquare"
     vguComputeWarpQuadToSquare :: VGfloat -> VGfloat 
                                -> VGfloat -> VGfloat
@@ -91,7 +88,7 @@
                                -> Ptr VGfloat
                                -> IO VGUErrorCode'  
 
-
+-- Stubbed in shivaVG 0.2.1 (not implemented)
 foreign import ccall unsafe "vg/openvg.h vguComputeWarpSquareToQuad"
     vguComputeWarpSquareToQuad :: VGfloat -> VGfloat 
                                -> VGfloat -> VGfloat
@@ -100,6 +97,7 @@
                                -> Ptr VGfloat
                                -> IO VGUErrorCode'  
 
+-- Stubbed in shivaVG 0.2.1 (not implemented)
 foreign import ccall unsafe "vg/openvg.h vguComputeWarpQuadToQuad"
     vguComputeWarpQuadToQuad :: VGfloat -> VGfloat 
                              -> VGfloat -> VGfloat
@@ -111,6 +109,7 @@
                              -> VGfloat -> VGfloat
                              -> Ptr VGfloat
                              -> IO VGUErrorCode'  
--}  
+
+
 
 -- end of file
diff --git a/src/Graphics/Rendering/OpenVG/VGU/Errors.hs b/src/Graphics/Rendering/OpenVG/VGU/Errors.hs
--- a/src/Graphics/Rendering/OpenVG/VGU/Errors.hs
+++ b/src/Graphics/Rendering/OpenVG/VGU/Errors.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Errors
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VGU/ErrorsInternal.hs b/src/Graphics/Rendering/OpenVG/VGU/ErrorsInternal.hs
--- a/src/Graphics/Rendering/OpenVG/VGU/ErrorsInternal.hs
+++ b/src/Graphics/Rendering/OpenVG/VGU/ErrorsInternal.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VG.Errors
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
diff --git a/src/Graphics/Rendering/OpenVG/VGU/VGU.hs b/src/Graphics/Rendering/OpenVG/VGU/VGU.hs
--- a/src/Graphics/Rendering/OpenVG/VGU/VGU.hs
+++ b/src/Graphics/Rendering/OpenVG/VGU/VGU.hs
@@ -3,8 +3,8 @@
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OpenVG.VGU.VGU
--- Copyright   :  (c) Stephen Tetley 2008
--- License     :  BSD-style (see the LICENSE file in the distribution)
+-- Copyright   :  (c) Stephen Tetley 2008, 2009
+-- License     :  BSD3
 --
 -- Maintainer  :  Stephen Tetley <stephen.tetley@gmail.com>
 -- Stability   :  highly unstable
