summaryrefslogtreecommitdiff
path: root/src/client/requestbroker/ThumbRenderRequest.cpp
diff options
context:
space:
mode:
authorSimon 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)
commit9479b7f3300658156c467980c28d3436a728bc0c (patch)
tree631a10f9fe9628d1250109f6b9c643d008591d39 /src/client/requestbroker/ThumbRenderRequest.cpp
parent7a055a9d90ea3464bbdc314df423e2aa768ce2be (diff)
downloadpowder-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.cpp56
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