Не с Supervision.Decide
, но вы могли бы достичь этого по-другому.
Проверьте эту программу:
object Streams extends App{
implicit val system = ActorSystem("test")
implicit val mat = ActorMaterializer()
val source = Source(List("1", "2", "3")).map { item =>
Try {
if (item == "2") {
throw new RuntimeException("Error")
} else {
item
}
}
}
source
.alsoTo(
Flow[Try[String]]
.filter(_.isFailure)
.to(Sink.foreach(t => println("failure: " + t))))
.to(
Flow[Try[String]]
.filter(_.isSuccess)
.to(Sink.foreach(t => println("success " + t)))).run()
}
Выходы:
success Success(1)
failure: Failure(java.lang.RuntimeException: Error)
success Success(3)
SDL не поддерживает масштабируемое блитирование. Согласно документации SDL_BlitSurface:
Примечание: копирование битового массива SDL еще не имеет возможности увеличения масштаба блитируемых поверхностей, или вниз как он имеет место с другими более сложными механизмами блитирования. Необходимо понять что-то для себя, если Вы хотите масштабировать изображения (например, использовать SDL_gfx).
Вы могли найти SDL_gfx здесь. Писание Вашей собственной функции блитирования не состоит в том, что плохо, это могла бы быть забава и полезный эксперимент изучения (хотя Вы будете изобретать велосипед). Используя OpenGL также опция, поскольку материал как масштабирование и вращение мог быть сделан в единственном вызове функции.