Some slang progress
This commit is contained in:
@ -17,7 +17,7 @@ namespace Dawn {
|
||||
int32_t width = -1;
|
||||
int32_t height = -1;
|
||||
GLuint id = -1;
|
||||
GLuint samplerId = -1;
|
||||
// GLuint samplerId = -1;
|
||||
TextureFormat format;
|
||||
TextureDataFormat dataFormat;
|
||||
|
||||
|
@ -87,6 +87,27 @@ namespace Dawn {
|
||||
assertNoGLError();
|
||||
assertTrue(status == GL_TRUE, "Failed to link shader program.");
|
||||
|
||||
std::vector<std::string> uniformNames;
|
||||
GLint numUniforms = 0;
|
||||
|
||||
// Get the number of active uniforms
|
||||
glGetProgramiv(shaderProgram, GL_ACTIVE_UNIFORMS, &numUniforms);
|
||||
assertNoGLError();
|
||||
|
||||
// Iterate through each uniform
|
||||
// for (GLint i = 0; i < numUniforms; ++i) {
|
||||
// char name[256];
|
||||
// GLsizei length;
|
||||
// GLint size;
|
||||
// GLenum type;
|
||||
|
||||
// // Get the uniform name
|
||||
// glGetActiveUniform(shaderProgram, i, sizeof(name), &length, &size, &type, name);
|
||||
// assertNoGLError();
|
||||
// std::cout << "Uniform: " << i << ":" << name << std::endl;
|
||||
// // uniformNames.push_back(std::string(name));
|
||||
// }
|
||||
|
||||
// Map parameters correctly.
|
||||
std::for_each(
|
||||
parameters.begin(),
|
||||
|
@ -30,19 +30,14 @@ void SimpleTexturedShader::getStages(
|
||||
float4x4 u_Model;
|
||||
float4 u_Color;
|
||||
bool u_HasTexture;
|
||||
uniform Sampler2D u_Texture;
|
||||
};
|
||||
|
||||
layout(binding = 1)
|
||||
uniform Sampler2D u_Texture;
|
||||
|
||||
struct AssembledVertex {
|
||||
float3 position : POSITION;
|
||||
float2 texcoord : TEXCOORD;
|
||||
};
|
||||
|
||||
struct CoarseVertex {
|
||||
};
|
||||
|
||||
struct Fragment {
|
||||
float4 color;
|
||||
};
|
||||
@ -126,8 +121,6 @@ void SimpleTexturedShader::getStages(
|
||||
program.writeRef()
|
||||
);
|
||||
|
||||
slang::ProgramLayout* layout = program->getLayout();
|
||||
|
||||
Slang::ComPtr<IComponentType> linkedProgram;
|
||||
auto result = program->link(linkedProgram.writeRef(), diagnostics.writeRef());
|
||||
std::cout << "Result: " << result << std::endl;
|
||||
@ -150,6 +143,21 @@ void SimpleTexturedShader::getStages(
|
||||
return;
|
||||
}
|
||||
|
||||
slang::ProgramLayout* layout = program->getLayout();
|
||||
unsigned parameterCount = layout->getParameterCount();
|
||||
for(unsigned pp = 0; pp < parameterCount; pp++) {
|
||||
slang::VariableLayoutReflection* parameter = layout->getParameterByIndex(pp);
|
||||
std::cout << "Parameter: " << parameter->getName() << std::endl;
|
||||
|
||||
auto layout = parameter->getTypeLayout();
|
||||
auto fields = layout->getFieldCount();
|
||||
for(unsigned ff = 0; ff < fields; ff++) {
|
||||
slang::VariableLayoutReflection* field = layout->getFieldByIndex(ff);
|
||||
std::string fieldName = field->getName();
|
||||
std::cout << "Field: " << fieldName << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
std::string vertexString = (const char*)vertexBlob->getBufferPointer();
|
||||
std::ofstream out("/home/yourwishes/htdocs/Dawn/vertex.glsl");
|
||||
out << vertexString;
|
||||
@ -220,40 +228,9 @@ void SimpleTexturedShader::getStages(
|
||||
}
|
||||
));
|
||||
|
||||
|
||||
// Parameters
|
||||
// parameters.push_back(ShaderParameter(
|
||||
// "u_Projection",
|
||||
// &rel->projection,
|
||||
// ShaderParameterType::MAT4
|
||||
// ));
|
||||
|
||||
// parameters.push_back(ShaderParameter(
|
||||
// "u_View",
|
||||
// &rel->view,
|
||||
// ShaderParameterType::MAT4
|
||||
// ));
|
||||
|
||||
// parameters.push_back(ShaderParameter(
|
||||
// "u_Model",
|
||||
// &rel->model,
|
||||
// ShaderParameterType::MAT4
|
||||
// ));
|
||||
|
||||
// parameters.push_back(ShaderParameter(
|
||||
// "u_Color",
|
||||
// &rel->color,
|
||||
// ShaderParameterType::COLOR
|
||||
// ));
|
||||
|
||||
// parameters.push_back(ShaderParameter(
|
||||
// "u_HasTexture",
|
||||
// &rel->hasTexture,
|
||||
// ShaderParameterType::BOOLEAN
|
||||
// ));
|
||||
|
||||
parameters.push_back(ShaderParameter(
|
||||
"u_Texture_0",
|
||||
"Uniforms_u_Texture_0",
|
||||
&rel->texture,
|
||||
ShaderParameterType::TEXTURE
|
||||
));
|
||||
|
Reference in New Issue
Block a user