增加材质和纹理
This commit is contained in:
@@ -10,6 +10,7 @@ public:
|
||||
void init(size_t _length);
|
||||
void clear(void);
|
||||
|
||||
int32_t getID(void) const { return m_id; }
|
||||
size_t length(void) const { return m_length; }
|
||||
|
||||
const uint8_t* ptr(size_t offseet) const {
|
||||
@@ -20,12 +21,12 @@ public:
|
||||
return m_ptr + offseet;
|
||||
}
|
||||
private:
|
||||
int32_t m_id;
|
||||
uint8_t* m_ptr;
|
||||
size_t m_length;
|
||||
|
||||
public:
|
||||
DeviceBuffer();
|
||||
DeviceBuffer(size_t _length);
|
||||
DeviceBuffer(int32_t id, size_t _length);
|
||||
~DeviceBuffer();
|
||||
};
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ DV_CORE_BEGIN_NAMESPACE
|
||||
class DV_CORE_API DeviceBufferAccessor
|
||||
{
|
||||
public:
|
||||
int32_t getID(void) const { return m_id; }
|
||||
|
||||
const DeviceBufferViewConstPtr getBufferView(void) const {
|
||||
return m_bufferView;
|
||||
}
|
||||
@@ -39,6 +41,7 @@ public:
|
||||
|
||||
|
||||
private:
|
||||
int32_t m_id;
|
||||
DeviceBufferViewConstPtr m_bufferView;
|
||||
size_t m_offset;
|
||||
size_t m_count;
|
||||
@@ -48,7 +51,7 @@ private:
|
||||
size_t m_elementSize;
|
||||
|
||||
public:
|
||||
DeviceBufferAccessor(DeviceBufferViewConstPtr bufferView, size_t offset, size_t count, ComponentType componentType, DataType dataType);
|
||||
DeviceBufferAccessor(int32_t id, DeviceBufferViewConstPtr bufferView, size_t offset, size_t count, ComponentType componentType, DataType dataType);
|
||||
~DeviceBufferAccessor();
|
||||
};
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ DV_CORE_BEGIN_NAMESPACE
|
||||
class DV_CORE_API DeviceBufferView
|
||||
{
|
||||
public:
|
||||
int32_t getID(void) const { return m_id; }
|
||||
|
||||
const DeviceBufferConstPtr getBuffer(void) const {
|
||||
return m_buffer;
|
||||
}
|
||||
@@ -25,13 +27,14 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
int32_t m_id;
|
||||
DeviceBufferConstPtr m_buffer;
|
||||
size_t m_offset;
|
||||
size_t m_length;
|
||||
size_t m_stride;
|
||||
|
||||
public:
|
||||
DeviceBufferView(DeviceBufferConstPtr buffer, size_t offset, size_t length, size_t stride);
|
||||
DeviceBufferView(int32_t id, DeviceBufferConstPtr buffer, size_t offset, size_t length, size_t stride);
|
||||
~DeviceBufferView();
|
||||
};
|
||||
|
||||
|
||||
@@ -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