diff options
author | Jason Sams <rjsams@android.com> | 2009-08-17 13:56:09 -0700 |
---|---|---|
committer | Jason Sams <rjsams@android.com> | 2009-08-17 13:56:09 -0700 |
commit | 334ea0c98f051b5a6b85bc616c93304651854298 (patch) | |
tree | b3d87acd4f6285446fdc166d0ec9bb5330f42c21 /libs/rs/rsScriptC_Lib.cpp | |
parent | 0ef135d5c79ff5b443b43f8743250044700a8bb5 (diff) |
Update fountain and add writable flag to script slots.
Diffstat (limited to 'libs/rs/rsScriptC_Lib.cpp')
-rw-r--r-- | libs/rs/rsScriptC_Lib.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp index c13894b7ec1a..0ecdf9a06998 100644 --- a/libs/rs/rsScriptC_Lib.cpp +++ b/libs/rs/rsScriptC_Lib.cpp @@ -465,6 +465,14 @@ static void SC_matrixTranslate(rsc_Matrix *mat, float x, float y, float z) } +static void SC_vec2Rand(float *vec, float maxLen) +{ + float angle = SC_randf(PI * 2); + float len = SC_randf(maxLen); + vec[0] = len * sinf(angle); + vec[1] = len * cosf(angle); +} + ////////////////////////////////////////////////////////////////////////////// @@ -780,6 +788,24 @@ static uint32_t SC_getHeight() return rsc->getHeight(); } +static uint32_t SC_colorFloatRGBAtoUNorm8(float r, float g, float b, float a) +{ + uint32_t c = 0; + c |= (uint32_t)(r * 255.f + 0.5f); + c |= ((uint32_t)(g * 255.f + 0.5f)) << 8; + c |= ((uint32_t)(b * 255.f + 0.5f)) << 16; + c |= ((uint32_t)(a * 255.f + 0.5f)) << 24; + return c; +} + +static uint32_t SC_colorFloatRGBAto565(float r, float g, float b) +{ + uint32_t ir = (uint32_t)(r * 255.f + 0.5f); + uint32_t ig = (uint32_t)(g * 255.f + 0.5f); + uint32_t ib = (uint32_t)(b * 255.f + 0.5f); + return rs888to565(ir, ig, ib); +} + ////////////////////////////////////////////////////////////////////////////// // Class implementation ////////////////////////////////////////////////////////////////////////////// @@ -937,6 +963,10 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = { { "matrixTranslate", (void *)&SC_matrixTranslate, "void", "(float *mat, float x, float y, float z)" }, + // vector + { "vec2Rand", (void *)&SC_vec2Rand, + "void", "(float *vec, float maxLen)" }, + // context { "bindProgramFragment", (void *)&SC_bindProgramFragment, "void", "(int)" }, @@ -999,6 +1029,12 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = { { "uploadToBufferObject", (void *)&SC_uploadToBufferObject, "void", "(int)" }, + { "colorFloatRGBAtoUNorm8", (void *)&SC_colorFloatRGBAtoUNorm8, + "int", "(float, float, float, float)" }, + { "colorFloatRGBto565", (void *)&SC_colorFloatRGBAto565, + "int", "(float, float, float)" }, + + { "getWidth", (void *)&SC_getWidth, "int", "()" }, { "getHeight", (void *)&SC_getHeight, |