ULRE/inc/hgl/graph/material/DataSource.h

127 lines
2.8 KiB
C
Raw Normal View History

2020-01-09 18:22:18 +08:00
#ifndef HGL_GRAPH_MATERIAL_DATA_SOURCE_INCLUDE
#define HGL_GRAPH_MATERIAL_DATA_SOURCE_INCLUDE
#include<hgl/graph/material/Material.h>
#include<hgl/type/BaseString.h>
MATERIAL_NAMESPACE_BEGIN
2020-01-09 18:22:18 +08:00
/**
*
*/
class DataSource
{
DataFormat format;
public:
const ComponentDataType GetDataType()const{return GetFormatBaseType(format);} ///<获取数据基本类型
const uint GetChannels()const{return GetFormatChannels(format);} ///<获取数据通道数量
2020-01-09 18:22:18 +08:00
public:
2020-01-09 18:22:18 +08:00
DataSource() {format=DataFormat::NONE;}
DataSource(const DataFormat &df){format=df;}
2020-01-09 18:22:18 +08:00
virtual ~DataSource()=default;
2020-01-10 18:04:52 +08:00
public:
virtual bool GenDefine(UTF8String &){return false;} ///<产生define代码
2020-01-09 18:22:18 +08:00
};//class DataSource
/**
*
*/
class DataSourceConst:public DataSource
{
public:
using DataSource::DataSource;
2020-01-10 18:04:52 +08:00
virtual bool GenDefine(UTF8String &)=0; ///<产生define代码
2020-01-09 18:22:18 +08:00
};//class DataSourceConst:public DataSource
/**
* Uniform
2020-01-09 18:22:18 +08:00
*/
class DataSourceUniform:public DataSource
{
public:
using DataSource::DataSource;
2020-01-09 18:22:18 +08:00
};//class DataSourceUniform:public DataSource
/**
*
*/
class DataSourceFunction:public DataSource
{
public:
using DataSource::DataSource;
};//class DataSourceFunction:public DataSource
/**
*
*/
class DataSourceVertex:public DataSource
{
public:
using DataSource::DataSource;
};//class DataSourceVertex:public DataSource
2020-01-09 18:22:18 +08:00
/**
*
*/
class DataSourceTexture:public DataSource
{
public:
using DataSource::DataSource;
2020-01-09 18:22:18 +08:00
};//class DataSourceTexture:public DataSource
class DataSourceTexture1D:public DataSourceTexture
{
public:
using DataSourceTexture::DataSourceTexture;
2020-01-09 18:22:18 +08:00
};//class DataSourceTexture1D:public DataSourceTexture
class DataSourceTexture1DArrays:public DataSourceTexture
{
public:
using DataSourceTexture::DataSourceTexture;
};//class DataSourceTexture1DArrays:public DataSourceTexture
2020-01-09 18:22:18 +08:00
class DataSourceTexture2D:public DataSourceTexture
{
public:
using DataSourceTexture::DataSourceTexture;
2020-01-09 18:22:18 +08:00
};//class DataSourceTexture2D:public DataSourceTexture
class DataSourceTexture2DArrays:public DataSourceTexture
{
public:
using DataSourceTexture::DataSourceTexture;
2020-01-09 18:22:18 +08:00
};//class DataSourceTexture2DArrays:public DataSourceTexture
class DataSourceTextureCubemap:public DataSourceTexture
{
public:
using DataSourceTexture::DataSourceTexture;
2020-01-09 18:22:18 +08:00
};//class DataSourceTextureCubemap:public DataSourceTexture
class DataSourceTextureCubemapArrays:public DataSourceTexture
{
public:
using DataSourceTexture::DataSourceTexture;
2020-01-09 18:22:18 +08:00
};//class DataSourceTextureCubemapArrays:public DataSourceTexture
MATERIAL_NAMESPACE_END
2020-01-09 18:22:18 +08:00
#endif//HGL_GRAPH_MATERIAL_DATA_SOURCE_INCLUDE