| 851 | } |
| 852 | |
| 853 | void |
| 854 | TilingProcessor::put (size_t ix, size_t iy, const db::Box &tile, const std::vector<tl::Variant> &args) |
| 855 | { |
| 856 | tl::MutexLocker locker (&s_output_lock); |
| 857 | |
| 858 | if (args.size () < 2 || args.size () > 3) { |
| 859 | throw tl::Exception (tl::to_string (tr ("_output function requires two or three arguments: handle and object and a clip flag (optional)"))); |
| 860 | } |
| 861 | |
| 862 | bool clip = ((args.size () <= 2 || args [2].to_bool ()) && ! tile.empty ()); |
| 863 | |
| 864 | size_t index = args[0].to<size_t> (); |
| 865 | if (index >= m_outputs.size ()) { |
| 866 | throw tl::Exception (tl::to_string (tr ("Invalid handle (first argument) in _output function call"))); |
| 867 | } |
| 868 | |
| 869 | m_outputs[index].receiver->put (ix, iy, tile, m_outputs[index].id, args[1], dbu (), m_outputs[index].trans, clip); |
| 870 | } |
| 871 | |
| 872 | void |
| 873 | TilingProcessor::execute (const std::string &desc) |
no test coverage detected