Merge "Moving dependency includes out of librs headers."
diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp
index 8a5ab99..1c1bc98 100644
--- a/libs/rs/rsFont.cpp
+++ b/libs/rs/rsFont.cpp
@@ -20,6 +20,9 @@
 #include "rsFont.h"
 #include "rsProgramFragment.h"
 #include <cutils/properties.h>
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
 #include FT_BITMAP_H
 
 #include <GLES/gl.h>
@@ -208,7 +211,7 @@
             }
         }
 
-        penX += (cachedGlyph->mAdvance.x >> 6);
+        penX += (cachedGlyph->mAdvanceX >> 6);
 
         // If we were given a specific number of glyphs, decrement
         if (numGlyphs > 0) {
@@ -238,7 +241,8 @@
         return;
     }
 
-    glyph->mAdvance = mFace->glyph->advance;
+    glyph->mAdvanceX = mFace->glyph->advance.x;
+    glyph->mAdvanceY = mFace->glyph->advance.y;
     glyph->mBitmapLeft = mFace->glyph->bitmap_left;
     glyph->mBitmapTop = mFace->glyph->bitmap_top;
 
@@ -803,6 +807,22 @@
     }
 }
 
+bool FontState::CacheTextureLine::fitBitmap(FT_Bitmap_ *bitmap, uint32_t *retOriginX, uint32_t *retOriginY) {
+    if ((uint32_t)bitmap->rows > mMaxHeight) {
+        return false;
+    }
+
+    if (mCurrentCol + (uint32_t)bitmap->width < mMaxWidth) {
+        *retOriginX = mCurrentCol;
+        *retOriginY = mCurrentRow;
+        mCurrentCol += bitmap->width;
+        mDirty = true;
+       return true;
+    }
+
+    return false;
+}
+
 namespace android {
 namespace renderscript {
 
diff --git a/libs/rs/rsFont.h b/libs/rs/rsFont.h
index 4820999..91a5da9 100644
--- a/libs/rs/rsFont.h
+++ b/libs/rs/rsFont.h
@@ -23,8 +23,9 @@
 #include <utils/Vector.h>
 #include <utils/KeyedVector.h>
 
-#include <ft2build.h>
-#include FT_FREETYPE_H
+struct FT_LibraryRec_;
+struct FT_FaceRec_;
+struct FT_Bitmap_;
 
 // ---------------------------------------------------------------------------
 namespace android {
@@ -105,11 +106,12 @@
         float mBitmapMaxU;
         float mBitmapMaxV;
         // Minimize how much we call freetype
-        FT_UInt mGlyphIndex;
-        FT_Vector mAdvance;
+        int32_t mGlyphIndex;
+        int32_t mAdvanceX;
+        int32_t mAdvanceY;
         // Values below contain a glyph's origin in the bitmap
-        FT_Int mBitmapLeft;
-        FT_Int mBitmapTop;
+        int32_t mBitmapLeft;
+        int32_t mBitmapTop;
     };
 
     String8 mFontName;
@@ -120,7 +122,7 @@
     bool init(const char *name, float fontSize, uint32_t dpi, const void *data = NULL, uint32_t dataLen = 0);
 
     virtual void preDestroy() const;
-    FT_Face mFace;
+    FT_FaceRec_ *mFace;
     bool mInitialized;
     bool mHasKerning;
 
@@ -173,21 +175,7 @@
               mCurrentCol(currentCol), mDirty(false)  {
         }
 
-        bool fitBitmap(FT_Bitmap *bitmap, uint32_t *retOriginX, uint32_t *retOriginY) {
-            if ((uint32_t)bitmap->rows > mMaxHeight) {
-                return false;
-            }
-
-            if (mCurrentCol + (uint32_t)bitmap->width < mMaxWidth) {
-                *retOriginX = mCurrentCol;
-                *retOriginY = mCurrentRow;
-                mCurrentCol += bitmap->width;
-                mDirty = true;
-               return true;
-            }
-
-            return false;
-        }
+        bool fitBitmap(FT_Bitmap_ *bitmap, uint32_t *retOriginX, uint32_t *retOriginY);
     };
 
     Vector<CacheTextureLine*> mCacheLines;
@@ -211,8 +199,8 @@
     float mWhiteThreshold;
 
     // Free type library, we only need one copy
-    FT_Library mLibrary;
-    FT_Library getLib();
+    FT_LibraryRec_ *mLibrary;
+    FT_LibraryRec_ *getLib();
     Vector<Font*> mActiveFonts;
 
     // Render state for the font
@@ -229,7 +217,7 @@
         return (uint8_t*)mTextTexture->getPtr();
     }
 
-    bool cacheBitmap(FT_Bitmap *bitmap, uint32_t *retOriginX, uint32_t *retOriginY);
+    bool cacheBitmap(FT_Bitmap_ *bitmap, uint32_t *retOriginX, uint32_t *retOriginY);
     const Type* getCacheTextureType() {
         return mTextTexture->getType();
     }
diff --git a/libs/rs/rsScriptC.cpp b/libs/rs/rsScriptC.cpp
index 445a4e4..e12926b 100644
--- a/libs/rs/rsScriptC.cpp
+++ b/libs/rs/rsScriptC.cpp
@@ -26,6 +26,8 @@
 #include <GLES/gl.h>
 #include <GLES/glext.h>
 
+#include <bcc/bcc.h>
+
 using namespace android;
 using namespace android::renderscript;
 
diff --git a/libs/rs/rsScriptC.h b/libs/rs/rsScriptC.h
index e794feb..2c74b5b 100644
--- a/libs/rs/rsScriptC.h
+++ b/libs/rs/rsScriptC.h
@@ -21,7 +21,7 @@
 
 #include "RenderScriptEnv.h"
 
-#include <bcc/bcc.h>
+struct BCCOpaqueScript;
 
 // ---------------------------------------------------------------------------
 namespace android {
@@ -50,7 +50,7 @@
 
     Program_t mProgram;
 
-    BCCScriptRef mBccScript;
+    BCCOpaqueScript *mBccScript;
 
     const Allocation *ptrToAllocation(const void *) const;