Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
  • Oct 25 08:21
    fayalalebrun commented #1965
  • Oct 23 09:15
    fayalalebrun synchronize #1965
  • Oct 23 08:54
    fayalalebrun opened #1965
  • Oct 20 14:40
    OElabs-official commented #1964
  • Oct 20 00:41
    NCrashed commented #361
  • Oct 19 20:14
    est31 commented #1964
  • Oct 19 19:50
    OElabs-official opened #1964
  • Oct 09 13:21
    halvnykterist commented #1912
  • Oct 04 21:20
    est31 closed #1962
  • Oct 04 21:20
    est31 commented #1962
  • Oct 03 20:43
    Rami-Slicer commented #1962
  • Oct 03 04:50
    est31 commented #1962
  • Oct 03 03:56
    unlimitedbacon commented #1962
  • Sep 25 02:04
    jvcmarcenes closed #1963
  • Sep 25 01:55
    jvcmarcenes edited #1963
  • Sep 25 01:54
    jvcmarcenes opened #1963
  • Sep 19 05:04
    JerryChCN synchronize #1957
  • Sep 17 19:23
    Rami-Slicer opened #1962
  • Sep 12 18:30

    est31 on master

    Fix texture tutorial color spac… Merge pull request #1961 from d… (compare)

  • Sep 12 18:30
    est31 closed #1961
David Harvey-Macaulay
Hello, what's the difference between a Buffer and a BufferView? Intuition tells me a BufferView is a subset of a Buffer and so a BufferViewSlice must be a subset of a BufferView. This is the result I need but according to the documentation there seems to be no difference between the construction of a BufferView versus a Buffer at all.
Fedor Logachev
@tomaka Hello! I made quick port of glium_text to rusttype https://github.com/not-fl3/glium_text - it works well for quick protyping and dont requires additional binary dependencies. Code is not clean, and I didnt found a way to get all characters from rusttype like you did with truetype, so I dont think that you need it in main repo.
But it works well for me, and I am thinking about publish it on crates.io with different name, like glium_text_rusttype, do you have any thoughts about it?
Valera Rozuvan

Hey guys! Quick question. In OpenGL, when you have something like:

vec3 A = vec3(1.0, 2.0, 3.0);
A.xy = -A.yx;

A will now become:

{-2.0, -1.0, 3.0}

(In GLSL to be more precise. This is possible due to "swizzling". But in this particular case - I am in a bit of a doubt.)

What is the equivalent of glfwGetTime
I'm trying to perform a rotation, should I have my own timer, or does glutin/glium have a similar function
Thanks in advance! :D
I've got another question:
What is the glium parameter equivalent of:
I've tried using all the blend functions with OneMinusSourceAlpha and it doesn't work
There is white stuff on the edge of the image as well as having a black background
If I run this in OpenGL it will make things transparent and it will remove that white stuff around the edge of the png
To my first question:
        let params = glium::DrawParameters {
            blend: glium::Blend::alpha_blending(),
            .. Default::default()
And to my second:
// At the start of your program
let instant = Instant::now()
// Later
instant.elapsed().as_secs() as f64 + instant.elapsed().subsec_nanos() as f64 * 1e-9) as f32
(this may be a stupid question) Which version of opengl is used by glium?
tomaka Whatever version is available
so i could use opengl 4.5 features but had to test for required hardware first right?
first time with opengl :D
set the context to 4.5
Corentin Brunel
Hey everyone, I'm trying to learn about OpenGL by following the learnopengl, but right I'm lost.
I am trying to send a struct in a uniform, I tried everything that I could and nothing worked.
I tried the UniformBuffer to see if it would work, but even by itself with a simple f32 value, it doesn't work:
let buffer_material = glium::uniforms::UniformBuffer::new(&display, 1.0f32).expect("failed to create uniform buffer");
target.draw(&cube_vertex_buffer, &index_buffer, &program, &uniform! {
    MyBlock: &buffer_material,
&params).expect("failed to draw");
#version 330
uniform layout(std140);
uniform MyBlock {
    float test;
} myblock;

void main() {
FragColor = vec4(myblock.test, 1.0);
I can force the value to 1.0, use a simpler uniform and it will work
but this absolutely doesn't want to work
Corentin Brunel

I also tried renaming everything to make the block work, it just won't do anything.

Following this: LearnOpenGL - Lighting - Materials
What would I want to do to get the data I need across ? should I use regular uniforms and not worry about structs ? Even though it won't be as organized ?

Corentin Brunel

New issue now, it works but only partially !
here is the rust code (only part of it)

    #[derive(Copy, Clone)]
    struct Test {
        color: [f32; 3],
        color_two: [f32; 3],
    implement_uniform_block!(Test, color, color_two);
    let struct_uni_test = Test {
        color: [0.5, 0.5, 0.5],
        color_two: [0.2, 0.6, 0.1],
    let uni_test = glium::uniforms::UniformBuffer::new(&display, struct_uni_test).expect("failed to create uniform buffer");

And the GLSL:

#version 330 core
uniform layout(std140);

uniform UniTest {
    vec3 color;
    vec3 color_two;

void main()
    FragColor = vec4(color, 1.0);

And here is the error:

thread 'main' panicked at 'failed to draw: UniformBlockLayoutMismatch { name: "UniTest", err: MemberMismatch { member: "color_two", err: OffsetMismatch { expected: 16, obtained: 12 } } }', src\libcore\result.rs:906:4
The second color isn't offset well ? why would that be ?
Corentin Brunel
Found it ? maybe ? If I use vec4 instead of vec3 it seems to work
Is it possible to only use a VertexBuffer and not an IndexBuffer?
Sam Johnson
any tips on how to unbreak the examples after the recent glutin update?
I've been using glium for writing a visualizer. now i want to support Resolume, so i need to write a FFGL plugin. it gets the opengl context passed from the host and then needs to render into it. how can i do that with glium?
roberto forcen
what's the equivalent to: glEnable(GL_DEPTH_TEST);
roberto forcen

what's the equivalent to: glEnable(GL_DEPTH_TEST);

just found the solution in : https://github.com/glium/glium/blob/master/book/tuto-09-depth.md

Hello, I am not sure how to handle the following thing. Perhaps somebody here knows the proper way to do it. Every frame I wish to upload a texture to the gpu I have a big vector of f32 that I want to convert into a texture and render. However recreating the texture everytime is very slow. Is there someway to avoid the vector copy? Or perhaps a better way to update the texure?
  let image = glium::texture::RawImage2d::from_raw_rgb(
            (TEXSIZE as u32, TEXSIZE as u32),
 let texture = glium::texture::Texture2d::new(display, image).unwrap();