Дизайн: GraphicManager, TexturesPool, Текстура - PullRequest
0 голосов
/ 16 августа 2011

У меня есть система, в которой у нынешнего класса сиглета GraphicManager, класса TexturePool и класса Texture.

Текстура есть некоторые субтитры в создании.Затем он конструирует себя, используя DirectX-контент из GraphicManager и некоторые d3d-константы.Теперь я использую метод CreateInstance и частные минусы в классе Texture, но, как по мне, это не так, что Texture сейчас так много о реальном движке, может быть лучше построить его из GraphicManager?Нужно ли использовать для этого функцию друга или может быть другой подход?

1 Ответ

2 голосов
/ 10 августа 2012

Я действительно не мог понять ваш вопрос, но я постараюсь дать вам несколько советов. Это нормально, если вы используете Singleton в GraphicManager или TexturePool, но вы должны быть осторожны, потому что singleton позволяет вам использовать уникальный экземпляр, даже если вы не должны. Синглтон может сделать код более простым для ввода, но и довольно опасным. Как я понял, вы сейчас используете Singleton в классе текстур, но я думаю, что в вашей системе вы можете иметь более одной текстуры, поэтому это не имеет смысла. Однако вы можете создать метод в своем классе TexturePool для загрузки текстуры из файла изображения. Что-то вроде:

Texture* TexturePool::loadTexture(std::string fileName);

Тогда все, что вам нужно использовать для создания текстуры, вы должны получить из уникального экземпляра GraphicsManager. Я надеюсь, что это может быть полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...