     // How large is a single character?
     let singleCharacterSizePts = Size2DFromCGSize(("W" as NSString).sizeWithAttributes(attrs))
     let characterFullPointSize = singleCharacterSizePts.map({Int(ceil($0))})
-    let characterPixelSize = singleCharacterSizePts.map({$0*Float(UIScreen.mainScreen().scale)})
-    let characterFullPixelSize = singleCharacterSizePts.map({Int(ceil($0 * Float(UIScreen.mainScreen().scale)))})
-    
+    let characterPixelSize = singleCharacterSizePts.map({$0*scale})
+    let characterFullPixelSize = characterFullPointSize.map({Int(ceil(Float($0) * scale))})
+    
+    if characterFullPixelSize.w == 29 || characterFullPixelSize.w == 30 {
+      print(size)
+    }
     let textureSize = _required_texture_size(atlasText.characters.count, size: characterFullPixelSize)
     // Work out how many characters we can fit in wide and high
     let characterCount = (x: Int(floor(textureSize.width/CGFloat(characterFullPixelSize.w))),

    UIGraphicsBeginImageContextWithOptions(textureSize, false, 1)
    let context = UIGraphicsGetCurrentContext()
    // We precalculated the adjustment due to screen scaling, so apply it manually
    CGContextScaleCTM(context, UIScreen.mainScreen().scale, UIScreen.mainScreen().scale)
    // Build a character position lookup
    var charLookup : [Character: (x: Int, y: Int)] = [:]
    // Now render every character

            }
            
            if let rEntry = atlas.newAtlas.rectForEntry(String(char)) {
              tool.bind(atlas.newAtlas.framebuffer.texture)
              tool.program.setUVProperties(
                xOffset: Float(rEntry.origin.x), yOffset: Float(rEntry.origin.y),
                xScale: Float(rEntry.size.width), yScale: Float(rEntry.size.height))
