// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 #include "stdafx.h" #include <krakatoa/diffuse_render_element.hpp> #include <krakatoa/render_element_impl.hpp> #include <memory> namespace krakatoa { diffuse_render_element::diffuse_render_element() {} diffuse_render_element::~diffuse_render_element() {} render_element_interface* diffuse_render_element::clone() { std::unique_ptr<diffuse_render_element> pResult( new diffuse_render_element ); pResult->get_framebuffer().set_size( get_framebuffer().size() ); pResult->m_accessor = m_accessor; return pResult.release(); } // From particle_render_element_interface diffuse_render_element::draw_type diffuse_render_element::get_drawing_type() const { return draw_type_shader; } void diffuse_render_element::set_channel_map( const frantic::channels::channel_map& pcm ) { m_accessor = pcm.get_const_cvt_accessor<frantic::graphics::color3f>( _T("__Element_Diffuse") ); } void diffuse_render_element::add_required_channels( frantic::channels::channel_map& pcm ) { if( !pcm.has_channel( _T("__Element_Diffuse") ) ) pcm.define_channel<frantic::graphics::color3f>( _T("__Element_Diffuse") ); } frantic::graphics::color3f diffuse_render_element::evaluate( const char* particle ) { return m_accessor.get( particle ); } } // namespace krakatoa