54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "dvc_config.h"
|
|
#include "dvc_pre_declare.h"
|
|
#include "shader/dvc_shader_interface.h"
|
|
#include "device/dvc_vertex_desc.h"
|
|
|
|
class TestVertexShader : public davinci::VertexShaderInterface
|
|
{
|
|
public:
|
|
virtual const char* getName(void) const;
|
|
|
|
virtual const davinci::VertexDesc& getOutputVertexDesc() const;
|
|
virtual size_t getOutputVertexByteSize(void) const;
|
|
|
|
virtual void prepare(const davinci::RenderPipe* pipe, SetInputAttributeFunc setInputAttributeFunc);
|
|
|
|
virtual void process(size_t index, void* outputVertex, davinci::fVector3& vertexWorldPos);
|
|
|
|
private:
|
|
const davinci::RenderPipe* m_pipe = nullptr;
|
|
|
|
davinci::DeviceBufferAccessorConstPtr m_POSITION;
|
|
davinci::DeviceBufferAccessorConstPtr m_NORMAL;
|
|
davinci::DeviceBufferAccessorConstPtr m_TEXCOORD_0;
|
|
davinci::DeviceBufferAccessorConstPtr m_TANGENT;
|
|
|
|
davinci::VertexDesc m_outputVertexDesc;
|
|
|
|
public:
|
|
TestVertexShader();
|
|
virtual ~TestVertexShader();
|
|
};
|
|
|
|
class StandardVertexShader : public davinci::VertexShaderInterface
|
|
{
|
|
public:
|
|
virtual const char* getName(void) const;
|
|
virtual const davinci::VertexDesc& getOutputVertexDesc() const;
|
|
virtual size_t getOutputVertexByteSize(void) const;
|
|
virtual void prepare(const davinci::RenderPipe* pipe, SetInputAttributeFunc setInputAttributeFunc);
|
|
virtual void process(size_t index, void* outputVertex, davinci::fVector3& vertexWorldPos);
|
|
|
|
private:
|
|
const davinci::RenderPipe* m_pipe = nullptr;
|
|
davinci::DeviceBufferAccessorConstPtr m_POSITION;
|
|
|
|
davinci::VertexDesc m_outputVertexDesc;
|
|
|
|
public:
|
|
StandardVertexShader();
|
|
virtual ~StandardVertexShader();
|
|
};
|