diff options
Diffstat (limited to 'libs/rs/rsScriptC_Lib.cpp')
-rw-r--r-- | libs/rs/rsScriptC_Lib.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/rs/rsScriptC_Lib.cpp b/libs/rs/rsScriptC_Lib.cpp index 3ba9cee..eeb9468 100644 --- a/libs/rs/rsScriptC_Lib.cpp +++ b/libs/rs/rsScriptC_Lib.cpp @@ -778,6 +778,17 @@ static void SC_drawSpriteScreenspace(float x, float y, float z, float w, float h rsc->setVertex((ProgramVertex *)tmp.get()); } +static void SC_drawSpriteScreenspaceCropped(float x, float y, float z, float w, float h, + float cx0, float cy0, float cx1, float cy1) +{ + GET_TLS(); + rsc->setupCheck(); + + GLint crop[4] = {cx0, cy0, cx1, cy1}; + glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, crop); + glDrawTexfOES(x, y, z, w, h); +} + static void SC_drawSprite(float x, float y, float z, float w, float h) { GET_TLS(); @@ -1289,6 +1300,8 @@ ScriptCState::SymbolTable_t ScriptCState::gSyms[] = { "void", "(float x, float y, float z, float w, float h)" }, { "drawSpriteScreenspace", (void *)&SC_drawSpriteScreenspace, "void", "(float x, float y, float z, float w, float h)" }, + { "drawSpriteScreenspaceCropped", (void *)&SC_drawSpriteScreenspaceCropped, + "void", "(float x, float y, float z, float w, float h, float cx0, float cy0, float cx1, float cy1)" }, { "drawLine", (void *)&SC_drawLine, "void", "(float x1, float y1, float z1, float x2, float y2, float z2)" }, { "drawPoint", (void *)&SC_drawPoint, |