diff options
author | 2011-12-29 11:17:38 -0800 | |
---|---|---|
committer | 2011-12-29 11:17:38 -0800 | |
commit | 5b5664af2d35876fca79c5b10521072138a568e3 (patch) | |
tree | 740b64a8148d3a4f2335f2b5cb95942420672791 | |
parent | 36a7d6003d521e6aff16e2a1e74f19ea9ec00624 (diff) |
Adding better error behavior to RS
Change-Id: Iea1cc76793f8978d60575404d7b1c5145e268d6e
-rw-r--r-- | libs/rs/RenderScriptDefines.h | 20 | ||||
-rw-r--r-- | libs/rs/driver/rsdMeshObj.cpp | 1 | ||||
-rw-r--r-- | libs/rs/driver/rsdProgramRaster.cpp | 3 | ||||
-rw-r--r-- | libs/rs/rsComponent.cpp | 4 | ||||
-rw-r--r-- | libs/rs/scriptc/rs_graphics.rsh | 18 | ||||
-rw-r--r-- | libs/rs/scriptc/rs_types.rsh | 8 | ||||
-rw-r--r-- | tests/RenderScriptTests/tests/src/com/android/rs/test/mesh.rs | 2 |
7 files changed, 46 insertions, 10 deletions
diff --git a/libs/rs/RenderScriptDefines.h b/libs/rs/RenderScriptDefines.h index 728b27aa051a..49c75c5d3d95 100644 --- a/libs/rs/RenderScriptDefines.h +++ b/libs/rs/RenderScriptDefines.h @@ -153,6 +153,8 @@ enum RsDataType { RS_TYPE_PROGRAM_VERTEX, RS_TYPE_PROGRAM_RASTER, RS_TYPE_PROGRAM_STORE, + + RS_TYPE_INVALID = 10000, }; enum RsDataKind { @@ -164,6 +166,8 @@ enum RsDataKind { RS_KIND_PIXEL_RGB, RS_KIND_PIXEL_RGBA, RS_KIND_PIXEL_DEPTH, + + RS_KIND_INVALID = 100, }; enum RsSamplerParam { @@ -182,6 +186,8 @@ enum RsSamplerValue { RS_SAMPLER_WRAP, RS_SAMPLER_CLAMP, RS_SAMPLER_LINEAR_MIP_NEAREST, + + RS_SAMPLER_INVALID = 100, }; enum RsTextureTarget { @@ -222,7 +228,8 @@ enum RsBlendSrcFunc { RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA, // 5 RS_BLEND_SRC_DST_ALPHA, // 6 RS_BLEND_SRC_ONE_MINUS_DST_ALPHA, // 7 - RS_BLEND_SRC_SRC_ALPHA_SATURATE // 8 + RS_BLEND_SRC_SRC_ALPHA_SATURATE, // 8 + RS_BLEND_SRC_INVALID = 100, }; enum RsBlendDstFunc { @@ -233,7 +240,9 @@ enum RsBlendDstFunc { RS_BLEND_DST_SRC_ALPHA, // 4 RS_BLEND_DST_ONE_MINUS_SRC_ALPHA, // 5 RS_BLEND_DST_DST_ALPHA, // 6 - RS_BLEND_DST_ONE_MINUS_DST_ALPHA // 7 + RS_BLEND_DST_ONE_MINUS_DST_ALPHA, // 7 + + RS_BLEND_DST_INVALID = 100, }; enum RsTexEnvMode { @@ -256,7 +265,9 @@ enum RsPrimitive { RS_PRIMITIVE_LINE_STRIP, RS_PRIMITIVE_TRIANGLE, RS_PRIMITIVE_TRIANGLE_STRIP, - RS_PRIMITIVE_TRIANGLE_FAN + RS_PRIMITIVE_TRIANGLE_FAN, + + RS_PRIMITIVE_INVALID = 100, }; enum RsPathPrimitive { @@ -315,7 +326,8 @@ enum RsA3DClassID { enum RsCullMode { RS_CULL_BACK, RS_CULL_FRONT, - RS_CULL_NONE + RS_CULL_NONE, + RS_CULL_INVALID = 100, }; typedef struct { diff --git a/libs/rs/driver/rsdMeshObj.cpp b/libs/rs/driver/rsdMeshObj.cpp index 9ac638354dd8..9a8c4d564df0 100644 --- a/libs/rs/driver/rsdMeshObj.cpp +++ b/libs/rs/driver/rsdMeshObj.cpp @@ -191,6 +191,7 @@ void RsdMeshObj::updateGLPrimitives() { case RS_PRIMITIVE_TRIANGLE: mGLPrimitives[i] = GL_TRIANGLES; break; case RS_PRIMITIVE_TRIANGLE_STRIP: mGLPrimitives[i] = GL_TRIANGLE_STRIP; break; case RS_PRIMITIVE_TRIANGLE_FAN: mGLPrimitives[i] = GL_TRIANGLE_FAN; break; + default: LOGE("Invalid mesh primitive"); break; } } } diff --git a/libs/rs/driver/rsdProgramRaster.cpp b/libs/rs/driver/rsdProgramRaster.cpp index b4937594ba4d..9b64fa9914aa 100644 --- a/libs/rs/driver/rsdProgramRaster.cpp +++ b/libs/rs/driver/rsdProgramRaster.cpp @@ -45,6 +45,9 @@ void rsdProgramRasterSetActive(const Context *rsc, const ProgramRaster *pr) { case RS_CULL_NONE: RSD_CALL_GL(glDisable, GL_CULL_FACE); break; + default: + LOGE("Invalid cull type"); + break; } } diff --git a/libs/rs/rsComponent.cpp b/libs/rs/rsComponent.cpp index 21b98f6193a2..9c2c2005f38d 100644 --- a/libs/rs/rsComponent.cpp +++ b/libs/rs/rsComponent.cpp @@ -62,6 +62,7 @@ void Component::set(RsDataType dt, RsDataKind dk, bool norm, uint32_t vecSize) { rsAssert(mNormalized == true); break; default: + rsAssert(mKind != RS_KIND_INVALID); break; } @@ -167,6 +168,9 @@ void Component::set(RsDataType dt, RsDataKind dk, bool norm, uint32_t vecSize) { case RS_TYPE_BOOLEAN: mTypeBits = 8; break; + default: + rsAssert(mType != RS_TYPE_INVALID); + break; } mBitsUnpadded = mTypeBits * mVectorSize; diff --git a/libs/rs/scriptc/rs_graphics.rsh b/libs/rs/scriptc/rs_graphics.rsh index a01bc3dec2e8..64fcd23cc65c 100644 --- a/libs/rs/scriptc/rs_graphics.rsh +++ b/libs/rs/scriptc/rs_graphics.rsh @@ -31,7 +31,9 @@ typedef enum { RS_DEPTH_FUNC_GREATER, RS_DEPTH_FUNC_GEQUAL, RS_DEPTH_FUNC_EQUAL, - RS_DEPTH_FUNC_NOTEQUAL + RS_DEPTH_FUNC_NOTEQUAL, + + RS_DEPTH_FUNC_INVALID = 100, } rs_depth_func; typedef enum { @@ -43,7 +45,9 @@ typedef enum { RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA, // 5 RS_BLEND_SRC_DST_ALPHA, // 6 RS_BLEND_SRC_ONE_MINUS_DST_ALPHA, // 7 - RS_BLEND_SRC_SRC_ALPHA_SATURATE // 8 + RS_BLEND_SRC_SRC_ALPHA_SATURATE, // 8 + + RS_BLEND_SRC_INVALID = 100, } rs_blend_src_func; typedef enum { @@ -54,13 +58,17 @@ typedef enum { RS_BLEND_DST_SRC_ALPHA, // 4 RS_BLEND_DST_ONE_MINUS_SRC_ALPHA, // 5 RS_BLEND_DST_DST_ALPHA, // 6 - RS_BLEND_DST_ONE_MINUS_DST_ALPHA // 7 + RS_BLEND_DST_ONE_MINUS_DST_ALPHA, // 7 + + RS_BLEND_DST_INVALID = 100, } rs_blend_dst_func; typedef enum { RS_CULL_BACK, RS_CULL_FRONT, - RS_CULL_NONE + RS_CULL_NONE, + + RS_CULL_INVALID = 100, } rs_cull_mode; typedef enum { @@ -70,6 +78,8 @@ typedef enum { RS_SAMPLER_WRAP, RS_SAMPLER_CLAMP, RS_SAMPLER_LINEAR_MIP_NEAREST, + + RS_SAMPLER_INVALID = 100, } rs_sampler_value; #if (defined(RS_VERSION) && (RS_VERSION >= 14)) diff --git a/libs/rs/scriptc/rs_types.rsh b/libs/rs/scriptc/rs_types.rsh index e1c8650ddc66..5345a48ef895 100644 --- a/libs/rs/scriptc/rs_types.rsh +++ b/libs/rs/scriptc/rs_types.rsh @@ -412,7 +412,9 @@ typedef enum { RS_PRIMITIVE_LINE_STRIP, RS_PRIMITIVE_TRIANGLE, RS_PRIMITIVE_TRIANGLE_STRIP, - RS_PRIMITIVE_TRIANGLE_FAN + RS_PRIMITIVE_TRIANGLE_FAN, + + RS_PRIMITIVE_INVALID = 100, } rs_primitive; /** @@ -467,6 +469,8 @@ typedef enum { RS_TYPE_PROGRAM_VERTEX, RS_TYPE_PROGRAM_RASTER, RS_TYPE_PROGRAM_STORE, + + RS_TYPE_INVALID = 10000, } rs_data_type; /** @@ -486,6 +490,8 @@ typedef enum { RS_KIND_PIXEL_RGB, RS_KIND_PIXEL_RGBA, RS_KIND_PIXEL_DEPTH, + + RS_KIND_INVALID = 100, } rs_data_kind; #endif diff --git a/tests/RenderScriptTests/tests/src/com/android/rs/test/mesh.rs b/tests/RenderScriptTests/tests/src/com/android/rs/test/mesh.rs index efacdcb209c5..627ab9923c72 100644 --- a/tests/RenderScriptTests/tests/src/com/android/rs/test/mesh.rs +++ b/tests/RenderScriptTests/tests/src/com/android/rs/test/mesh.rs @@ -38,7 +38,7 @@ static bool test_mesh_getters() { _RS_ASSERT(p0 == RS_PRIMITIVE_POINT); _RS_ASSERT(p1 == RS_PRIMITIVE_LINE); _RS_ASSERT(p2 == RS_PRIMITIVE_TRIANGLE); - _RS_ASSERT(p3 == RS_PRIMITIVE_POINT); + _RS_ASSERT(p3 == RS_PRIMITIVE_INVALID); if (failed) { rsDebug("test_mesh_getters FAILED", 0); |