FileDocCategorySizeDatePackage
ScriptC.javaAPI DocAndroid 5.1 API4664Thu Mar 12 22:22:42 GMT 2015android.renderscript

ScriptC

public class ScriptC extends Script
The superclass for all user-defined scripts. This is only intended to be used by the generated derived classes.

Fields Summary
private static final String
TAG
private static final String
CACHE_PATH
Name of the file that holds the object cache.
static String
mCachePath
Constructors Summary
protected ScriptC(int id, RenderScript rs)
Only intended for use by the generated derived classes.

param
id
param
rs


                      
         
        super(id, rs);
    
protected ScriptC(long id, RenderScript rs)
Only intended for use by the generated derived classes.

param
id
param
rs

        super(id, rs);
    
protected ScriptC(RenderScript rs, android.content.res.Resources resources, int resourceID)
Only intended for use by the generated derived classes.

param
rs
param
resources
param
resourceID

        super(0, rs);
        long id = internalCreate(rs, resources, resourceID);
        if (id == 0) {
            throw new RSRuntimeException("Loading of ScriptC script failed.");
        }
        setID(id);
    
protected ScriptC(RenderScript rs, String resName, byte[] bitcode32, byte[] bitcode64)
Only intended for use by the generated derived classes.

param
rs

        super(0, rs);
        long id = 0;
        if (RenderScript.sPointerSize == 4) {
            id = internalStringCreate(rs, resName, bitcode32);
        } else {
            id = internalStringCreate(rs, resName, bitcode64);
        }
        if (id == 0) {
            throw new RSRuntimeException("Loading of ScriptC script failed.");
        }
        setID(id);
    
Methods Summary
private static synchronized longinternalCreate(RenderScript rs, android.content.res.Resources resources, int resourceID)


              
        byte[] pgm;
        int pgmLength;
        InputStream is = resources.openRawResource(resourceID);
        try {
            try {
                pgm = new byte[1024];
                pgmLength = 0;
                while(true) {
                    int bytesLeft = pgm.length - pgmLength;
                    if (bytesLeft == 0) {
                        byte[] buf2 = new byte[pgm.length * 2];
                        System.arraycopy(pgm, 0, buf2, 0, pgm.length);
                        pgm = buf2;
                        bytesLeft = pgm.length - pgmLength;
                    }
                    int bytesRead = is.read(pgm, pgmLength, bytesLeft);
                    if (bytesRead <= 0) {
                        break;
                    }
                    pgmLength += bytesRead;
                }
            } finally {
                is.close();
            }
        } catch(IOException e) {
            throw new Resources.NotFoundException();
        }

        String resName = resources.getResourceEntryName(resourceID);

        // Create the RS cache path if we haven't done so already.
        if (mCachePath == null) {
            File f = new File(rs.mCacheDir, CACHE_PATH);
            mCachePath = f.getAbsolutePath();
            f.mkdirs();
        }
        //        Log.v(TAG, "Create script for resource = " + resName);
        return rs.nScriptCCreate(resName, mCachePath, pgm, pgmLength);
    
private static synchronized longinternalStringCreate(RenderScript rs, java.lang.String resName, byte[] bitcode)

        // Create the RS cache path if we haven't done so already.
        if (mCachePath == null) {
            File f = new File(rs.mCacheDir, CACHE_PATH);
            mCachePath = f.getAbsolutePath();
            f.mkdirs();
        }
        //        Log.v(TAG, "Create script for resource = " + resName);
        return rs.nScriptCCreate(resName, mCachePath, bitcode, bitcode.length);