mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-20 00:02:55 +00:00
Handling of referenced shaders
This commit is contained in:
parent
b48fbb2b0e
commit
f9fad26ccc
@ -218,9 +218,18 @@ namespace IW4
|
|||||||
|
|
||||||
void DumpVertexShader(const MaterialPass& pass)
|
void DumpVertexShader(const MaterialPass& pass)
|
||||||
{
|
{
|
||||||
if (pass.vertexShader == nullptr)
|
if (pass.vertexShader == nullptr || pass.vertexShader->name == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (pass.vertexShader->name[0] == ',')
|
||||||
|
{
|
||||||
|
// Cannot dump when shader is referenced due to unknown constant names and unknown version
|
||||||
|
Indent();
|
||||||
|
std::cerr << "Cannot dump vertex shader " << &pass.vertexShader->name[1] << " due to being a referenced asset\n";
|
||||||
|
m_stream << "// Cannot dump vertex shader " << &pass.vertexShader->name[1] << " due to being a referenced asset\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const auto vertexShaderInfo = d3d9::ShaderAnalyser::GetShaderInfo(pass.vertexShader->prog.loadDef.program, pass.vertexShader->prog.loadDef.programSize * sizeof(uint32_t));
|
const auto vertexShaderInfo = d3d9::ShaderAnalyser::GetShaderInfo(pass.vertexShader->prog.loadDef.program, pass.vertexShader->prog.loadDef.programSize * sizeof(uint32_t));
|
||||||
assert(vertexShaderInfo);
|
assert(vertexShaderInfo);
|
||||||
if (!vertexShaderInfo)
|
if (!vertexShaderInfo)
|
||||||
@ -257,9 +266,18 @@ namespace IW4
|
|||||||
|
|
||||||
void DumpPixelShader(const MaterialPass& pass)
|
void DumpPixelShader(const MaterialPass& pass)
|
||||||
{
|
{
|
||||||
if (pass.pixelShader == nullptr)
|
if (pass.pixelShader == nullptr || pass.pixelShader->name == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if(pass.pixelShader->name[0] == ',')
|
||||||
|
{
|
||||||
|
// Cannot dump when shader is referenced due to unknown constant names and unknown version
|
||||||
|
Indent();
|
||||||
|
std::cerr << "Cannot dump pixel shader " << &pass.pixelShader->name[1] << " due to being a referenced asset\n";
|
||||||
|
m_stream << "// Cannot dump pixel shader " << &pass.pixelShader->name[1] << " due to being a referenced asset\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const auto pixelShaderInfo = d3d9::ShaderAnalyser::GetShaderInfo(pass.pixelShader->prog.loadDef.program, pass.pixelShader->prog.loadDef.programSize * sizeof(uint32_t));
|
const auto pixelShaderInfo = d3d9::ShaderAnalyser::GetShaderInfo(pass.pixelShader->prog.loadDef.program, pass.pixelShader->prog.loadDef.programSize * sizeof(uint32_t));
|
||||||
assert(pixelShaderInfo);
|
assert(pixelShaderInfo);
|
||||||
if (!pixelShaderInfo)
|
if (!pixelShaderInfo)
|
||||||
@ -296,7 +314,7 @@ namespace IW4
|
|||||||
m_stream << "}\n";
|
m_stream << "}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GetStreamDestinationString(const MaterialStreamDestination_e dst)
|
static const char* GetStreamDestinationString(const MaterialStreamDestination_e dst)
|
||||||
{
|
{
|
||||||
static const char* destinationNames[]
|
static const char* destinationNames[]
|
||||||
{
|
{
|
||||||
@ -323,7 +341,7 @@ namespace IW4
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GetStreamSourceString(const MaterialStreamStreamSource_e src)
|
static const char* GetStreamSourceString(const MaterialStreamStreamSource_e src)
|
||||||
{
|
{
|
||||||
static const char* sourceNames[]
|
static const char* sourceNames[]
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user