deviceresource.h
来自「java实现的简单的分形树。简单易学!是学习分形知识的很好的例子。其java语法」· C头文件 代码 · 共 67 行
H
67 行
// --------------------------------------------------------------------------
// Dingus project - a collection of subsystems for game/graphics applications
// --------------------------------------------------------------------------
#ifndef __DEV_RELOADABLE_RESOURCE_H
#define __DEV_RELOADABLE_RESOURCE_H
#include "ReloadableBundle.h"
namespace dingus {
/**
* D3D device dependant resource.
*/
class IDeviceResource {
public:
virtual ~IDeviceResource() = 0 {};
virtual void createResource() = 0;
virtual void activateResource() = 0;
virtual void passivateResource() = 0;
virtual void deleteResource() = 0;
};
class IDeviceReloadableBundle : public IDeviceResource, public IReloadableBundle {
public:
virtual void reload() {
passivateResource();
deleteResource();
createResource();
activateResource();
}
};
class CDeviceResourceManager : public IDeviceResource, public CNotifier<IDeviceResource> {
public:
// IDeviceResource
virtual void createResource() {
TListenerVector::iterator it, itEnd = getListeners().end();
for( it = getListeners().begin(); it != itEnd; ++it )
(*it)->createResource();
}
virtual void activateResource() {
TListenerVector::iterator it, itEnd = getListeners().end();
for( it = getListeners().begin(); it != itEnd; ++it )
(*it)->activateResource();
}
virtual void passivateResource() {
TListenerVector::iterator it, itEnd = getListeners().end();
for( it = getListeners().begin(); it != itEnd; ++it )
(*it)->passivateResource();
}
virtual void deleteResource() {
TListenerVector::iterator it, itEnd = getListeners().end();
for( it = getListeners().begin(); it != itEnd; ++it )
(*it)->deleteResource();
}
};
}; // namespace
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?