diff options
-rw-r--r-- | graphics/java/android/renderscript/RenderScript.java | 6 | ||||
-rw-r--r-- | graphics/java/android/renderscript/RenderScriptGL.java | 3 | ||||
-rw-r--r-- | graphics/jni/android_renderscript_RenderScript.cpp | 7 | ||||
-rw-r--r-- | libs/rs/RenderScript.h | 3 | ||||
-rw-r--r-- | libs/rs/rsContext.cpp | 5 | ||||
-rw-r--r-- | libs/rs/rsContext.h | 3 | ||||
-rw-r--r-- | libs/rs/rsFont.cpp | 2 |
7 files changed, 19 insertions, 10 deletions
diff --git a/graphics/java/android/renderscript/RenderScript.java b/graphics/java/android/renderscript/RenderScript.java index 1b10c5c..b51279a 100644 --- a/graphics/java/android/renderscript/RenderScript.java +++ b/graphics/java/android/renderscript/RenderScript.java @@ -83,17 +83,17 @@ public class RenderScript { int alphaMin, int alphaPref, int depthMin, int depthPref, int stencilMin, int stencilPref, - int samplesMin, int samplesPref, float samplesQ); + int samplesMin, int samplesPref, float samplesQ, int dpi); synchronized int nContextCreateGL(int dev, int ver, int colorMin, int colorPref, int alphaMin, int alphaPref, int depthMin, int depthPref, int stencilMin, int stencilPref, - int samplesMin, int samplesPref, float samplesQ) { + int samplesMin, int samplesPref, float samplesQ, int dpi) { return rsnContextCreateGL(dev, ver, colorMin, colorPref, alphaMin, alphaPref, depthMin, depthPref, stencilMin, stencilPref, - samplesMin, samplesPref, samplesQ); + samplesMin, samplesPref, samplesQ, dpi); } native int rsnContextCreate(int dev, int ver); synchronized int nContextCreate(int dev, int ver) { diff --git a/graphics/java/android/renderscript/RenderScriptGL.java b/graphics/java/android/renderscript/RenderScriptGL.java index 4359795..d4b5434 100644 --- a/graphics/java/android/renderscript/RenderScriptGL.java +++ b/graphics/java/android/renderscript/RenderScriptGL.java @@ -165,13 +165,14 @@ public class RenderScriptGL extends RenderScript { mWidth = 0; mHeight = 0; mDev = nDeviceCreate(); + int dpi = ctx.getResources().getDisplayMetrics().densityDpi; mContext = nContextCreateGL(mDev, 0, mSurfaceConfig.mColorMin, mSurfaceConfig.mColorPref, mSurfaceConfig.mAlphaMin, mSurfaceConfig.mAlphaPref, mSurfaceConfig.mDepthMin, mSurfaceConfig.mDepthPref, mSurfaceConfig.mStencilMin, mSurfaceConfig.mStencilPref, mSurfaceConfig.mSamplesMin, mSurfaceConfig.mSamplesPref, - mSurfaceConfig.mSamplesQ); + mSurfaceConfig.mSamplesQ, dpi); if (mContext == 0) { throw new RSDriverException("Failed to create RS context."); } diff --git a/graphics/jni/android_renderscript_RenderScript.cpp b/graphics/jni/android_renderscript_RenderScript.cpp index f86343a..2afd74c 100644 --- a/graphics/jni/android_renderscript_RenderScript.cpp +++ b/graphics/jni/android_renderscript_RenderScript.cpp @@ -164,7 +164,8 @@ nContextCreateGL(JNIEnv *_env, jobject _this, jint dev, jint ver, int alphaMin, int alphaPref, int depthMin, int depthPref, int stencilMin, int stencilPref, - int samplesMin, int samplesPref, float samplesQ) + int samplesMin, int samplesPref, float samplesQ, + int dpi) { RsSurfaceConfig sc; sc.alphaMin = alphaMin; @@ -178,7 +179,7 @@ nContextCreateGL(JNIEnv *_env, jobject _this, jint dev, jint ver, sc.samplesQ = samplesQ; LOG_API("nContextCreateGL"); - return (jint)rsContextCreateGL((RsDevice)dev, ver, sc); + return (jint)rsContextCreateGL((RsDevice)dev, ver, sc, dpi); } static void @@ -1213,7 +1214,7 @@ static JNINativeMethod methods[] = { // All methods below are thread protected in java. {"rsnContextCreate", "(II)I", (void*)nContextCreate }, -{"rsnContextCreateGL", "(IIIIIIIIIIIIF)I", (void*)nContextCreateGL }, +{"rsnContextCreateGL", "(IIIIIIIIIIIIFI)I", (void*)nContextCreateGL }, {"rsnContextFinish", "(I)V", (void*)nContextFinish }, {"rsnContextSetPriority", "(II)V", (void*)nContextSetPriority }, {"rsnContextSetSurface", "(IIILandroid/view/Surface;)V", (void*)nContextSetSurface }, diff --git a/libs/rs/RenderScript.h b/libs/rs/RenderScript.h index bb5e4aa..ffa9a8c 100644 --- a/libs/rs/RenderScript.h +++ b/libs/rs/RenderScript.h @@ -76,7 +76,8 @@ void rsDeviceDestroy(RsDevice); void rsDeviceSetConfig(RsDevice, RsDeviceParam, int32_t value); RsContext rsContextCreate(RsDevice, uint32_t version); -RsContext rsContextCreateGL(RsDevice, uint32_t version, RsSurfaceConfig sc); +RsContext rsContextCreateGL(RsDevice, uint32_t version, + RsSurfaceConfig sc, uint32_t dpi); void rsContextDestroy(RsContext); enum RsMessageToClientType { diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp index f9e29f1..c63d183 100644 --- a/libs/rs/rsContext.cpp +++ b/libs/rs/rsContext.cpp @@ -630,6 +630,7 @@ Context::Context() { mPaused = false; mObjHead = NULL; mError = RS_ERROR_NONE; + mDPI = 96; } Context * Context::createContext(Device *dev, const RsSurfaceConfig *sc) { @@ -1078,10 +1079,12 @@ RsContext rsContextCreate(RsDevice vdev, uint32_t version) { return rsc; } -RsContext rsContextCreateGL(RsDevice vdev, uint32_t version, RsSurfaceConfig sc) { +RsContext rsContextCreateGL(RsDevice vdev, uint32_t version, + RsSurfaceConfig sc, uint32_t dpi) { LOGV("rsContextCreateGL %p", vdev); Device * dev = static_cast<Device *>(vdev); Context *rsc = Context::createContext(dev, &sc); + rsc->setDPI(dpi); LOGV("rsContextCreateGL ret %p ", rsc); return rsc; } diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h index c5e32a6..50f63df 100644 --- a/libs/rs/rsContext.h +++ b/libs/rs/rsContext.h @@ -218,6 +218,8 @@ public: void launchThreads(WorkerCallback_t cbk, void *data); uint32_t getWorkerPoolSize() const {return (uint32_t)mWorkers.mCount;} + uint32_t getDPI() const {return mDPI;} + void setDPI(uint32_t dpi) {mDPI = dpi;} protected: Device *mDev; @@ -258,6 +260,7 @@ protected: float EXT_texture_max_aniso; } mGL; + uint32_t mDPI; uint32_t mWidth; uint32_t mHeight; int32_t mThreadPriority; diff --git a/libs/rs/rsFont.cpp b/libs/rs/rsFont.cpp index 1c1bc98..01dbab8 100644 --- a/libs/rs/rsFont.cpp +++ b/libs/rs/rsFont.cpp @@ -733,7 +733,7 @@ void FontState::renderText(const char *text, uint32_t len, int32_t x, int32_t y, String8 fullPath(getenv("ANDROID_ROOT")); fullPath += fontsDir; - mDefault.set(Font::create(mRSC, fullPath.string(), 16, 96)); + mDefault.set(Font::create(mRSC, fullPath.string(), 8, mRSC->getDPI())); } currentFont = mDefault.get(); } |