This commit is contained in:
Nanako 2025-02-24 01:30:03 +08:00
parent bd7c8fd668
commit 76a60de65a
3 changed files with 11 additions and 9 deletions

View File

@ -6,6 +6,6 @@ int main(int argc, char* argv[]) {
init.size = {800, 600};
init.resizable = true;
init.centered = true;
// init.api = mirage::renderer_api::opengl;
init.api = mirage::renderer_api::opengl;
return run(init);
}

View File

@ -34,17 +34,17 @@ SHADER_EXTENSIONS = {
'spirv': 'spirv',
'dxil': 'dxil',
'dxbc': 'dxbc',
'Metal Library Bytecode assembly': 'metallib',
'metallib': 'metallib',
'wgsl': 'wgsl'
}
# 不同目标平台的编译配置
TARGET_PROFILES = {
'glsl': ['-profile', 'glsl_460'],
'spirv': ['-profile', 'glsl_460', '-capability', 'glsl_spirv_1_6'],
'glsl': ['-profile', 'glsl_460', '-capability', 'spirv_latest'],
'spirv': ['-profile', 'spirv_1_6'],
'dxbc': ['-profile', 'sm_5_0'],
'dxil': ['-profile', 'sm_6_6'],
'Metal Library Bytecode assembly': ['-capability', 'metallib_3_1']
'metallib': ['-capability', 'metallib_3_1']
}
class ShaderEntry:
@ -245,17 +245,18 @@ def generate_pipeline_header_preamble() -> List[str]:
" throw std::runtime_error(\"Failed to read shader file: \" + std::string(e.what()));",
" }",
"",
" bool is_string_source = rendererID == LLGL::RendererID::OpenGL;",
" if (is_string_source) {",
" if (rendererID == LLGL::RendererID::OpenGL) {",
" // 添加终止符",
" shaderData.push_back('\\0');",
" }",
" // 创建着色器",
" LLGL::ShaderDescriptor desc = shaderDesc;",
" desc.source = shaderData.data();",
" desc.sourceSize = shaderData.size();",
" desc.entryPoint = entryPoint;",
" desc.entryPoint = rendererID == LLGL::RendererID::OpenGL ? \"main\" : entryPoint;",
" desc.type = type;",
" desc.sourceType = is_string_source ? LLGL::ShaderSourceType::CodeString : LLGL::ShaderSourceType::BinaryBuffer;",
" desc.profile = \"460\";",
" desc.sourceType = rendererID == LLGL::RendererID::OpenGL ? LLGL::ShaderSourceType::CodeString : LLGL::ShaderSourceType::BinaryBuffer;",
"",
" auto shader = renderer->CreateShader(desc);",
" if (auto report = shader->GetReport()) {",

View File

@ -84,6 +84,7 @@ namespace mirage {
command_buffer->SetPipelineState(*pipeline.pipeline_state);
command_buffer->SetResource(0, param_buffer->get_raw());
command_buffer->DrawIndexed(index_buffer->get_size() / sizeof(uint32_t), 0);
}
command_buffer->EndRenderPass();