【发布时间】:2016-01-03 09:24:14
【问题描述】:
我在OpenGL中创建了一个资源加载器,并将它暴露给Python,有一个函数叫做:
Texture* tex = ResourceManager->loadTexture('name.png')
然后我将纹理名称保存在一个向量列表中,所以下次我想加载它时,我会检查它是否已经加载,如果是,则使用该指针返回它。
但是我想卸载的时候不知道用了多少次了,直接卸载会崩溃,因为同一个指针被使用了很多次,我的所有类都暴露了到 Python。
我想知道是否可以将所有这些麻烦留给 Python(自动卸载),并且仍然跟踪我加载的纹理并重复使用它?
ps:
platform: linux-x64
gcc: 4.8.3
python c++ boost-python,
editor:kdevelop
【问题讨论】:
-
您可以将所有缓存移至 Python。您还可以使用智能指针,特别是可以使用
shared_ptr和weak_ptr的组合。
标签: python c++ boost-python