pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] r4095 - trunk/pingus/src/engine/display


From: grumbel at BerliOS
Subject: [Pingus-CVS] r4095 - trunk/pingus/src/engine/display
Date: Tue, 1 Dec 2009 03:50:45 +0100

Author: grumbel
Date: 2009-12-01 03:50:45 +0100 (Tue, 01 Dec 2009)
New Revision: 4095

Modified:
   trunk/pingus/src/engine/display/sprite_impl.cpp
Log:
Removed broken caching code, this fixes broken Sprite rotations


Modified: trunk/pingus/src/engine/display/sprite_impl.cpp
===================================================================
--- trunk/pingus/src/engine/display/sprite_impl.cpp     2009-12-01 02:50:09 UTC 
(rev 4094)
+++ trunk/pingus/src/engine/display/sprite_impl.cpp     2009-12-01 02:50:45 UTC 
(rev 4095)
@@ -22,51 +22,23 @@
 #include "engine/display/framebuffer.hpp"
 #include "engine/display/sprite_description.hpp"
 
-typedef std::map<std::string, FramebufferSurface> SurfaceCache;
-SurfaceCache surface_cache;
-
-FramebufferSurface load_framebuffer_surface(const Pathname& filename, 
ResourceModifier::Enum mod)
+FramebufferSurface load_framebuffer_surface(const Pathname& filename, 
ResourceModifier::Enum modifier)
 {
-  SurfaceCache::iterator i = surface_cache.find(filename.get_sys_path());
-  
-  if (i == surface_cache.end())
+  // FIXME: Implement proper cache 
+  Surface surface(filename);
+  if (modifier != ResourceModifier::ROT0)
   {
-
-    Surface surface(filename);
-    if (mod != ResourceModifier::ROT0)
-      surface = surface.mod(mod);
-
-    if (!surface)
-    {
-      std::cout << "Error: Sprite: couldn't load '" << filename << "'" << 
std::endl;
-      surface = Surface(Pathname("images/core/misc/404.png", 
Pathname::DATA_PATH));
-      if (!surface) assert(!"Surface Couldn't find 404");
-    }
-
-    FramebufferSurface framebuffer_surface = 
Display::get_framebuffer().create_surface(surface);
-
-    surface_cache[filename.get_sys_path()] = framebuffer_surface;
-
-    return framebuffer_surface;
+    surface = surface.mod(modifier);
   }
-  else
-  {
-    //std::cout << "Sharing: " << filename.get_sys_path() << std::endl;
-    return i->second;
-  }
-}
 
-void delete_framebuffer_surface(const Pathname& filename)
-{
-  SurfaceCache::iterator i = surface_cache.find(filename.get_sys_path());
-  if (i != surface_cache.end())
+  if (!surface)
   {
-    //std::cout << "UseCount for " << filename << ": " << 
i->second.use_count() << std::endl;
-    if (i->second.use_count() == 1)
-    {
-      surface_cache.erase(i);
-    }
+    std::cout << "Error: Sprite: couldn't load '" << filename << "'" << 
std::endl;
+    surface = Surface(Pathname("images/core/misc/404.png", 
Pathname::DATA_PATH));
+    if (!surface) assert(!"Surface Couldn't find 404");
   }
+
+  return Display::get_framebuffer().create_surface(surface);
 }
 
 SpriteImpl::SpriteImpl() :
@@ -99,7 +71,7 @@
   frame(0),
   tick_count(0)
 {
-  framebuffer_surface = load_framebuffer_surface(filename, mod);
+  framebuffer_surface = load_framebuffer_surface(desc.filename, mod);
 
   frame_pos = desc.frame_pos;
 
@@ -135,11 +107,6 @@
 
 SpriteImpl::~SpriteImpl()
 {
-  if (!filename.empty())
-  {
-    framebuffer_surface = FramebufferSurface();
-    delete_framebuffer_surface(filename);
-  }
 }
 
 void





reply via email to

[Prev in Thread] Current Thread [Next in Thread]