any_regular_t vm_array_image_proc(const array_t& argument_set) { if (argument_set.empty()) return any_regular_t(empty_t()); std::string filename; boost::shared_ptr<GG::Texture> the_image; argument_set[0].cast(filename); if (!filename.empty()) { try { the_image = GG::GUI::GetGUI()->GetTexture(filename); the_image->SetFilters(GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST); } catch (...) { return any_regular_t(empty_t()); } } return any_regular_t(the_image); }
any_regular_t vm_dictionary_image_proc(const dictionary_t& named_argument_set) { if (named_argument_set.empty()) return any_regular_t(empty_t()); std::string filename; boost::shared_ptr<GG::Texture> the_image; get_value(named_argument_set, key_name, filename); if (!filename.empty()) { try { the_image = GG::GUI::GetGUI()->GetTexture(filename); the_image->SetFilters(GL_NEAREST_MIPMAP_NEAREST, GL_NEAREST); } catch (...) { return any_regular_t(empty_t()); } } return any_regular_t(the_image); }
any_regular_t asl_standard_array_function_lookup(name_t function_name, const array_t& argument_set) { if (function_name == static_name_t("image")) { return implementation::vm_array_image_proc(argument_set); } else { throw_function_not_defined(function_name); } return any_regular_t(empty_t()); }
any_regular_t vm_array_image_proc(const array_t& argument_set) { if (argument_set.empty()) return any_regular_t(empty_t()); std::string filename; boost::gil::rgba8_image_t the_image; argument_set[0].cast(filename); if (!filename.empty()) image_slurp(boost::filesystem::path(filename), the_image); return any_regular_t(the_image); }
any_regular_t vm_dictionary_image_proc(const dictionary_t& named_argument_set) { if (named_argument_set.empty()) return any_regular_t(empty_t()); std::string filename; boost::gil::rgba8_image_t the_image; get_value(named_argument_set, key_name, filename); if (!filename.empty()) { auto path = boost::filesystem::path(filename); image_slurp(path, the_image); } return any_regular_t(the_image); }
bool asl_standard_array_function_lookup(name_t function_name, const array_t& argument_set, any_regular_t& result) { if (function_name == static_name_t("image")) { result = implementation::vm_array_image_proc(argument_set); return true; } else { return false; } result = any_regular_t(empty_t()); return false; }
regular() : base_t(empty_t()) { }