diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-14 11:30:24 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-14 11:30:24 (GMT) |
| commit | 9479b7f3300658156c467980c28d3436a728bc0c (patch) | |
| tree | 631a10f9fe9628d1250109f6b9c643d008591d39 /src/client/requestbroker/ThumbRenderRequest.cpp | |
| parent | 7a055a9d90ea3464bbdc314df423e2aa768ce2be (diff) | |
| download | powder-9479b7f3300658156c467980c28d3436a728bc0c.zip powder-9479b7f3300658156c467980c28d3436a728bc0c.tar.gz | |
Move requestbroker into new folder, make request process function a method of Request
Diffstat (limited to 'src/client/requestbroker/ThumbRenderRequest.cpp')
| -rw-r--r-- | src/client/requestbroker/ThumbRenderRequest.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/client/requestbroker/ThumbRenderRequest.cpp b/src/client/requestbroker/ThumbRenderRequest.cpp new file mode 100644 index 0000000..e239883 --- /dev/null +++ b/src/client/requestbroker/ThumbRenderRequest.cpp @@ -0,0 +1,56 @@ +#include <typeinfo> +#include "ThumbRenderRequest.h" +#include "client/GameSave.h" +#include "graphics/Graphics.h" +#include "search/Thumbnail.h" +#include "simulation/SaveRenderer.h" + +ThumbRenderRequest::ThumbRenderRequest(GameSave * save, bool decorations, bool fire, int width, int height, ListenerHandle listener): + RequestBroker::Request(ThumbnailRender, listener) +{ + Save = save; + Width = width; + Height = height; + Decorations = decorations; + Fire = fire; +} + +RequestBroker::ProcessResponse ThumbRenderRequest::Process(RequestBroker & rb) +{ +#ifdef DEBUG + std::cout << typeid(*this).name() << " Processing render request" << std::endl; +#endif + Thumbnail * thumbnail = SaveRenderer::Ref().Render(Save, Decorations, Fire); + + delete Save; + Save = NULL; + + if(thumbnail) + { + thumbnail->Resize(Width, Height); + ResultObject = (void*)thumbnail; + rb.requestComplete((Request*)this); + return RequestBroker::Finished; + } + else + { + return RequestBroker::Failed; + } + return RequestBroker::Failed; +} + +ThumbRenderRequest::~ThumbRenderRequest() +{ + if(Save) + delete Save; +} + +void ThumbRenderRequest::Cleanup() +{ + Request::Cleanup(); + if(ResultObject) + { + delete ((VideoBuffer*)ResultObject); + ResultObject = NULL; + } +}
\ No newline at end of file |
