'

Универсальный редактор для нескольких проектов

Понравилась презентация – покажи это...





Слайд 0

Универсальный редактор для нескольких проектов Мельников Михаил


Слайд 1

Универсальный редактор для нескольких проектов Мельников Михаил Бинарные данные: Картинки Модели Анимации Звуки Музыка Ролики Другие данные


Слайд 2

Универсальный редактор для нескольких проектов Мельников Михаил Табличные данные: RPG система Всевозможные настройки вынесенные программистами из кода Игровые локации (карты) Скрипты Обвязки вокруг бинарных данных Данные для ELK (тексты и комментарии к ним) Другие данные


Слайд 3

Универсальный редактор для нескольких проектов Мельников Михаил Дуализм хранения данных на этапе разработки:


Слайд 4

Универсальный редактор для нескольких проектов Мельников Михаил Требования к механизму работы с табличными данными: Целостность данных на всем этапе разработки Возможность работать с данными вручную Массовая обработка данных Быстрота работы с данными Независимость от конкретных типов данных


Слайд 5

Универсальный редактор для нескольких проектов Мельников Михаил Пример структуры данных из кода игры “Блицкриг” struct SRMPatch { int nSize; string szName; //constructors SRMPatch() {} // serializing... virtual int operator&( IStructureSaver &ss ) { saver.Add( 1, &nSize ); saver.Add( 2, &szName ); } virtual int operator&( IDataTree &ss ) { saver.Add( “Size”, &nSize ); saver.Add( “Name”, &szName ); } };


Слайд 6

Универсальный редактор для нескольких проектов Мельников Михаил Схема создания типов данных в игре “Блицкриг II”


Слайд 7

Универсальный редактор для нескольких проектов Мельников Михаил Интерфейс IManipulator interface IManipulator : public CObjectBase { virtual IManipulatorIterator* Iterate( bool bShowHidden, ECacheType eCache ) = 0; virtual const SIteratorDesc* GetDesc( const string &rszName ) const = 0; virtual bool GetType( const string &rszName, string *pszType ) const = 0; virtual bool GetName( UINT nID, string *pszName ) const = 0; virtual bool InsertNode( const string &rszName, int nNodeIndex = ADD ) = 0; virtual bool RemoveNode( const string &rszName, int nNodeIndex = REMOVE_ALL ) = 0; virtual bool GetValue( const string &rszName, CVariant *pValue ) const = 0; virtual bool SetValue( const string &rszName, const CVariant &rValue ) = 0; virtual bool CheckValue( const string &rszName, const CVariant &rValue, bool *pRes ) = 0; virtual bool IsNameExists( const string &rszName ) const = 0; };


Слайд 8

Универсальный редактор для нескольких проектов Мельников Михаил Броузер данных и универсальный Property Control


Слайд 9

Универсальный редактор для нескольких проектов Мельников Михаил Схема работы с данными в редакторе (MCV)


Слайд 10

Универсальный редактор для нескольких проектов Мельников Михаил Схема вызова экпортеров в редактрое


Слайд 11

Универсальный редактор для нескольких проектов Мельников Михаил Создание, удаление и копирование объектов


Слайд 12

Универсальный редактор для нескольких проектов Мельников Михаил Схема вызова редакторов и обработки сообщений


Слайд 13

Универсальный редактор для нескольких проектов Мельников Михаил Интерфейс IInputState interface IInputState { virtual void Enter() = 0; virtual void Leave() = 0; virtual void Draw( class CPaintDC *pDC ) = 0; virtual void OnSetFocus( class CWnd* pNewWnd ) = 0; virtual void OnKillFocus( class CWnd* pOldWnd ) = 0; virtual void OnMouseMove( UINT nFlags, const CTPoint<int> &rMousePoint ) = 0; virtual bool OnMouseWheel( UINT nFlags, short zDelta, CTPoint<int> &rMousePoint ) = 0; virtual void OnLButtonDown( UINT nFlags, const CTPoint<int> &rMousePoint ) = 0; virtual void OnLButtonUp( UINT nFlags, const CTPoint<int> &rMousePoint ) = 0; virtual void OnLButtonDblClk( UINT nFlags, const CTPoint<int> &rMousePoint ) = 0; … };


Слайд 14

Универсальный редактор для нескольких проектов Мельников Михаил Общая часть редактора: Система обработки XSD, генерация исходников, система считывания бинарных данных, система трансляции данных из внешнего формата во внутренний формат, представление данных в виде IManipulator Общий Frame редактора с несколькими заготовленными окнами визуального редактирования транслирующие сообщения от дизайнера в интерфейс IInputState Возможности по созданию дополнительных окон, меню, панелей инструментов Легкая работа со строкой статуса Броузер общего списка объектов редактирования, система навигации по списку Универсальный Property Control позволяющий редактировать любые данные представленные интерфейсом IManipulator Механизм иерархического запуска экспортеров Механизм вызова дополнительной функциональности при создании объектов, их копировании и удалении Механизм запуска редакторов IEditor


Слайд 15

Универсальный редактор для нескольких проектов Мельников Михаил Внешние части редактора: Набор XSD файлов Экспортеры. IExporter Билдеры. IBuilder Редакторы. IEditor + IInputState


Слайд 16

Универсальный редактор для нескольких проектов Мельников Михаил


×

HTML:





Ссылка: