summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/graphics/Graphics.cpp21
-rw-r--r--src/graphics/Graphics.h1
-rw-r--r--src/gui/save/LocalSaveActivity.cpp2
-rw-r--r--src/gui/save/ServerSaveActivity.cpp2
4 files changed, 26 insertions, 0 deletions
diff --git a/src/graphics/Graphics.cpp b/src/graphics/Graphics.cpp
index cc18f25..d4e2956 100644
--- a/src/graphics/Graphics.cpp
+++ b/src/graphics/Graphics.cpp
@@ -1116,6 +1116,27 @@ void Graphics::draw_icon(int x, int y, Icon icon, unsigned char alpha, bool inve
}
}
+void Graphics::draw_rgba_image(unsigned char *data, int x, int y, float alpha)
+{
+ unsigned char w, h;
+ int i, j;
+ unsigned char r, g, b, a;
+ if (!data) return;
+ 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;
+ addpixel(x+i, y+j, r, g, b, (int)(a*alpha));
+ }
+ }
+}
+
pixel *Graphics::render_packed_rgb(void *image, int width, int height, int cmp_size)
{
unsigned char *tmp;
diff --git a/src/graphics/Graphics.h b/src/graphics/Graphics.h
index 2cbdd87..580f2c0 100644
--- a/src/graphics/Graphics.h
+++ b/src/graphics/Graphics.h
@@ -247,6 +247,7 @@ public:
void draw_image(pixel *img, int x, int y, int w, int h, int a);
void draw_image(const VideoBuffer & vidBuf, int w, int h, int a);
void draw_image(VideoBuffer * vidBuf, int w, int h, int a);
+ void draw_rgba_image(unsigned char *data, int x, int y, float alpha);
Graphics();
~Graphics();
diff --git a/src/gui/save/LocalSaveActivity.cpp b/src/gui/save/LocalSaveActivity.cpp
index 05fe7dd..dfcc39e 100644
--- a/src/gui/save/LocalSaveActivity.cpp
+++ b/src/gui/save/LocalSaveActivity.cpp
@@ -9,6 +9,7 @@
#include "client/Client.h"
#include "client/GameSave.h"
#include "gui/Style.h"
+#include "images.h"
class LocalSaveActivity::CancelAction: public ui::ButtonAction
{
@@ -121,6 +122,7 @@ void LocalSaveActivity::saveWrite(std::string finalFilename)
void LocalSaveActivity::OnDraw()
{
Graphics * g = ui::Engine::Ref().g;
+ g->draw_rgba_image((unsigned char*)save_to_disk_image, -10, 0, 0.7f);
g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3);
g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255);
diff --git a/src/gui/save/ServerSaveActivity.cpp b/src/gui/save/ServerSaveActivity.cpp
index 20969e3..7e83847 100644
--- a/src/gui/save/ServerSaveActivity.cpp
+++ b/src/gui/save/ServerSaveActivity.cpp
@@ -12,6 +12,7 @@
#include "tasks/Task.h"
#include "gui/Style.h"
#include "client/GameSave.h"
+#include "images.h"
class ServerSaveActivity::CancelAction: public ui::ButtonAction
{
@@ -320,6 +321,7 @@ void ServerSaveActivity::OnTick(float dt)
void ServerSaveActivity::OnDraw()
{
Graphics * g = ui::Engine::Ref().g;
+ g->draw_rgba_image((unsigned char*)save_to_server_image, -10, 0, 0.7f);
g->clearrect(Position.X-2, Position.Y-2, Size.X+3, Size.Y+3);
g->drawrect(Position.X, Position.Y, Size.X, Size.Y, 255, 255, 255, 255);