diff options
Diffstat (limited to 'extensions/smentity.cpp')
-rw-r--r-- | extensions/smentity.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/extensions/smentity.cpp b/extensions/smentity.cpp index ea28e74..00660e5 100644 --- a/extensions/smentity.cpp +++ b/extensions/smentity.cpp @@ -126,6 +126,23 @@ smEntity3D::smEntity3D(SMTEX tex,float _x,float _y,float _w,float _h) for(int i=0;i<4;++i){quad.v[i].z=.5f;quad.v[i].col=0xFFFFFFFF;} quad.blend=BLEND_ALPHABLEND; } +smEntity3D::smEntity3D(SMTEX tex,smTexRect rect) +{ + sm=smGetInterface(SMELT_APILEVEL); + tx=rect.x;ty=rect.y;w=rect.w;h=rect.h; + if(tex) + { + texw=sm->smTextureGetWidth(tex); + texh=sm->smTextureGetHeight(tex); + }else texw=texh=1.; + ctrx=ctry=0;quad.tex=tex; + quad.v[0].tx=rect.x/texw;quad.v[0].ty=rect.y/texh; + quad.v[1].tx=(rect.x+rect.w)/texw;quad.v[1].ty=rect.y/texh; + quad.v[2].tx=(rect.x+rect.w)/texw;quad.v[2].ty=(rect.y+rect.h)/texh; + quad.v[3].tx=rect.x/texw;quad.v[3].ty=(rect.y+rect.h)/texh; + for(int i=0;i<4;++i){quad.v[i].z=.5f;quad.v[i].col=0xFFFFFFFF;} + quad.blend=BLEND_ALPHABLEND; +} smEntity3D::smEntity3D(const smEntity3D ©) { memcpy(this,©,sizeof(smEntity3D)); |