am 55a9be3d: Merge "Fix for bug 3434228" into honeycomb-mr1

* commit '55a9be3d284d17045d9d3546c57d9dc3c4c8a521':
  Fix for bug 3434228
This commit is contained in:
Alex Sakhartchouk
2011-03-16 21:18:37 -07:00
committed by Android Git Automerger
7 changed files with 19 additions and 10 deletions

View File

@@ -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) {

View File

@@ -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.");
}

View File

@@ -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 },

View File

@@ -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 {

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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();
}