diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-03 16:08:56 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-04-03 16:08:56 (GMT) |
| commit | 838a612026c821c03e663c818d4bc9fe740febd8 (patch) | |
| tree | 4b467bec3336452d8f65793b1cee31f0ffb05d2e /src/search | |
| parent | 73c5082cbcdd3a986765723bd4182e45386ce766 (diff) | |
| download | powder-838a612026c821c03e663c818d4bc9fe740febd8.zip powder-838a612026c821c03e663c818d4bc9fe740febd8.tar.gz | |
Use a single instance of a background simulation for thumbnail rendering
Diffstat (limited to 'src/search')
| -rw-r--r-- | src/search/Thumbnail.cpp | 44 | ||||
| -rw-r--r-- | src/search/Thumbnail.h | 3 |
2 files changed, 7 insertions, 40 deletions
diff --git a/src/search/Thumbnail.cpp b/src/search/Thumbnail.cpp index 2fcd34a..6a97a08 100644 --- a/src/search/Thumbnail.cpp +++ b/src/search/Thumbnail.cpp @@ -6,9 +6,6 @@ */ #include "Thumbnail.h" -#include "simulation/Simulation.h" -#include "simulation/SaveLoader.h" -#include "Renderer.h" Thumbnail::Thumbnail(const Thumbnail & thumb): ID(thumb.ID), @@ -34,42 +31,15 @@ Thumbnail::Thumbnail(int _id, int _datestamp, pixel * _data, ui::Point _size): Data(_data), Size(_size) { -} - -Thumbnail::Thumbnail(Save * save): - ID(0), - Datestamp(0), - Data(NULL), - Size(XRES+BARSIZE, YRES+MENUSIZE) -{ - Graphics * g = new Graphics(); - Simulation * sim = new Simulation(); - Renderer * ren = new Renderer(g, sim); - sim->Load(save->GetData(), save->GetDataLength()); - ren->render_parts(); - - int width, height; - - pixel * dst; - pixel * src = g->vid; - - if(SaveLoader::Info(save->GetData(), save->GetDataLength(), width, height)) - goto fail; - - dst = Data = (pixel *)malloc(PIXELSIZE * ((width*CELL)*(height*CELL))); - - for(int i = 0; i < height*CELL; i++) + if(_data) { - memcpy(dst, src, (width*CELL)*PIXELSIZE); - dst+=(width*CELL);///PIXELSIZE; - src+=XRES+BARSIZE; + Data = (pixel *)malloc((_size.X*_size.Y) * PIXELSIZE); + memcpy(Data, _data, (_size.X*_size.Y) * PIXELSIZE); + } + else + { + Data = NULL; } - - Size = ui::Point(width*CELL, height*CELL); -fail: - delete ren; - delete sim; - delete g; } Thumbnail::~Thumbnail() diff --git a/src/search/Thumbnail.h b/src/search/Thumbnail.h index 3ed9dd2..25c0985 100644 --- a/src/search/Thumbnail.h +++ b/src/search/Thumbnail.h @@ -4,7 +4,6 @@ #include <iostream> #include "Graphics.h" #include "interface/Point.h" -#include "Save.h" class Thumbnail { @@ -13,8 +12,6 @@ public: Thumbnail(int _id, int _datestamp, pixel * _data, ui::Point _size); - Thumbnail(Save * save); - ~Thumbnail(); int ID, Datestamp; |
