From: FruitieX Date: Fri, 2 Jul 2010 11:57:08 +0000 (+0300) Subject: macro for drawpic_aspect X-Git-Tag: xonotic-v0.1.0preview~457^2~36 X-Git-Url: http://de.git.xonotic.org/?a=commitdiff_plain;h=d03168640126b9083056735da18c8774b803b570;p=xonotic%2Fxonotic-data.pk3dir.git macro for drawpic_aspect --- diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index b08d89afe..ecfeb24b1 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -86,48 +86,24 @@ void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector the // TODO: make a default skin, and fallback to these! // drawpic wrapper to draw an image as large as possible with preserved aspect ratio into a box -void drawpic_aspect_skin(vector pos, string pic, vector sz, vector color, float alpha, float drawflag) { - pic = strcat(hud_skin_path, "/", pic); - - vector imgsize; - imgsize = drawgetimagesize(pic); - float imgaspect; - imgaspect = imgsize_x/imgsize_y; - - vector oldsz; - oldsz = sz; - float aspect; - aspect = sz_x/sz_y; - - if(aspect > imgaspect) { - sz_x = sz_y * imgaspect; - drawpic(pos + eX * (oldsz_x - sz_x) * 0.5, pic, sz, color, alpha, drawflag); - } else { - sz_y = sz_x / imgaspect; - drawpic(pos + eY * (oldsz_y - sz_y) * 0.5, pic, sz, color, alpha, drawflag); - } +#define drawpic_aspect(pos, pic, sz, color, alpha, drawflag)\ + vector imgsize;\ + imgsize = drawgetimagesize(pic);\ + var float imgaspect = imgsize_x/imgsize_y;\ + vector oldsz;\ + oldsz = sz;\ + var float aspect = sz_x/sz_y;\ + if(aspect > imgaspect) {\ + sz_x = sz_y * imgaspect;\ + drawpic(pos + eX * (oldsz_x - sz_x) * 0.5, pic, sz, color, alpha, drawflag);\ + } else {\ + sz_y = sz_x / imgaspect;\ + drawpic(pos + eY * (oldsz_y - sz_y) * 0.5, pic, sz, color, alpha, drawflag);\ + }\ } -// drawpic wrapper to draw an image as large as possible with preserved aspect ratio into a box -void drawpic_aspect(vector pos, string pic, vector sz, vector color, float alpha, float drawflag) { - vector imgsize; - imgsize = drawgetimagesize(pic); - float imgaspect; - imgaspect = imgsize_x/imgsize_y; - - vector oldsz; - oldsz = sz; - float aspect; - aspect = sz_x/sz_y; - - if(aspect > imgaspect) { - sz_x = sz_y * imgaspect; - drawpic(pos + eX * (oldsz_x - sz_x) * 0.5, pic, sz, color, alpha, drawflag); - } else { - sz_y = sz_x / imgaspect; - drawpic(pos + eY * (oldsz_y - sz_y) * 0.5, pic, sz, color, alpha, drawflag); - } -} +#define drawpic_aspect_skin(pos, pic, sz, color, alpha, drawflag)\ + drawpic_aspect(pos, strcat(hud_skin_path, "/", pic), sz, color, alpha, drawflag) // TODO: aspect! void drawpic_aspect_skin_expanding(vector pos, string pic, vector sz, vector rgb, float alpha, float flag, float fadelerp) {