This repository has been archived on 2022-06-27. You can view files and clone it, but cannot push or open issues or pull requests.
Xash3DArchive/pr_uimenu/graphic.c

210 lines
4.4 KiB
C

///////////////////////////////////////////////
// Graphic Source File
///////////////////////
// This file belongs to dpmod/darkplaces
// AK contains all graphic functions
///////////////////////////////////////////////
void(void) gfx_init =
{
vid_conwidth = cvar("width");
vid_conheight = cvar("height");
};
void(void) gfx_frame =
{
vid_conwidth = cvar("width");
vid_conheight = cvar("height");
};
void(void) gfx_toggle =
{
};
void(float keynr, string ascii) gfx_keydown =
{
};
void(void) gfx_draw =
{
};
void(void) gfx_shutdown =
{
};
string(string pic_name, float complain) gfx_loadpic =
{
string c;
c = precache_pic(pic_name);
if(c == "" && complain)
error("Couldnt precache ", pic_name, " !\n");
if(c == "")
dprint("Couldnt precache ", pic_name, " !\n");
return c;
};
void(string pic_name) gfx_unloadpic =
{
// FIXME: gfx_unloadpic is a bit buggy in dp at the moment - restart the menu a few times
// and you get an access violation
//gfx_unloadpic(pic_name);
};
void(vector position, float character, vector scale, vector rgb, float alpha, float flag)
gfx_drawchar =
{
float ret;
position = gfx_converttocon(position);
scale = gfx_converttocon(scale);
if(scale == '0 0 0')
return;
ret = drawcharacter(position, character, scale, rgb, alpha );
if(ret == 1)
return;
if(ret == ERR_NULLSTRING)
error("Null character !\n");
if(ret == ERR_BADDRAWFLAG)
error("Bad draw flag !\n");
if(ret == ERR_BADSCALE)
error("Bad scale !\n");
error("Unknown error code !\n");
};
void(vector position, string str, vector scale, vector rgb, float alpha, float flag)
gfx_drawstring =
{
float ret;
position = gfx_converttocon(position);
scale = gfx_converttocon(scale);
if(scale == '0 0 0')
return;
ret = drawstring(position, str, scale, rgb, alpha, flag);
if(ret == 1)
return;
if(ret == ERR_NULLSTRING)
error("Null string !\n");
if(ret == ERR_BADDRAWFLAG)
error("Bad draw flag !\n");
if(ret == ERR_BADSCALE)
error("Bad scale !\n");
error("Unknown error code !\n");
};
void(vector position, string pic_name, vector size, vector rgb, float alpha, float flag)
gfx_drawpic =
{
float ret;
if(size == '0 0 0') size = gfx_getimagesize(pic_name);
ret = drawpic(position, pic_name, size, rgb, alpha );
if(ret == 1) return;
if(ret == ERR_NULLSTRING)
error("Null string !\n");
if(ret == ERR_BADDRAWFLAG)
error("Bad draw flag !\n");
if(ret == ERR_BADSIZE)
error("Bad size !\n");
if(ret == ERR_NOTCACHED)
error("Picture ", pic_name, " was not precached !\n");
error("Unknown error code !\n");
};
void gfx_fillarea (vector position, vector size, vector rgb, float alpha, float flag)
{
float ret;
if(size == '0 0 0') return;
ret = drawfill(position, size, rgb, alpha, flag);
if(ret == 1) return;
if(ret == ERR_BADDRAWFLAG)
error("Bad draw flag !\n");
error("Unknown error code !\n");
}
void(vector position, vector size) gfx_setcliparea =
{
};
void(void) gfx_resetcliparea =
{
};
void menu_drawchar (vector position, float character, vector scale, vector rgb, float alpha, float flag)
{
position = gfx_conmentogfx(position);
gfx_drawchar(position, character, scale, rgb, alpha, flag);
}
void(vector position, string str, vector scale, vector rgb, float alpha, float flag)
menu_drawstring =
{
position = gfx_conmentogfx(position);
gfx_drawstring(position, str, scale, rgb, alpha, flag);
}
void(vector position, string pic_name, vector size, vector rgb, float alpha, float flag)
menu_drawpic =
{
position = gfx_conmentogfx(position);
gfx_drawpic(position, pic_name, size, rgb, alpha, flag);
};
void(vector position, vector size, vector rgb, float alpha, float flag)
menu_fillarea =
{
position = gfx_conmentogfx(position);
gfx_fillarea(position, size, rgb, alpha, flag);
};
void(vector position, vector size) menu_setcliparea =
{
position = gfx_conmentogfx(position);
gfx_setcliparea(position, size);
};
void(void) menu_resetcliparea =
{
gfx_resetcliparea();
};
vector(string pic_name) gfx_getimagesize =
{
return drawgetimagesize(pic_name);
}
vector(vector vec) gfx_converttogfx =
{
return vec;
};
vector gfx_converttocon (vector vec)
{
return vec;
}
vector(vector vec) gfx_conmentogfx =
{
return (vec + menu_localorigin);
};
vector(vector vec) gfx_congfxtomen =
{
return (vec - menu_localorigin);
};