Update of /cvsroot/super-tux/supertux/lib/video
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9926/lib/video
Modified Files:
surface.h surface.cpp
Log Message:
Apply filters when reloading Surfaces.
Fixes bug that after changing video mode, player only looked right and enemies left.
Index: surface.h
===================================================================
RCS file: /cvsroot/super-tux/supertux/lib/video/surface.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- surface.h 19 Oct 2004 17:45:38 -0000 1.7
+++ surface.h 20 Oct 2004 21:08:50 -0000 1.8
@@ -72,6 +72,10 @@
ConstructorType type;
SDL_Surface* surface;
std::string file;
+
+ struct Filter { int type; Color color; };
+ std::vector<Filter> applied_filters;
+
bool use_alpha;
int x;
int y;
Index: surface.cpp
===================================================================
RCS file: /cvsroot/super-tux/supertux/lib/video/surface.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- surface.cpp 19 Oct 2004 17:45:38 -0000 1.11
+++ surface.cpp 20 Oct 2004 21:08:51 -0000 1.12
@@ -194,12 +194,21 @@
{
w = impl->w;
h = impl->h;
+ for(std::vector<SurfaceData::Filter>::iterator i =
+ data.applied_filters.begin(); i != data.applied_filters.end();
+ i++)
+ impl->apply_filter(i->type, i->color);
}
}
void Surface::apply_filter(int filter, Color color)
{
impl->apply_filter(filter, color);
+
+SurfaceData::Filter apply_filter;
+apply_filter.type = filter;
+apply_filter.color = color;
+data.applied_filters.push_back(apply_filter);
}
Surface::~Surface()
|