| 957 | } |
| 958 | |
| 959 | static HProgram NullNewProgram(HContext _context, ShaderDesc* ddf, char* error_buffer, uint32_t error_buffer_size) |
| 960 | { |
| 961 | ShaderDesc::Shader* ddf_vp = 0x0; |
| 962 | ShaderDesc::Shader* ddf_fp = 0x0; |
| 963 | ShaderDesc::Shader* ddf_cp = 0x0; |
| 964 | |
| 965 | if (!GetShaderProgram(_context, ddf, &ddf_vp, &ddf_fp, &ddf_cp)) |
| 966 | { |
| 967 | return 0; |
| 968 | } |
| 969 | |
| 970 | NullProgram* p = new NullProgram(); |
| 971 | |
| 972 | if (ddf_cp) |
| 973 | { |
| 974 | p->m_Compute = NewShaderModuleFromDDF(_context, ddf_cp); |
| 975 | } |
| 976 | else |
| 977 | { |
| 978 | p->m_VP = NewShaderModuleFromDDF(_context, ddf_vp); |
| 979 | p->m_FP = NewShaderModuleFromDDF(_context, ddf_fp); |
| 980 | } |
| 981 | |
| 982 | CreateShaderMeta(&ddf->m_Reflection, &p->m_BaseProgram.m_ShaderMeta); |
| 983 | CreateProgramResourceBindings(p, p->m_VP, p->m_FP, p->m_Compute); |
| 984 | |
| 985 | return (HProgram) p; |
| 986 | } |
| 987 | |
| 988 | static void DeleteShader(NullShaderModule* shader) |
| 989 | { |
nothing calls this directly
no test coverage detected