summaryrefslogtreecommitdiff
path: root/rsProgram.cpp
diff options
context:
space:
mode:
authorJason Sams <rjsams@android.com>2010-03-03 13:03:18 -0800
committerJason Sams <rjsams@android.com>2010-03-03 14:14:37 -0800
commita2cf755a28a1e7ffff2955df656d714f40e4d715 (patch)
treef95205908caee236ace7f0ecaf3874a261844201 /rsProgram.cpp
parent779729718eab8ab5d1a3cd4b755a735acc241e6c (diff)
Improve RS error handling. On errors RS will now store the error and a message that can be read from the app. RS will then not continue rendering frames while an unchecked error is present until new state is received.
Diffstat (limited to 'rsProgram.cpp')
-rw-r--r--rsProgram.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/rsProgram.cpp b/rsProgram.cpp
index 656a3c33..478a6dcb 100644
--- a/rsProgram.cpp
+++ b/rsProgram.cpp
@@ -39,6 +39,7 @@ Program::Program(Context *rsc) : ObjectBase(rsc)
mInputCount = 0;
mOutputCount = 0;
mConstantCount = 0;
+ mIsValid = false;
}
Program::Program(Context *rsc, const char * shaderText, uint32_t shaderLength,
@@ -216,6 +217,7 @@ bool Program::loadShader(Context *rsc, uint32_t type)
}
glDeleteShader(mShaderID);
mShaderID = 0;
+ rsc->setError(RS_ERROR_BAD_SHADER, "Error returned from GL driver loading shader text,");
return false;
}
}
@@ -224,6 +226,7 @@ bool Program::loadShader(Context *rsc, uint32_t type)
if (rsc->props.mLogShaders) {
LOGV("--Shader load result %x ", glGetError());
}
+ mIsValid = true;
return true;
}