| 63 | } |
| 64 | |
| 65 | int main(int argc, char **argv) |
| 66 | { |
| 67 | QApplication app(argc, argv); |
| 68 | QDir::setCurrent(RESOURCE_DIR"/Shader"); |
| 69 | |
| 70 | QWidget main; |
| 71 | |
| 72 | QGridLayout* layout = new QGridLayout(&main); |
| 73 | |
| 74 | QPushButton* btCompile = new QPushButton("Vulkan GLSL"); |
| 75 | QTextEdit* editor = new QTextEdit; |
| 76 | QTextBrowser* glslBrowser = new QTextBrowser; |
| 77 | QTextBrowser* hlslBrowser = new QTextBrowser; |
| 78 | QTextBrowser* mslBrowser = new QTextBrowser; |
| 79 | |
| 80 | layout->addWidget(btCompile, 0, 0); |
| 81 | layout->addWidget(editor, 1, 0); |
| 82 | |
| 83 | layout->addWidget(new QLabel("OpenGL GLSL"), 0, 1, Qt::AlignCenter); |
| 84 | layout->addWidget(glslBrowser, 1, 1); |
| 85 | |
| 86 | layout->addWidget(new QLabel("HLSL"), 0, 2, Qt::AlignCenter); |
| 87 | layout->addWidget(hlslBrowser, 1, 2); |
| 88 | |
| 89 | layout->addWidget(new QLabel("MSL"), 0, 3, Qt::AlignCenter); |
| 90 | layout->addWidget(mslBrowser, 1, 3); |
| 91 | |
| 92 | editor->setTabStopDistance(16); |
| 93 | editor->setText(R"(#version 430 |
| 94 | layout(location = 0) in vec3 vColor; |
| 95 | layout(location = 0) out vec4 outFragColor; |
| 96 | layout(std140, binding = 0) uniform UniformBlock { |
| 97 | float opacity; |
| 98 | }UBO; |
| 99 | void main() |
| 100 | { |
| 101 | outFragColor = vec4(vColor, UBO.opacity); |
| 102 | })"); |
| 103 | |
| 104 | QObject::connect(btCompile, &QPushButton::clicked, [&]() { |
| 105 | QShader shader = newShaderFromCode(QShader::FragmentStage, editor->toPlainText().toLocal8Bit()); |
| 106 | glslBrowser->setText(shader.shader(QShaderKey(QShader::GlslShader, QShaderVersion(430))).shader()); |
| 107 | hlslBrowser->setText(shader.shader(QShaderKey(QShader::HlslShader, QShaderVersion(60))).shader()); |
| 108 | mslBrowser->setText(shader.shader(QShaderKey(QShader::MslShader, QShaderVersion(12))).shader()); |
| 109 | }); |
| 110 | |
| 111 | main.setMinimumSize(1200,800); |
| 112 | main.show(); |
| 113 | |
| 114 | return app.exec(); |
| 115 | } |
nothing calls this directly
no test coverage detected