// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 #pragma once namespace krakatoa { template render_element::~render_element() {} template frantic::graphics2d::framebuffer& render_element::get_framebuffer() { return m_framebuffer; } template void render_element::register_commit_callback( const boost::function& callbackFn ) { m_callbackFunctions.push_back( callbackFn ); } template void render_element::initialize() {} template void render_element::combine( render_element_interface* rhs ) { get_framebuffer().blend_over( rhs->get_framebuffer() ); } template void render_element::commit() { // Eval them in reverse order so that it behaves like a LiFo queue. std::vector>::reverse_iterator it = m_callbackFunctions.rbegin(), itEnd = m_callbackFunctions.rend(); for( ; it != itEnd; ++it ) ( *it )( *this ); } } // namespace krakatoa