Войти
Urho3DФорумОФФТОП

Болталка (182 стр)

Страницы: 1181 182 183 184186 Следующая »
#2715
11:03, 25 авг. 2019

innuendo
>нет бы сделать listeners как в огре
ну да, в ориг. крае5 кстати есть listeners, да и LY не везде выпилили еще, обычно если легаси хрень нужна то подписка на нее именно через listeners

    void OnSystemEvent(ESystemEvent systemEvent, UINT_PTR wparam, UINT_PTR lparam)
    {
      switch (systemEvent)
      {
      case ESYSTEM_EVENT_GAME_POST_INIT_DONE:
      {
        gEnv->pSystem->GetILevelSystem()->AddListener(this);
...


а как тебе такое?)  https://docs.aws.amazon.com/en_us/lumberyard/latest/userguide/ebu… in-depth.html


#2716
11:07, 25 авг. 2019

innuendo
> шо за проект ?
типа, клон героев-4.

> так ты нашёл место где тормозило ?
я это заметил :))) не, правда, при создании окна с персонажем, оно создавалось где-то _полминуты_. Потом поигравшись с числом слотов на окне, увидел почти прямую зависимость времени. Это было в 1.32, но сейчас я делаю в 1.7.1 Орион, и там заметна та же фигня. На драг-н-дроп реакция где-то 0.5-0.7 секунды на оформление драг-объекта в UI, хотя сам объект уже создан заранее, но это не помогает. А это очень неприятно, потому что юнитов со слота на слот перекидывать приходится часто.

codingmonkey
> По-моему в урхе же можно создавать собственные сообщения.
innuendo
> вот это меня бесит - нет бы сделать listeners как в огре
Вы так говорите, как будто это сложно сделать самому, в принципе. о_о

codingmonkey
> Так вот я бы передавал бы массив структур в каком-нибудь сообщении подписчиком которого был бы только - инвентарь.
> и наиоборт, персонаж после того как отослал реквест на преобразования себя в инвентарь - ждал бы ответного сообщения по завершению манипуляций, и применял бы на себя результат работы инвентаря после его закрытия. В такой схеме получается - один инвентарь и сколь угодно много персов.
ненене, ты не о том, я тебе говорю: тормозит на создании UI, в самом коде всё шустренько, там тормозить нечему.
конечно, меня это достанет рано или поздно, я опять возьму скальпель и полезу во внутренности разбираться, где там запор :)

#2717
(Правка: 11:21) 11:20, 25 авг. 2019

codingmonkey
> обычно если легаси хрень нужна то подписка на нее именно через listeners

ооооо ... оопфоб ?

codingmonkey
> UINT_PTR wparam, UINT_PTR lparam

мутная винапи мутота

#2718
(Правка: 11:53) 11:32, 25 авг. 2019

StepEver
>Вы так говорите, как будто это сложно сделать самому, в принципе. о_о
оно из кробки уже есть и работает, но любителей нестандартного подхода когда это останавливало? никогда)

>тормозит на создании UI
У тебя наверное там все на рендер таргетах с кучей - viewport'ов для каждой из ячеек, для того чтобы броньку или сапоги можно было крутить прямо в ячейках или чтобы видеть актуальную сборку предмета?)
протести профилировщиком, в урхе он вроде был? В rbfx классный Profiler https://gyazo.com/a5ca8d7e756bd4e5733dd79f8811d03b

innuendo
>ооооо ... оопфоб ?
с чего бы? под "легаси хренью" я имею ввиду все то что не вписывается в новую архитектуру LY и не более.
вот так, к примеру выглядит LY - InputChannelEventListener

  class SimpleFPSContoller:
    public AZ::Component,
    public AZ::EntityBus::MultiHandler,
    public AZ::TickBus::Handler,
    public AzFramework::InputChannelEventListener,
  {
  public:
    AZ_COMPONENT(SimpleFPSContoller, "{9F834A4E-3041-4626-A296-B1662AE82AC6}", AZ::Component);

    SimpleFPSContoller();
    virtual ~SimpleFPSContoller();

    static void Reflect(AZ::ReflectContext* context);

    void Init() override;
    void Activate() override;
    void Deactivate() override;

    // AzFramework::InputChannelEventListener
    bool OnInputChannelEventFiltered(const AzFramework::InputChannel& inputChannel) override;

    // AZ::TickBus
    void OnTick(float deltaTime, AZ::ScriptTimePoint time);

    //GameEntityContextEventBus
    void OnGameEntitiesStarted() override;
    
  };
}

void SimpleFPSContoller::Activate()
{
  InputChannelEventListener::Connect();
  AZ::TickBus::Handler::BusConnect();
  AzFramework::GameEntityContextEventBus::Handler::BusConnect();
}

void SimpleFPSContoller::Deactivate()
{
  InputChannelEventListener::Disconnect();
  AZ::TickBus::Handler::BusDisconnect();
  AzFramework::GameEntityContextEventBus::Handler::BusDisconnect();
}

bool SimpleFPSContoller::OnInputChannelEventFiltered(const AzFramework::InputChannel & inputChannel)
{
  const AzFramework::InputDeviceId& deviceId = inputChannel.GetInputDevice().GetInputDeviceId();
  
  if (AzFramework::InputDeviceMouse::IsMouseDevice(deviceId))
  {
    OnMouseEvent(inputChannel);
  }
  else if (AzFramework::InputDeviceKeyboard::IsKeyboardDevice(deviceId))
  {
    OnKeyboardEvent(inputChannel);
  }

  return false;
}


>мутная винапи мутота
да пофиг, пишется это один раз в жизни проекта)

#2719
12:50, 25 авг. 2019

codingmonkey
> У тебя наверное там все на рендер таргетах с кучей - viewport'ов для каждой из ячеек
в героях не было, в Орионе - только звёзды и планеты.
Но ещё раз тебе говорю, блин, тормозит не сам интерфейс :) тормозит создание UI. Создание UI. Создание UI, ёпрст.

#2720
13:13, 25 авг. 2019

codingmonkey
> да пофиг, пишется это один раз в жизни проекта)
так движок же не только под Win?

#2721
13:17, 25 авг. 2019

innuendo
> так движок же не только под Win?
у Урхи своя система сообщений

#2722
13:34, 25 авг. 2019

StepEver
> у Урхи своя система сообщений

я про потомок края

#2723
14:18, 25 авг. 2019

innuendo
>так движок же не только под Win?
мне интересно под win, что там в остальном творится хз)

StepEver
>Создание UI, ёпрст.
Блин, ну откуда я могу знать как ты и что там создаешь, я лишь гадаю на кофейной гуще и строю предположения в отношении определенных вещей, ориентируясь при этом на то как ты делал UI в прошлом (по твоим же рассказам)  ¯\_(ツ)_/¯

#2724
15:17, 25 авг. 2019

StepEver
> тормозит создание UI. Создание UI. Создание UI, ёпрст.
Ахах, изи Степ, изи))
Создание - созданию рознь. Если в ui у тебя вьюпорта, 3DView и что то в этом роде, фризы как бы норм. Но в чистом виде ui, априори не может жрать ресурс. Проверено на 100500 объектах. Мной лично

#2725
16:19, 25 авг. 2019

codingmonkey
> ориентируясь при этом на то как ты делал UI в прошлом (по твоим же рассказам)
и как я делал UI в прошлом?

Zamir
> Если в ui у тебя вьюпорта, 3DView и что то в этом роде, фризы как бы норм
я ж говорю, нету у меня там 3DView

> Проверено на 100500 объектах. Мной лично
Придётся, видимо, внутрь лезть

#2726
21:40, 25 авг. 2019

StepEver
Сделай минимально собираемый пример с фризами при создании ui. Чтоб не гадать, где и чего и как ты делаешь.

#2727
19:58, 26 авг. 2019

радио
Последний комит год назад. 5 месяцев назад чел спрашивал про пример чтоб посмотреть как оно работает и не получил ответа.

Вот в этом вся урха как инструмент - если хочешь пользоваться надо уметь залезать во внутрь и копаться. Так что вся надежда на то что ты не поленишься и разберёшься.

#2728
20:38, 26 авг. 2019

HplusDiese
> Сделай минимально собираемый пример с фризами при создании ui. Чтоб не гадать, где и чего и как ты делаешь.
Да, можно и так, но у меня уже есть минимальный - это драг-н-дроп, там просто создаётся одна иконка и подвешивается в драг-итем. Надо просто будет покопаться внутри.

#2729
(Правка: 21:44) 21:43, 28 авг. 2019


https://github.com/Tarzeron/bigworld_test/blob/master/main.cpp#L64
радио, может чет интересное найдешь, у меня с ходу не завилось, попробуй свой контроллер на камеру подцепить и посмотреть по сторонам и у меня один чанк, может вокруг добавить соседей нужно, мне уже лень дальше смотреть

Страницы: 1181 182 183 184186 Следующая »
Urho3DФорумОФФТОП