summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2011-06-09 16:53:41 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2011-06-09 16:53:41 (GMT)
commit1effdb052a0b952d1390109bed67b3371046ccb7 (patch)
treefef81cd5f965947ed152caa19f8e7c39463f3b47 /src
parent74f613962e1090e3ad2db186e555a29c12c03941 (diff)
downloadpowder-1effdb052a0b952d1390109bed67b3371046ccb7.zip
powder-1effdb052a0b952d1390109bed67b3371046ccb7.tar.gz
Image for server saving
Diffstat (limited to 'src')
-rw-r--r--src/graphics.c20
-rw-r--r--src/interface.c8
2 files changed, 25 insertions, 3 deletions
diff --git a/src/graphics.c b/src/graphics.c
index b8ef697..aab77ab 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -3624,6 +3624,26 @@ pixel *render_packed_rgb(void *image, int width, int height, int cmp_size)
return res;
}
+void draw_rgba_image(pixel *vid, unsigned char *data, int x, int y, float alpha)
+{
+ unsigned char w, h;
+ int i, j;
+ unsigned char r, g, b, a;
+ w = *(data++)&0xFF;
+ h = *(data++)&0xFF;
+ for (j=0; j<h; j++)
+ {
+ for (i=0; i<w; i++)
+ {
+ r = *(data++)&0xFF;
+ g = *(data++)&0xFF;
+ b = *(data++)&0xFF;
+ a = *(data++)&0xFF;
+ drawpixel(vid, x+i, y+j, r, g, b, a*alpha);
+ }
+ }
+}
+
void draw_image(pixel *vid, pixel *img, int x, int y, int w, int h, int a)
{
int i, j, r, g, b;
diff --git a/src/interface.c b/src/interface.c
index 86bc0eb..82749a6 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -15,6 +15,7 @@
#include <interface.h>
#include <misc.h>
#include <console.h>
+#include <images.h>
SDLMod sdl_mod;
int sdl_key, sdl_wheel, sdl_caps=0, sdl_ascii, sdl_zoom_trig=0;
@@ -1074,7 +1075,7 @@ int confirm_ui(pixel *vid_buf, char *top, char *msg, char *btn)
void login_ui(pixel *vid_buf)
{
- int x0=(XRES-192)/2,y0=(YRES-80)/2,b=1,bq,mx,my,err;
+ int x0=(XRES+BARSIZE-192)/2,y0=(YRES+MENUSIZE-80)/2,b=1,bq,mx,my,err;
ui_edit ed1,ed2;
char *res;
@@ -1106,7 +1107,7 @@ void login_ui(pixel *vid_buf)
ed2.multiline = 0;
strcpy(ed2.str, "");
- fillrect(vid_buf, -1, -1, XRES, YRES+MENUSIZE, 0, 0, 0, 192);
+ fillrect(vid_buf, -1, -1, XRES+BARSIZE, YRES+MENUSIZE, 0, 0, 0, 192);
while (!sdl_poll())
{
bq = b;
@@ -1575,6 +1576,8 @@ int save_name_ui(pixel *vid_buf)
cb.checked = svf_publish;
fillrect(vid_buf, -1, -1, XRES+BARSIZE, YRES+MENUSIZE, 0, 0, 0, 192);
+ draw_rgba_image(vid_buf, save_to_server_image, 0, 0, 0.7);
+
memcpy(old_vid, vid_buf, ((XRES+BARSIZE)*(YRES+MENUSIZE))*PIXELSIZE);
while (!sdl_poll())
@@ -1617,7 +1620,6 @@ int save_name_ui(pixel *vid_buf)
ui_copytext_draw(vid_buf, &ctb);
ui_copytext_process(mx, my, b, bq, &ctb);
}
-
sdl_blit(0, 0, (XRES+BARSIZE), YRES+MENUSIZE, vid_buf, (XRES+BARSIZE));
memcpy(vid_buf, old_vid, ((XRES+BARSIZE)*(YRES+MENUSIZE))*PIXELSIZE);