#include "fs_debug_show_texture.h" #include "device/dvc_device.h" #include "device/dvc_uniform_buffer.h" #include "asset/dvc_texture.h" #include "shader/dvc_shader_functions.h" #include "pipe/dvc_render_pipe.h" const char* DebugFragementShader_ShowTexture::getName(void) const { return "debug:show_texture"; } void DebugFragementShader_ShowTexture::begin(const davinci::RenderPipe* pipe, davinci::MaterialConstPtr material) { m_pipe = pipe; m_material = material; material->getParam("u_textureInfo", m_textureInfo); } void DebugFragementShader_ShowTexture::process(const davinci::VertexDesc& veretexDesc, const float32_t* pixelData, davinci::fVector4& color) { const davinci::UniformBuffer& uniformBuffer = m_pipe->getUniformBuffer(); const davinci::VertexDesc::Element* v_uv_Element = veretexDesc.getElement("v_uv"); const davinci::fVector2* v_uv = (const davinci::fVector2*)(pixelData + (v_uv_Element->offset / sizeof(float32_t))); davinci::fVector4 textureColor = davinci::shader::texture2D(*m_pipe, m_textureInfo, (*v_uv), davinci::fVector4::WHITE); color = textureColor; } void DebugFragementShader_ShowTexture::end() { m_material.reset(); m_textureInfo.texture.reset(); }