增加材质和纹理
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
#pragma once
|
||||
|
||||
#include "dvc_config.h"
|
||||
#include "dvc_pre_declare.h"
|
||||
|
||||
DV_CORE_BEGIN_NAMESPACE
|
||||
|
||||
class DV_CORE_API Device
|
||||
{
|
||||
public:
|
||||
void clear();
|
||||
|
||||
public:
|
||||
DeviceBufferPtr newDeviceBuffer(size_t length=0);
|
||||
DeviceBufferConstPtr getDeviceBuffer(int32_t id) const;
|
||||
|
||||
DeviceBufferViewPtr newDeviceBufferView(DeviceBufferConstPtr buffer, size_t offset, size_t length, size_t stride);
|
||||
DeviceBufferViewPtr getDeviceBufferView(int32_t id) const;
|
||||
|
||||
DeviceBufferAccessorPtr newDeviceBufferAccessor(DeviceBufferViewConstPtr bufferView, size_t offset,
|
||||
size_t count, ComponentType componentType, DataType dataType);
|
||||
DeviceBufferAccessorPtr getDeviceBufferAccessor(int32_t id) const;
|
||||
|
||||
MeshPtr newMeshAsset(const std::string& name);
|
||||
MeshPtr getMesh(int32_t id) const;
|
||||
|
||||
ImagePtr newImageAsset();
|
||||
ImagePtr getImage(int32_t id) const;
|
||||
|
||||
TexturePtr newTextureAsset();
|
||||
TexturePtr getTexture(int32_t id) const;
|
||||
|
||||
MaterialPtr newMaterialAsset();
|
||||
MaterialPtr getMaterial(int32_t id) const;
|
||||
|
||||
private:
|
||||
int32_t nextID() {
|
||||
if (++m_currentID < 0) m_currentID = 0;
|
||||
return m_currentID;
|
||||
}
|
||||
private:
|
||||
int32_t m_currentID = 0;
|
||||
|
||||
//device buffer
|
||||
std::map<int32_t, DeviceBufferPtr> m_deviceBufferMap;
|
||||
|
||||
//device buffer view
|
||||
std::map<int32_t, DeviceBufferViewPtr> m_bufferViewMap;
|
||||
|
||||
//device buffer accessor
|
||||
std::map<int32_t, DeviceBufferAccessorPtr> m_bufferAccessorMap;
|
||||
|
||||
//mesh asset resources
|
||||
std::map<int32_t, MeshPtr> m_meshAssetMap;
|
||||
|
||||
//image asset resources
|
||||
std::map<int32_t, ImagePtr> m_imageAssetMap;
|
||||
|
||||
//texture asset resources
|
||||
std::map<int32_t, TexturePtr> m_textureAssetMap;
|
||||
|
||||
//material asset resources
|
||||
std::map<int32_t, MaterialPtr> m_materialAssetMap;
|
||||
|
||||
public:
|
||||
Device();
|
||||
~Device();
|
||||
};
|
||||
DV_CORE_END_NAMESPACE
|
||||
Reference in New Issue
Block a user