Loading graphics/java/android/renderscript/RSSurfaceView.java +4 −4 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import android.view.SurfaceView; **/ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder mSurfaceHolder; private RenderScript mRS; private RenderScriptGL mRS; /** * Standard View constructor. In order to render something, you Loading Loading @@ -146,13 +146,13 @@ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback // ---------------------------------------------------------------------- public RenderScript createRenderScript(boolean useDepth, boolean forceSW) { public RenderScriptGL createRenderScript(boolean useDepth, boolean forceSW) { Log.v(RenderScript.LOG_TAG, "createRenderScript"); mRS = new RenderScript(useDepth, forceSW); mRS = new RenderScriptGL(useDepth, forceSW); return mRS; } public RenderScript createRenderScript(boolean useDepth) { public RenderScriptGL createRenderScript(boolean useDepth) { return createRenderScript(useDepth, false); } Loading graphics/java/android/renderscript/RenderScript.java +21 −93 Original line number Diff line number Diff line Loading @@ -31,11 +31,9 @@ import android.view.Surface; **/ public class RenderScript { static final String LOG_TAG = "RenderScript_jni"; private static final boolean DEBUG = false; protected static final boolean DEBUG = false; @SuppressWarnings({"UnusedDeclaration", "deprecation"}) private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; int mWidth; int mHeight; protected static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; Loading @@ -44,8 +42,8 @@ public class RenderScript { * field offsets. */ @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) private static boolean sInitialized; native private static void _nInit(); protected static boolean sInitialized; native protected static void _nInit(); static { Loading @@ -64,7 +62,8 @@ public class RenderScript { native int nDeviceCreate(); native void nDeviceDestroy(int dev); native void nDeviceSetConfig(int dev, int param, int value); native int nContextCreate(int dev, int ver, boolean useDepth); native int nContextCreateGL(int dev, int ver, boolean useDepth); native int nContextCreate(int dev, int ver); native void nContextDestroy(int con); native void nContextSetSurface(int w, int h, Surface sur); native void nContextSetPriority(int p); Loading Loading @@ -190,11 +189,10 @@ public class RenderScript { native void nAnimationAdd(float time, float[] attribs); native int nAnimationCreate(); private int mDev; private int mContext; protected int mDev; protected int mContext; @SuppressWarnings({"FieldCanBeLocal"}) private Surface mSurface; private MessageThread mMessageThread; protected MessageThread mMessageThread; Element mElement_USER_U8; Element mElement_USER_I8; Loading Loading @@ -251,7 +249,7 @@ public class RenderScript { nContextSetPriority(p.mID); } private static class MessageThread extends Thread { protected static class MessageThread extends Thread { RenderScript mRS; boolean mRun = true; Loading Loading @@ -289,26 +287,18 @@ public class RenderScript { } } public RenderScript(boolean useDepth, boolean forceSW) { mSurface = null; mWidth = 0; mHeight = 0; mDev = nDeviceCreate(); if(forceSW) { nDeviceSetConfig(mDev, 0, 1); } mContext = nContextCreate(mDev, 0, useDepth); mMessageThread = new MessageThread(this); mMessageThread.start(); Element.initPredefined(this); protected RenderScript() { } public void contextSetSurface(int w, int h, Surface sur) { mSurface = sur; mWidth = w; mHeight = h; validate(); nContextSetSurface(w, h, mSurface); public static RenderScript create() { RenderScript rs = new RenderScript(); rs.mDev = rs.nDeviceCreate(); rs.mContext = rs.nContextCreate(rs.mDev, 0); rs.mMessageThread = new MessageThread(rs); rs.mMessageThread.start(); Element.initPredefined(rs); return rs; } public void contextDump(int bits) { Loading @@ -332,77 +322,15 @@ public class RenderScript { return mContext != 0; } void pause() { validate(); nContextPause(); } void resume() { validate(); nContextResume(); } ////////////////////////////////////////////////////////////////////////////////// // File public class File extends BaseObj { File(int id) { super(RenderScript.this); mID = id; } } public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException { if(s.length() < 1) { throw new IllegalArgumentException("fileOpen does not accept a zero length string."); } try { byte[] bytes = s.getBytes("UTF-8"); int id = nFileOpen(bytes); return new File(id); } catch (java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } } /////////////////////////////////////////////////////////////////////////////////// // Root state private int safeID(BaseObj o) { protected int safeID(BaseObj o) { if(o != null) { return o.mID; } return 0; } public void contextBindRootScript(Script s) { validate(); nContextBindRootScript(safeID(s)); } public void contextBindProgramFragmentStore(ProgramStore p) { validate(); nContextBindProgramFragmentStore(safeID(p)); } public void contextBindProgramFragment(ProgramFragment p) { validate(); nContextBindProgramFragment(safeID(p)); } public void contextBindProgramRaster(ProgramRaster p) { validate(); nContextBindProgramRaster(safeID(p)); } public void contextBindProgramVertex(ProgramVertex p) { validate(); nContextBindProgramVertex(safeID(p)); } } graphics/java/android/renderscript/RenderScriptGL.java 0 → 100644 +127 −0 Original line number Diff line number Diff line /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.renderscript; import java.lang.reflect.Field; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Config; import android.util.Log; import android.view.Surface; /** * @hide * **/ public class RenderScriptGL extends RenderScript { private Surface mSurface; int mWidth; int mHeight; public RenderScriptGL(boolean useDepth, boolean forceSW) { mSurface = null; mWidth = 0; mHeight = 0; mDev = nDeviceCreate(); if(forceSW) { nDeviceSetConfig(mDev, 0, 1); } mContext = nContextCreateGL(mDev, 0, useDepth); mMessageThread = new MessageThread(this); mMessageThread.start(); Element.initPredefined(this); } public void contextSetSurface(int w, int h, Surface sur) { mSurface = sur; mWidth = w; mHeight = h; validate(); nContextSetSurface(w, h, mSurface); } void pause() { validate(); nContextPause(); } void resume() { validate(); nContextResume(); } public void contextBindRootScript(Script s) { validate(); nContextBindRootScript(safeID(s)); } public void contextBindProgramFragmentStore(ProgramStore p) { validate(); nContextBindProgramFragmentStore(safeID(p)); } public void contextBindProgramFragment(ProgramFragment p) { validate(); nContextBindProgramFragment(safeID(p)); } public void contextBindProgramRaster(ProgramRaster p) { validate(); nContextBindProgramRaster(safeID(p)); } public void contextBindProgramVertex(ProgramVertex p) { validate(); nContextBindProgramVertex(safeID(p)); } ////////////////////////////////////////////////////////////////////////////////// // File public class File extends BaseObj { File(int id) { super(RenderScriptGL.this); mID = id; } } public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException { if(s.length() < 1) { throw new IllegalArgumentException("fileOpen does not accept a zero length string."); } try { byte[] bytes = s.getBytes("UTF-8"); int id = nFileOpen(bytes); return new File(id); } catch (java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } } } graphics/jni/android_renderscript_RenderScript.cpp +13 −5 Original line number Diff line number Diff line Loading @@ -151,10 +151,17 @@ nDeviceSetConfig(JNIEnv *_env, jobject _this, jint dev, jint p, jint value) } static jint nContextCreate(JNIEnv *_env, jobject _this, jint dev, jint ver, jboolean useDepth) nContextCreate(JNIEnv *_env, jobject _this, jint dev, jint ver) { LOG_API("nContextCreate"); return (jint)rsContextCreate((RsDevice)dev, ver, useDepth); return (jint)rsContextCreate((RsDevice)dev, ver); } static jint nContextCreateGL(JNIEnv *_env, jobject _this, jint dev, jint ver, jboolean useDepth) { LOG_API("nContextCreateGL"); return (jint)rsContextCreateGL((RsDevice)dev, ver, useDepth); } static void Loading Loading @@ -260,7 +267,7 @@ nElementCreate2(JNIEnv *_env, jobject _this, jintArray _ids, jobjectArray _names { int fieldCount = _env->GetArrayLength(_ids); RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); LOG_API("nElementCreate, con(%p), type(%i), kind(%i), norm(%i), size(%i)", con, type, kind, norm, size); LOG_API("nElementCreate2, con(%p)", con); jint *ids = _env->GetIntArrayElements(_ids, NULL); const char ** nameArray = (const char **)calloc(fieldCount, sizeof(char *)); Loading Loading @@ -1089,7 +1096,7 @@ nProgramFragmentCreate(JNIEnv *_env, jobject _this, jintArray params) jint *paramPtr = _env->GetIntArrayElements(params, NULL); jint paramLen = _env->GetArrayLength(params); LOG_API("nProgramFragmentCreate, con(%p), paramLen(%i)", con, shaderLen, paramLen); LOG_API("nProgramFragmentCreate, con(%p), paramLen(%i)", con, paramLen); jint ret = (jint)rsProgramFragmentCreate(con, (uint32_t *)paramPtr, paramLen); _env->ReleaseIntArrayElements(params, paramPtr, JNI_ABORT); Loading Loading @@ -1332,7 +1339,8 @@ static JNINativeMethod methods[] = { {"nDeviceCreate", "()I", (void*)nDeviceCreate }, {"nDeviceDestroy", "(I)V", (void*)nDeviceDestroy }, {"nDeviceSetConfig", "(III)V", (void*)nDeviceSetConfig }, {"nContextCreate", "(IIZ)I", (void*)nContextCreate }, {"nContextCreate", "(II)I", (void*)nContextCreate }, {"nContextCreateGL", "(IIZ)I", (void*)nContextCreateGL }, {"nContextSetPriority", "(I)V", (void*)nContextSetPriority }, {"nContextSetSurface", "(IILandroid/view/Surface;)V", (void*)nContextSetSurface }, {"nContextDestroy", "(I)V", (void*)nContextDestroy }, Loading libs/rs/RenderScript.h +2 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,8 @@ RsDevice rsDeviceCreate(); void rsDeviceDestroy(RsDevice); void rsDeviceSetConfig(RsDevice, RsDeviceParam, int32_t value); RsContext rsContextCreate(RsDevice, uint32_t version, bool useDepth); RsContext rsContextCreate(RsDevice, uint32_t version); RsContext rsContextCreateGL(RsDevice, uint32_t version, bool useDepth); void rsContextDestroy(RsContext); void rsObjDestroyOOB(RsContext, void *); Loading Loading
graphics/java/android/renderscript/RSSurfaceView.java +4 −4 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import android.view.SurfaceView; **/ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder mSurfaceHolder; private RenderScript mRS; private RenderScriptGL mRS; /** * Standard View constructor. In order to render something, you Loading Loading @@ -146,13 +146,13 @@ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback // ---------------------------------------------------------------------- public RenderScript createRenderScript(boolean useDepth, boolean forceSW) { public RenderScriptGL createRenderScript(boolean useDepth, boolean forceSW) { Log.v(RenderScript.LOG_TAG, "createRenderScript"); mRS = new RenderScript(useDepth, forceSW); mRS = new RenderScriptGL(useDepth, forceSW); return mRS; } public RenderScript createRenderScript(boolean useDepth) { public RenderScriptGL createRenderScript(boolean useDepth) { return createRenderScript(useDepth, false); } Loading
graphics/java/android/renderscript/RenderScript.java +21 −93 Original line number Diff line number Diff line Loading @@ -31,11 +31,9 @@ import android.view.Surface; **/ public class RenderScript { static final String LOG_TAG = "RenderScript_jni"; private static final boolean DEBUG = false; protected static final boolean DEBUG = false; @SuppressWarnings({"UnusedDeclaration", "deprecation"}) private static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; int mWidth; int mHeight; protected static final boolean LOG_ENABLED = DEBUG ? Config.LOGD : Config.LOGV; Loading @@ -44,8 +42,8 @@ public class RenderScript { * field offsets. */ @SuppressWarnings({"FieldCanBeLocal", "UnusedDeclaration"}) private static boolean sInitialized; native private static void _nInit(); protected static boolean sInitialized; native protected static void _nInit(); static { Loading @@ -64,7 +62,8 @@ public class RenderScript { native int nDeviceCreate(); native void nDeviceDestroy(int dev); native void nDeviceSetConfig(int dev, int param, int value); native int nContextCreate(int dev, int ver, boolean useDepth); native int nContextCreateGL(int dev, int ver, boolean useDepth); native int nContextCreate(int dev, int ver); native void nContextDestroy(int con); native void nContextSetSurface(int w, int h, Surface sur); native void nContextSetPriority(int p); Loading Loading @@ -190,11 +189,10 @@ public class RenderScript { native void nAnimationAdd(float time, float[] attribs); native int nAnimationCreate(); private int mDev; private int mContext; protected int mDev; protected int mContext; @SuppressWarnings({"FieldCanBeLocal"}) private Surface mSurface; private MessageThread mMessageThread; protected MessageThread mMessageThread; Element mElement_USER_U8; Element mElement_USER_I8; Loading Loading @@ -251,7 +249,7 @@ public class RenderScript { nContextSetPriority(p.mID); } private static class MessageThread extends Thread { protected static class MessageThread extends Thread { RenderScript mRS; boolean mRun = true; Loading Loading @@ -289,26 +287,18 @@ public class RenderScript { } } public RenderScript(boolean useDepth, boolean forceSW) { mSurface = null; mWidth = 0; mHeight = 0; mDev = nDeviceCreate(); if(forceSW) { nDeviceSetConfig(mDev, 0, 1); } mContext = nContextCreate(mDev, 0, useDepth); mMessageThread = new MessageThread(this); mMessageThread.start(); Element.initPredefined(this); protected RenderScript() { } public void contextSetSurface(int w, int h, Surface sur) { mSurface = sur; mWidth = w; mHeight = h; validate(); nContextSetSurface(w, h, mSurface); public static RenderScript create() { RenderScript rs = new RenderScript(); rs.mDev = rs.nDeviceCreate(); rs.mContext = rs.nContextCreate(rs.mDev, 0); rs.mMessageThread = new MessageThread(rs); rs.mMessageThread.start(); Element.initPredefined(rs); return rs; } public void contextDump(int bits) { Loading @@ -332,77 +322,15 @@ public class RenderScript { return mContext != 0; } void pause() { validate(); nContextPause(); } void resume() { validate(); nContextResume(); } ////////////////////////////////////////////////////////////////////////////////// // File public class File extends BaseObj { File(int id) { super(RenderScript.this); mID = id; } } public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException { if(s.length() < 1) { throw new IllegalArgumentException("fileOpen does not accept a zero length string."); } try { byte[] bytes = s.getBytes("UTF-8"); int id = nFileOpen(bytes); return new File(id); } catch (java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } } /////////////////////////////////////////////////////////////////////////////////// // Root state private int safeID(BaseObj o) { protected int safeID(BaseObj o) { if(o != null) { return o.mID; } return 0; } public void contextBindRootScript(Script s) { validate(); nContextBindRootScript(safeID(s)); } public void contextBindProgramFragmentStore(ProgramStore p) { validate(); nContextBindProgramFragmentStore(safeID(p)); } public void contextBindProgramFragment(ProgramFragment p) { validate(); nContextBindProgramFragment(safeID(p)); } public void contextBindProgramRaster(ProgramRaster p) { validate(); nContextBindProgramRaster(safeID(p)); } public void contextBindProgramVertex(ProgramVertex p) { validate(); nContextBindProgramVertex(safeID(p)); } }
graphics/java/android/renderscript/RenderScriptGL.java 0 → 100644 +127 −0 Original line number Diff line number Diff line /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.renderscript; import java.lang.reflect.Field; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Config; import android.util.Log; import android.view.Surface; /** * @hide * **/ public class RenderScriptGL extends RenderScript { private Surface mSurface; int mWidth; int mHeight; public RenderScriptGL(boolean useDepth, boolean forceSW) { mSurface = null; mWidth = 0; mHeight = 0; mDev = nDeviceCreate(); if(forceSW) { nDeviceSetConfig(mDev, 0, 1); } mContext = nContextCreateGL(mDev, 0, useDepth); mMessageThread = new MessageThread(this); mMessageThread.start(); Element.initPredefined(this); } public void contextSetSurface(int w, int h, Surface sur) { mSurface = sur; mWidth = w; mHeight = h; validate(); nContextSetSurface(w, h, mSurface); } void pause() { validate(); nContextPause(); } void resume() { validate(); nContextResume(); } public void contextBindRootScript(Script s) { validate(); nContextBindRootScript(safeID(s)); } public void contextBindProgramFragmentStore(ProgramStore p) { validate(); nContextBindProgramFragmentStore(safeID(p)); } public void contextBindProgramFragment(ProgramFragment p) { validate(); nContextBindProgramFragment(safeID(p)); } public void contextBindProgramRaster(ProgramRaster p) { validate(); nContextBindProgramRaster(safeID(p)); } public void contextBindProgramVertex(ProgramVertex p) { validate(); nContextBindProgramVertex(safeID(p)); } ////////////////////////////////////////////////////////////////////////////////// // File public class File extends BaseObj { File(int id) { super(RenderScriptGL.this); mID = id; } } public File fileOpen(String s) throws IllegalStateException, IllegalArgumentException { if(s.length() < 1) { throw new IllegalArgumentException("fileOpen does not accept a zero length string."); } try { byte[] bytes = s.getBytes("UTF-8"); int id = nFileOpen(bytes); return new File(id); } catch (java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); } } }
graphics/jni/android_renderscript_RenderScript.cpp +13 −5 Original line number Diff line number Diff line Loading @@ -151,10 +151,17 @@ nDeviceSetConfig(JNIEnv *_env, jobject _this, jint dev, jint p, jint value) } static jint nContextCreate(JNIEnv *_env, jobject _this, jint dev, jint ver, jboolean useDepth) nContextCreate(JNIEnv *_env, jobject _this, jint dev, jint ver) { LOG_API("nContextCreate"); return (jint)rsContextCreate((RsDevice)dev, ver, useDepth); return (jint)rsContextCreate((RsDevice)dev, ver); } static jint nContextCreateGL(JNIEnv *_env, jobject _this, jint dev, jint ver, jboolean useDepth) { LOG_API("nContextCreateGL"); return (jint)rsContextCreateGL((RsDevice)dev, ver, useDepth); } static void Loading Loading @@ -260,7 +267,7 @@ nElementCreate2(JNIEnv *_env, jobject _this, jintArray _ids, jobjectArray _names { int fieldCount = _env->GetArrayLength(_ids); RsContext con = (RsContext)(_env->GetIntField(_this, gContextId)); LOG_API("nElementCreate, con(%p), type(%i), kind(%i), norm(%i), size(%i)", con, type, kind, norm, size); LOG_API("nElementCreate2, con(%p)", con); jint *ids = _env->GetIntArrayElements(_ids, NULL); const char ** nameArray = (const char **)calloc(fieldCount, sizeof(char *)); Loading Loading @@ -1089,7 +1096,7 @@ nProgramFragmentCreate(JNIEnv *_env, jobject _this, jintArray params) jint *paramPtr = _env->GetIntArrayElements(params, NULL); jint paramLen = _env->GetArrayLength(params); LOG_API("nProgramFragmentCreate, con(%p), paramLen(%i)", con, shaderLen, paramLen); LOG_API("nProgramFragmentCreate, con(%p), paramLen(%i)", con, paramLen); jint ret = (jint)rsProgramFragmentCreate(con, (uint32_t *)paramPtr, paramLen); _env->ReleaseIntArrayElements(params, paramPtr, JNI_ABORT); Loading Loading @@ -1332,7 +1339,8 @@ static JNINativeMethod methods[] = { {"nDeviceCreate", "()I", (void*)nDeviceCreate }, {"nDeviceDestroy", "(I)V", (void*)nDeviceDestroy }, {"nDeviceSetConfig", "(III)V", (void*)nDeviceSetConfig }, {"nContextCreate", "(IIZ)I", (void*)nContextCreate }, {"nContextCreate", "(II)I", (void*)nContextCreate }, {"nContextCreateGL", "(IIZ)I", (void*)nContextCreateGL }, {"nContextSetPriority", "(I)V", (void*)nContextSetPriority }, {"nContextSetSurface", "(IILandroid/view/Surface;)V", (void*)nContextSetSurface }, {"nContextDestroy", "(I)V", (void*)nContextDestroy }, Loading
libs/rs/RenderScript.h +2 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,8 @@ RsDevice rsDeviceCreate(); void rsDeviceDestroy(RsDevice); void rsDeviceSetConfig(RsDevice, RsDeviceParam, int32_t value); RsContext rsContextCreate(RsDevice, uint32_t version, bool useDepth); RsContext rsContextCreate(RsDevice, uint32_t version); RsContext rsContextCreateGL(RsDevice, uint32_t version, bool useDepth); void rsContextDestroy(RsContext); void rsObjDestroyOOB(RsContext, void *); Loading