diff --git a/FreeType/FontConfig.hs b/FreeType/FontConfig.hs
--- a/FreeType/FontConfig.hs
+++ b/FreeType/FontConfig.hs
@@ -249,7 +249,8 @@
     glyphFontName :: Maybe String,
     glyphImage :: a,
     glyphAdvance :: (Double, Double),
-    glyphSubpixel :: FTFC_Subpixel
+    glyphSubpixel :: FTFC_Subpixel,
+    glyphMetrics :: FT_Glyph_Metrics
 }
 
 -- | Looks up a given glyph in a `FTFC_Instance` & its underlying `FT_Face`
@@ -318,8 +319,15 @@
             if fontPixelFixupEstimated font then fontPixelSizeFixup font else 1,
             fromIntegral (vY $ gsrAdvance glyph2') / 64 *
             if fontPixelFixupEstimated font then fontPixelSizeFixup font else 1),
-        glyphSubpixel = subpixel
+        glyphSubpixel = subpixel,
+        glyphMetrics = gsrMetrics glyph2'
     }
+
+bmpAndMetricsForIndex ::
+    FTFC_Instance -> FTFC_Subpixel -> Word32 -> IO (FT_Bitmap, FT_Glyph_Metrics)
+bmpAndMetricsForIndex inst subpixel index = do
+    glyph <- glyphForIndex inst index subpixel pure
+    return (glyphImage glyph, glyphMetrics glyph)
 
 withPtr :: Storable a => a -> (Ptr a -> IO b) -> IO a
 withPtr a cb = alloca $ \a' -> do
diff --git a/fontconfig-pure.cabal b/fontconfig-pure.cabal
--- a/fontconfig-pure.cabal
+++ b/fontconfig-pure.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.0.1
+version:             0.1.1.0
 
 -- A short (one-line) description of the package.
 synopsis:            Pure-functional language bindings to FontConfig
