summaryrefslogtreecommitdiffstats
path: root/o3d/core/cross/message_queue.cc
diff options
context:
space:
mode:
Diffstat (limited to 'o3d/core/cross/message_queue.cc')
-rw-r--r--o3d/core/cross/message_queue.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/o3d/core/cross/message_queue.cc b/o3d/core/cross/message_queue.cc
index ae601cf..23fa55e 100644
--- a/o3d/core/cross/message_queue.cc
+++ b/o3d/core/cross/message_queue.cc
@@ -44,6 +44,7 @@
#include "core/cross/texture.h"
#include "core/cross/error.h"
#include "core/cross/pointer_utils.h"
+#include "core/cross/renderer.h"
#ifdef OS_WIN
#include "core/cross/core_metrics.h"
@@ -791,5 +792,24 @@ bool MessageQueue::ProcessMessageUnregisterSharedMemory(
return res;
}
+// Processes a request to Render.
+bool MessageQueue::ProcessMessageRender(
+ ConnectedClient* client,
+ int message_length,
+ nacl::MessageHeader* header,
+ nacl::Handle* handles,
+ const MessageRender::Msg& message) {
+ if (header->iov_length != 1 ||
+ header->handle_count != 0) {
+ LOG(ERROR) << "Malformed message for RENDER";
+ return false;
+ }
+
+ Renderer* renderer(service_locator_->GetService<Renderer>());
+ if (renderer) {
+ renderer->set_need_to_render(true);
+ }
+ return true;
+}
} // namespace o3d