Design: GraphicManager, TexturesPool, Texture
Design: GraphicManager, TexturesPool, Texture
我有一个系统,其中当前类sigleton GraphicManager,类TexturePool和类Texture。
纹理有一些微妙的创作。然后它构造自己他们使用DirectX的东西从GraphicManager和一些d3d常数。现在我在纹理类中使用CreateInstance方法和私有cons,但对我来说,它不是很好,什么纹理现在这么多关于真实的引擎,可能更好地从GraphicManager构建它?我需要使用它的朋友功能还是其他方法?
我真的不明白你的问题,但我会尽量给你一些提示。如果你在GraphicManager或TexturePool中使用Singleton是可以的,但你必须小心,因为Singleton允许你在不应该使用的情况下使用唯一实例。单例可以使代码更容易输入,但也相当危险。正如我所能理解的,你现在在纹理类中使用Singleton,但我认为在你的系统中你可以有一个以上的纹理,所以它没有意义。但是,你可以在TexturePool类中创建一个方法来从图像文件中加载纹理。比如:
Texture* TexturePool::loadTexture(std::string fileName);
然后,任何你需要用来创建纹理的东西,你应该从GraphicsManager的唯一实例中获得。我希望这对你有用。
相关文章:
- SDL_CreateTextureFromSurface() "Invalid texture"错误?
- 尝试将 sf::Texture* 推送到 std::vector 时出错
- 从 texture() 切换到 texelFetch()
- 直接 X "Texture cannot be null"异常
- OpenGL to DirectX (Buffer To Texture To Screen)
- PNG Texture OpenGL es 2.0 Android NDK
- OpenGL Texture with alpha 和 glColor4f,glColor4f 正在影响纹理
- How to Blend two texture in OpenGL ES 1
- 如何使用 glDrawElementsInstanced + Texture Buffer Objects
- Opengl glBindTexture Using Last Texture Loaded
- 在 C++ 头文件中使用 tuple<sf::Texture、bool> 时出现问题
- CCRenderTexture 在子线程中崩溃 - "Could not attach texture to framebuffer"
- 错误:'textureID'是'Texture'的私有成员
- Design: GraphicManager, TexturesPool, Texture
- Cuda cudaGetTextureReference 返回"invalid texture reference"
- C++ & SDL Texture 无法加载,但 SDL_GetError() 不返回任何内容