重构材质系统
This commit is contained in:
@@ -31,7 +31,7 @@ public:
|
||||
return (a < b) ? a : b;
|
||||
}
|
||||
|
||||
static DV_CORE_API fVector4 texture2D(const RenderPipe& pipe, const Material::TextureInfo& texturePtr, const fVector2& uv, const fVector4& defaultValue);
|
||||
static DV_CORE_API fVector4 texture2D(const RenderPipe& pipe, const TextureInfo& texturePtr, const fVector2& uv, const fVector4& defaultValue);
|
||||
};
|
||||
|
||||
DV_CORE_END_NAMESPACE
|
||||
|
||||
@@ -16,9 +16,11 @@ public:
|
||||
virtual const VertexDesc& getOutputVertexDesc() const = 0;
|
||||
|
||||
typedef std::function<DeviceBufferAccessorConstPtr(VertexElementType)> SetInputAttributeFunc;
|
||||
virtual void prepare(const RenderPipe* pipe, SetInputAttributeFunc setInputAttributeFunc) = 0;
|
||||
virtual void begin(const RenderPipe* pipe, SetInputAttributeFunc setInputAttributeFunc) = 0;
|
||||
|
||||
virtual void process(size_t index, void* outputVertex, fVector3& vertexWorldPos) = 0;
|
||||
virtual void process(size_t index, float32_t* outputVertex) = 0;
|
||||
|
||||
virtual void end() = 0;
|
||||
};
|
||||
|
||||
class PixelShaderInterface
|
||||
@@ -26,9 +28,11 @@ class PixelShaderInterface
|
||||
public:
|
||||
virtual const char* getName(void) const = 0;
|
||||
|
||||
virtual void prepare(const RenderPipe* pipe, MaterialConstPtr material) = 0;
|
||||
virtual void begin(const RenderPipe* pipe, MaterialConstPtr material) = 0;
|
||||
|
||||
virtual void process(const VertexDesc& veretexDesc, const float32_t* pixelData, fVector4& color) = 0;
|
||||
|
||||
virtual void end() = 0;
|
||||
};
|
||||
|
||||
class ShaderFileInterface
|
||||
|
||||
Reference in New Issue
Block a user