mirror of
https://github.com/eliasstepanik/imgui-rs.git
synced 2026-01-11 13:38:35 +00:00
Add explicit OpenGL 3.2 support
Some old OS X environments refuse to work with OpenGL 3.0 even though they support later versions.
This commit is contained in:
parent
1750aa5e72
commit
4da1e5f54a
@ -36,7 +36,11 @@ pub fn run<F: FnMut(&Ui) -> bool>(title: String, clear_color: [f32; 4], mut run_
|
||||
} else if version.major >= 4 {
|
||||
Shaders::GlSl400
|
||||
} else if version.major >= 3 {
|
||||
Shaders::GlSl130
|
||||
if version.minor >= 2 {
|
||||
Shaders::GlSl150
|
||||
} else {
|
||||
Shaders::GlSl130
|
||||
}
|
||||
} else {
|
||||
Shaders::GlSl110
|
||||
}
|
||||
|
||||
@ -97,6 +97,7 @@ extended_defines! {
|
||||
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
|
||||
pub enum Shaders {
|
||||
GlSl400, // OpenGL 4.0+
|
||||
GlSl150, // OpenGL 3.2+
|
||||
GlSl130, // OpenGL 3.0+
|
||||
GlSl110, // OpenGL 2.0+
|
||||
GlSlEs300, // OpenGL ES 3.0+
|
||||
@ -111,6 +112,10 @@ impl Shaders {
|
||||
include_bytes!("shader/glsl_400.vert"),
|
||||
include_bytes!("shader/glsl_400.frag"),
|
||||
),
|
||||
GlSl150 => (
|
||||
include_bytes!("shader/glsl_150.vert"),
|
||||
include_bytes!("shader/glsl_150.frag"),
|
||||
),
|
||||
GlSl130 => (
|
||||
include_bytes!("shader/glsl_130.vert"),
|
||||
include_bytes!("shader/glsl_130.frag"),
|
||||
|
||||
12
imgui-gfx-renderer/src/shader/glsl_150.frag
Normal file
12
imgui-gfx-renderer/src/shader/glsl_150.frag
Normal file
@ -0,0 +1,12 @@
|
||||
#version 150
|
||||
|
||||
uniform sampler2D tex;
|
||||
|
||||
in vec2 f_uv;
|
||||
in vec4 f_color;
|
||||
|
||||
out vec4 Target0;
|
||||
|
||||
void main() {
|
||||
Target0 = f_color * texture(tex, f_uv.st);
|
||||
}
|
||||
19
imgui-gfx-renderer/src/shader/glsl_150.vert
Normal file
19
imgui-gfx-renderer/src/shader/glsl_150.vert
Normal file
@ -0,0 +1,19 @@
|
||||
#version 150
|
||||
|
||||
uniform mat4 matrix;
|
||||
|
||||
in vec2 pos;
|
||||
in vec2 uv;
|
||||
in vec4 col;
|
||||
|
||||
out vec2 f_uv;
|
||||
out vec4 f_color;
|
||||
|
||||
// Built-in:
|
||||
// vec4 gl_Position
|
||||
|
||||
void main() {
|
||||
f_uv = uv;
|
||||
f_color = col;
|
||||
gl_Position = matrix * vec4(pos.xy, 0, 1);
|
||||
}
|
||||
@ -197,6 +197,11 @@ fn compile_default_program<F: Facade>(
|
||||
fragment: include_str!("shader/glsl_400.frag"),
|
||||
outputs_srgb: true,
|
||||
},
|
||||
150 => {
|
||||
vertex: include_str!("shader/glsl_150.vert"),
|
||||
fragment: include_str!("shader/glsl_150.frag"),
|
||||
outputs_srgb: true,
|
||||
},
|
||||
130 => {
|
||||
vertex: include_str!("shader/glsl_130.vert"),
|
||||
fragment: include_str!("shader/glsl_130.frag"),
|
||||
|
||||
12
imgui-glium-renderer/src/shader/glsl_150.frag
Normal file
12
imgui-glium-renderer/src/shader/glsl_150.frag
Normal file
@ -0,0 +1,12 @@
|
||||
#version 150
|
||||
|
||||
uniform sampler2D tex;
|
||||
|
||||
in vec2 f_uv;
|
||||
in vec4 f_color;
|
||||
|
||||
out vec4 out_color;
|
||||
|
||||
void main() {
|
||||
out_color = f_color * texture(tex, f_uv.st);
|
||||
}
|
||||
19
imgui-glium-renderer/src/shader/glsl_150.vert
Normal file
19
imgui-glium-renderer/src/shader/glsl_150.vert
Normal file
@ -0,0 +1,19 @@
|
||||
#version 150
|
||||
|
||||
uniform mat4 matrix;
|
||||
|
||||
in vec2 pos;
|
||||
in vec2 uv;
|
||||
in vec4 col;
|
||||
|
||||
out vec2 f_uv;
|
||||
out vec4 f_color;
|
||||
|
||||
// Built-in:
|
||||
// vec4 gl_Position
|
||||
|
||||
void main() {
|
||||
f_uv = uv;
|
||||
f_color = col / 255.0;
|
||||
gl_Position = matrix * vec4(pos.xy, 0, 1);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user