| 
		
				 gtPluginArchive 
				class : gtPluginImpl 
				Описывает плагин для работы с архивами. 
				Каждый плагин который грузит ресурсы должен сам реализовывать функцию распаковки данных. 
				Поведение zip плагина в отношении поиска файлов такое, например, если указан файл для загрузки 
				m_gs->getModel(u"cube.obj"); 
				то, если файла не будет в папке с программой, zip плагин будет искать файл с именем `cube.obj` в списке добавленных файлов из архива. 
				Если указано 
				m_gs->getModel(u"../cube.obj"); 
				то имя то же самое. 
				Если указано 
				m_gs->getModel(u"../xyz/cube.obj"); 
				то имя для поиска будет `xyz/cube.obj`, это значит что в архиве должна быть папка xyz а в ней файл cube.obj 
				Если указано 
				m_gs->getModel(u"../data/cube.obj"); 
				или 
				m_gs->getModel(u"data/cube.obj"); 
				то, если файл доступен в архиве и вне архива, то грузиться будет файл вне архива. 
				Главной папкой для ресурсов является папка с именем `data`. 
				По этому, например, для лёгкого модифицирования файлов лучше использовать вариант загрузки 
				m_gs->getModel(u"../data/cube.obj"); 
				После всех настроек его можно сунуть в архив, а сам файл удалить. 
				Методы 
				
				gtPluginArchive::checkFormat 
				bool checkFormat( gtString* fn ) 
				Вернёт истину если указанный архив поддерживается плагином. 
				gtPluginArchive::enumFiles 
				u32 enumFiles( gtString* fn, void * data, void(*cf)(void*,const char16_t*,u32,u32,u32) ) 
				Перечислить файлы в указанном архиве. 
				gtPluginArchive::unpack 
				u8 * unpack( gtString* fn, gtString* an, u32 pos, u32 csize, u32 size ) 
				Распаковать указанный файл из указанного архива. 
				В зависимости от нужд плагинов, можно передать указатель начала файла в архиве, его размер в запакованном виде и его размер в распакованном виде. 
				Возвращённый указатель хранит память выделенную вызовом функции gtMemAlloc. Необходимо освободить память вызвав функцию gtMemFree. Для автоматического удаления можно использовать gtMemPtr 
				 
				
				 |