blob: 46e840d5d6cb65966a612495c81b4001802e88c1 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "garnet/examples/ui/shadertoy/service/shadertoy_impl.h"
namespace shadertoy {
ShadertoyImpl::ShadertoyImpl(fxl::RefPtr<ShadertoyState> state)
: state_(std::move(state)) {}
ShadertoyImpl::~ShadertoyImpl() = default;
void ShadertoyImpl::SetPaused(bool paused) { state_->SetPaused(paused); }
void ShadertoyImpl::SetShaderCode(
::std::string glsl,
fuchsia::examples::shadertoy::Shadertoy::SetShaderCodeCallback callback) {
state_->SetShaderCode(std::string(glsl), std::move(callback));
}
void ShadertoyImpl::SetResolution(uint32_t width, uint32_t height) {
state_->SetResolution(width, height);
}
void ShadertoyImpl::SetMouse(fuchsia::ui::gfx::vec4 i_mouse) {
state_->SetMouse(glm::vec4(i_mouse.x, i_mouse.y, i_mouse.z, i_mouse.w));
}
void ShadertoyImpl::SetImage(
uint32_t channel,
::fidl::InterfaceRequest<fuchsia::images::ImagePipe> request) {
state_->SetImage(channel, std::move(request));
}
} // namespace shadertoy