标签: egui

Rust egui 窗口大小和深色模式

我正在尝试使用 egui 制作一个本机 GUI 应用程序。一段时间后,编译了hello_world 示例
代码如下:

use eframe::{epi, egui};

struct MyEguiApp {
    name: String,
    age: u32,
}

impl Default for MyEguiApp {
    fn default() -> Self {
        Self {
            name: "Arthur".to_owned(),
            age: 42,
        }
    }
}

impl epi::App for MyEguiApp {
   fn name(&self) -> &str {
       "Test"
   }

    fn update(&mut self, ctx: &egui::Context, frame: &epi::Frame) {
        egui::CentralPanel::default().show(ctx, |ui| {
            ui.heading("My egui aplication");
            ui.horizontal(|ui|{
                ui.label("Your name: ");
                ui.text_edit_singleline(&mut self.name);
            });
            ui.add(egui::Slider::new(&mut self.age,0..=120));
            if ui.button("Click each year").clicked() {
                self.age …
Run Code Online (Sandbox Code Playgroud)

user-interface rust egui

4
推荐指数
1
解决办法
4433
查看次数

为什么我的 OpenGL Texutre 渲染变暗?(RGB值是平方的)

我一直在使用glow 在 Rust 中进行一些 opengl 渲染。进展顺利,但是渲染到纹理与渲染到图像给了我不同的结果。我知道一个简单的解决方法,但我只是不明白。

在此输入图像描述

右侧的图像直接渲染到屏幕上,而左下角的图像是通过使用相同的绘制函数(将像素数据传递到 egui 的 ColorImage)将相同的网格渲染到相同大小的纹理来创建的。正如您所看到的,它太暗了,当我将像素数据保存到文件(使用 Rust 的 Image crate)时也是如此。

但是,如果渲染中通道的值已满,则输出中的通道值也已满,就像在转换为 RGB8 之前将 RGB 值在 0-1.0 范围内进行平方一样。果然,我尝试在像素数据 ( flipped_buffer[i1] = ((buffer[i2] as f32 / 255.).sqrt() * 255.).round() as u8;) 中撤消这一点,它开始看起来是正确的!

所以为什么?这是一个非常具体的事情,我什至可以想象它是映射颜色的一种有用的方式(因为眼睛比亮的值更好地区分较暗的值),但为什么会发生在这里?

写入纹理的代码基于此处的教程,但使用 Rust 中的发光而不是 C/C++,并使用 RGBA 而不是 RGB。

纹理创建摘录:

let gl_texture = self.gl.create_texture()?;
self.gl.bind_texture(glow::TEXTURE_2D, Some(gl_texture));
self.gl.tex_image_2d(glow::TEXTURE_2D, 0, glow::RGBA as i32, width as i32, height as i32, 0, glow::RGBA, glow::UNSIGNED_BYTE, None);
self.gl.tex_parameter_i32(glow::TEXTURE_2D, glow::TEXTURE_MAG_FILTER, glow::NEAREST as i32);
self.gl.tex_parameter_i32(glow::TEXTURE_2D, glow::TEXTURE_MIN_FILTER, glow::NEAREST as i32); …
Run Code Online (Sandbox Code Playgroud)

opengl rust egui

2
推荐指数
1
解决办法
255
查看次数

标签 统计

egui ×2

rust ×2

opengl ×1

user-interface ×1