Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.09.2016, 23:41
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 1  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
По умолчанию Скриншот уменьшеного вьювпорта

Всем привет, столкнулся с проблемой создания скриншота на starling. Есть vieweport который ресайзится к размерам stage, и есть окно которое всегда надо скринить в 100% масштабе. Проблема возникает при скрине уменьшеной сцены, сама битмапа идет правильного размера, масштаб окна тоже, но в область отрисовки попадает только та часть, которая совпадает с размером ViewPort, при том на экране в момент скрина видна сцена целиком. В чем может быть проблема? на картинке при stageWidth =1000 viewPort.width=500 , синий прямоугольник - битмапа с фикс размером, красный - область того что отрисовалось


Код AS3:
		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;
		}

Старый 21.09.2016, 02:43
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 2  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Меня почему то смущают вот эти строки
Код AS3:
var to:BitmapData = new BitmapData(me.width, me.height,false,0xff0000);
hitRender.setOrthographicProjection(offset.x, offset.y,starlingStage.stageWidth, starlingStage.stageHeight);
Возможно ли, что ширина и высота me и starlingStage разные?

Старый 21.09.2016, 23:45
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 3  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
да, они разные. me может быть объект любого размера

Старый 22.09.2016, 06:04
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Это фича старлинга. Отрендерить в скриншот можно только то, что попадает в его вьюпорт. Не важно какой ширины объект для рендера. Как вариант - увеличивать вьюпорт, делать скрин, возвращать все как было. Но этот вариант костыльный и не всегда работает. У меня почему-то бывало, что вьюпорт не менялся сразу, и рендер опять происходил только куска. В итоге мне так и не удалось добиться нормальных скринов в старлинге, и я решил забить на это.
__________________
Ко мне можно и нужно обращаться на ты)

Старый 22.09.2016, 12:04
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 5  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
ну во вьювпорт и так попадает вся сцена, только уменьшеная. пробовал при нажати кнопки скрина возвращать размеры и делать рендер вьювпорта с задержкой. в итоге масштаб правильный, но скринится опять же только та часть, что соотвествует размерам stage, получается на область crop влияет он, а не viewport, возможно дело в дефолтном ScaleMode.NO_SCALE. Неужели нет никаких других вариантов?(

Старый 22.09.2016, 20:02
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Я как -то года полтора назад задавался таким же вопросом. Вот моя тема на форуме старлинга http://forum.starling-framework.org/...avoid-clipping
Там все подробно разъяснили. Можешь попробовать. Я от идеи отказался
__________________
Ко мне можно и нужно обращаться на ты)

Старый 23.09.2016, 16:48
faraday вне форума Посмотреть профиль Отправить личное сообщение для faraday Найти все сообщения от faraday
  № 7  
Ответить с цитированием
faraday
 
Аватар для faraday

Регистрация: Apr 2009
Сообщений: 409
Да, спасибо, видимо прийдется рендерить в несоклько битмап и склеивать)

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.