mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-04-29 22:24:26 +02:00
Move shaders to separate files
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
parent
cd0895b237
commit
6fc386cfe9
@ -810,6 +810,7 @@ SET(LAUNCHER_SOURCES
|
||||
resources/flat/flat.qrc
|
||||
resources/flat_white/flat_white.qrc
|
||||
resources/documents/documents.qrc
|
||||
resources/shaders/shaders.qrc
|
||||
../${Launcher_Branding_LogoQRC}
|
||||
|
||||
# Icons
|
||||
@ -1252,6 +1253,7 @@ qt_add_resources(LAUNCHER_RESOURCES
|
||||
resources/iOS/iOS.qrc
|
||||
resources/flat/flat.qrc
|
||||
resources/documents/documents.qrc
|
||||
resources/shaders/shaders.qrc
|
||||
../${Launcher_Branding_LogoQRC}
|
||||
)
|
||||
|
||||
|
@ -84,6 +84,8 @@ int main(int argc, char* argv[])
|
||||
Q_INIT_RESOURCE(iOS);
|
||||
Q_INIT_RESOURCE(flat);
|
||||
Q_INIT_RESOURCE(flat_white);
|
||||
|
||||
Q_INIT_RESOURCE(shaders);
|
||||
return app.exec();
|
||||
}
|
||||
case Application::Failed:
|
||||
|
21
launcher/resources/shaders/fshader.glsl
Normal file
21
launcher/resources/shaders/fshader.glsl
Normal file
@ -0,0 +1,21 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
// https://code.qt.io/cgit/qt/qtbase.git/tree/examples/opengl/cube/fshader.glsl
|
||||
#ifdef GL_ES
|
||||
// Set default precision to medium
|
||||
precision mediump int;
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform sampler2D texture;
|
||||
|
||||
varying vec2 v_texcoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Set fragment color from texture
|
||||
// gl_FragColor = texture2D(texture, v_texcoord);
|
||||
vec4 texColor = texture2D(texture, v_texcoord);
|
||||
if (texColor.a < 0.1) discard; // Optional: Discard fully transparent pixels
|
||||
gl_FragColor = texColor;
|
||||
}
|
6
launcher/resources/shaders/shaders.qrc
Normal file
6
launcher/resources/shaders/shaders.qrc
Normal file
@ -0,0 +1,6 @@
|
||||
<RCC>
|
||||
<qresource prefix="/shaders">
|
||||
<file>vshader.glsl</file>
|
||||
<file>fshader.glsl</file>
|
||||
</qresource>
|
||||
</RCC>
|
26
launcher/resources/shaders/vshader.glsl
Normal file
26
launcher/resources/shaders/vshader.glsl
Normal file
@ -0,0 +1,26 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
// https://code.qt.io/cgit/qt/qtbase.git/tree/examples/opengl/cube/vshader.glsl
|
||||
#ifdef GL_ES
|
||||
// Set default precision to medium
|
||||
precision mediump int;
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform mat4 mvp_matrix;
|
||||
uniform mat4 model_matrix;
|
||||
|
||||
attribute vec4 a_position;
|
||||
attribute vec2 a_texcoord;
|
||||
|
||||
varying vec2 v_texcoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Calculate vertex position in screen space
|
||||
gl_Position = mvp_matrix * model_matrix * a_position;
|
||||
|
||||
// Pass texture coordinate to fragment shader
|
||||
// Value will be automatically interpolated to fragments inside polygon faces
|
||||
v_texcoord = a_texcoord;
|
||||
}
|
@ -70,56 +70,11 @@ void SkinOpenGLWidget::initializeGL()
|
||||
void SkinOpenGLWidget::initShaders()
|
||||
{
|
||||
// Compile vertex shader
|
||||
if (!m_program.addCacheableShaderFromSourceCode(QOpenGLShader::Vertex, R"(// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
#ifdef GL_ES
|
||||
// Set default precision to medium
|
||||
precision mediump int;
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform mat4 mvp_matrix;
|
||||
uniform mat4 model_matrix;
|
||||
|
||||
attribute vec4 a_position;
|
||||
attribute vec2 a_texcoord;
|
||||
|
||||
varying vec2 v_texcoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Calculate vertex position in screen space
|
||||
gl_Position = mvp_matrix * model_matrix * a_position;
|
||||
|
||||
// Pass texture coordinate to fragment shader
|
||||
// Value will be automatically interpolated to fragments inside polygon faces
|
||||
v_texcoord = a_texcoord;
|
||||
}
|
||||
)"))
|
||||
if (!m_program.addCacheableShaderFromSourceFile(QOpenGLShader::Vertex, ":/shaders/vshader.glsl"))
|
||||
close();
|
||||
|
||||
// Compile fragment shader
|
||||
if (!m_program.addCacheableShaderFromSourceCode(QOpenGLShader::Fragment, R"(// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
#ifdef GL_ES
|
||||
// Set default precision to medium
|
||||
precision mediump int;
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform sampler2D texture;
|
||||
|
||||
varying vec2 v_texcoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
// Set fragment color from texture
|
||||
// gl_FragColor = texture2D(texture, v_texcoord);
|
||||
vec4 texColor = texture2D(texture, v_texcoord);
|
||||
if (texColor.a < 0.1) discard; // Optional: Discard fully transparent pixels
|
||||
gl_FragColor = texColor;
|
||||
}
|
||||
)"))
|
||||
if (!m_program.addCacheableShaderFromSourceFile(QOpenGLShader::Fragment, ":/shaders/fshader.glsl"))
|
||||
close();
|
||||
|
||||
// Link shader pipeline
|
||||
|
Loading…
x
Reference in New Issue
Block a user