|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Скриншот уменьшеного вьювпорта
Всем привет, столкнулся с проблемой создания скриншота на starling. Есть vieweport который ресайзится к размерам stage, и есть окно которое всегда надо скринить в 100% масштабе. Проблема возникает при скрине уменьшеной сцены, сама битмапа идет правильного размера, масштаб окна тоже, но в область отрисовки попадает только та часть, которая совпадает с размером ViewPort, при том на экране в момент скрина видна сцена целиком. В чем может быть проблема? на картинке при stageWidth =1000 viewPort.width=500 , синий прямоугольник - битмапа с фикс размером, красный - область того что отрисовалось
public static function toBitmapData(me:DisplayObject):BitmapData { var to:BitmapData = new BitmapData(me.width, me.height,false,0xff0000); var offset:Poiint = new Point(); me.scaleX = me.scaleY = 1/Layers.scaleFactor; hitRender.nextFrame(); hitRender.clear(0xffffff); hitRender.setOrthographicProjection(offset.x, offset.y,starlingStage.stageWidth, starlingStage.stageHeight); hitRender.transformMatrix(me); hitRender.pushMatrix(); me.render(hitRender, 1); hitRender.popMatrix(); hitRender.finishQuadBatch(); context.drawToBitmapData(to); //context.present(); return to; } |
|
|||||
Регистрация: Jan 2012
Сообщений: 836
|
Меня почему то смущают вот эти строки
Возможно ли, что ширина и высота me и starlingStage разные? |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
да, они разные. me может быть объект любого размера
|
|
|||||
Это фича старлинга. Отрендерить в скриншот можно только то, что попадает в его вьюпорт. Не важно какой ширины объект для рендера. Как вариант - увеличивать вьюпорт, делать скрин, возвращать все как было. Но этот вариант костыльный и не всегда работает. У меня почему-то бывало, что вьюпорт не менялся сразу, и рендер опять происходил только куска. В итоге мне так и не удалось добиться нормальных скринов в старлинге, и я решил забить на это.
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
ну во вьювпорт и так попадает вся сцена, только уменьшеная. пробовал при нажати кнопки скрина возвращать размеры и делать рендер вьювпорта с задержкой. в итоге масштаб правильный, но скринится опять же только та часть, что соотвествует размерам stage, получается на область crop влияет он, а не viewport, возможно дело в дефолтном ScaleMode.NO_SCALE. Неужели нет никаких других вариантов?(
|
|
|||||
Я как -то года полтора назад задавался таким же вопросом. Вот моя тема на форуме старлинга http://forum.starling-framework.org/...avoid-clipping
Там все подробно разъяснили. Можешь попробовать. Я от идеи отказался
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Да, спасибо, видимо прийдется рендерить в несоклько битмап и склеивать)
|
Часовой пояс GMT +4, время: 02:52. |
|
« Предыдущая тема | Следующая тема » |
|
|