Files
davinci2/source/shaders/standard/fs_debug_show_texture.cpp
T
2025-12-03 23:38:08 +08:00

38 lines
1.2 KiB
C++

#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();
}