Posts Tagged ‘MagicEngine компоненты’

MagicEngine использует сигналы для реализации событий.

Сигнал генерируется в ответ на некоторое событие, он несет в себе информацию об этом событии. Слот  это функция, которая вызывается в ответ на определнный сигнал.

Для сигналов и слотов в движке MagicEngine были выставлены следующие требования:

  1. Сигналы ничего не знают о слотах в которые они отправляются
  2. Сигналы несут в себе некоторые обобщенные данные
  3. Слот знает какие данные он хочет получить от сигнала
  4. Слот незнает кто отправил сигнал
  5. Допускаются множественные соединения (сигнал может быть присоединен к разным слотам, и к 1 слоту может быть прикреплено несколько сигналов)
  6. Сигналы и слоты имеют имена.

Read the rest of this entry »

Tags:

25
Сен

Perfomance Counters

   Posted by: admin    in MagicEngine, Новости

Вообще это вещь нужная всегда. Былобы неплохо всегда иметь возможность получить информацию о производительности отдельных модулей, сколько вызовов чеголибо было произведено, чтобы можно было легко находить узкие места реализации, тормозящие все приложение.

Но сейчас пойдет речь не об общем варианте счетчика, а об одном специализированном: счетчик  FPS.

К любому PerfomanceCounter, который планируется оставить в релизной версии, всегда следует применять требование быстродействия, тобишь он не должен работать медленно. Но вот критерий медленно слегка условен)

На данный момент думаю реализовать так: считать время за которое отрисуется  150 кадров. При скорости в 30 фпс это дает обновление  раз в 5 секунд.

Еще была идея считать время отрисовки 1 кадра, но по моему тут будет слишком большой оверхед,  хотя такой счетчик былбы удобен, если вести статистику по последним N кадрам — для определения моментов, в которые произошло «замирание».

Итак счетчик FPS:

Будет содержать 1 параметр: кол-во кадров для которых надо рассчитать время и 1 слот — новый кадр. Строить его надо явно на основе уже имеющегося scorefield, который переименовать в counter )

Tags: