mirror of
https://github.com/emilk/egui.git
synced 2026-08-31 05:40:03 -04:00
Move README section on writing a new integration to the egui crate docs
Closes https://github.com/emilk/egui/issues/3326
This commit is contained in:
@@ -107,9 +107,9 @@
|
||||
//!
|
||||
//! Most likely you are using an existing `egui` backend/integration such as [`eframe`](https://docs.rs/eframe), [`bevy_egui`](https://docs.rs/bevy_egui),
|
||||
//! or [`egui-miniquad`](https://github.com/not-fl3/egui-miniquad),
|
||||
//! but if you want to integrate `egui` into a new game engine, this is the section for you.
|
||||
//! but if you want to integrate `egui` into a new game engine or graphics backend, this is the section for you.
|
||||
//!
|
||||
//! To write your own integration for egui you need to do this:
|
||||
//! You need to collect [`RawInput`] and handle [`FullOutput`]. The basic structure is this:
|
||||
//!
|
||||
//! ``` no_run
|
||||
//! # fn handle_platform_output(_: egui::PlatformOutput) {}
|
||||
@@ -135,6 +135,31 @@
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
//! For a reference OpenGL renderer, see [the `egui_glow` painter](https://github.com/emilk/egui/blob/master/crates/egui_glow/src/painter.rs).
|
||||
//!
|
||||
//!
|
||||
//! ### Debugging your renderer
|
||||
//!
|
||||
//! #### Things look jagged
|
||||
//!
|
||||
//! * Turn off backface culling.
|
||||
//!
|
||||
//! #### My text is blurry
|
||||
//!
|
||||
//! * Make sure you set the proper `pixels_per_point` in the input to egui.
|
||||
//! * Make sure the texture sampler is not off by half a pixel. Try nearest-neighbor sampler to check.
|
||||
//!
|
||||
//! #### My windows are too transparent or too dark
|
||||
//!
|
||||
//! * egui uses premultiplied alpha, so make sure your blending function is `(ONE, ONE_MINUS_SRC_ALPHA)`.
|
||||
//! * Make sure your texture sampler is clamped (`GL_CLAMP_TO_EDGE`).
|
||||
//! * egui prefers linear color spaces for all blending so:
|
||||
//! * Use an sRGBA-aware texture if available (e.g. `GL_SRGB8_ALPHA8`).
|
||||
//! * Otherwise: remember to decode gamma in the fragment shader.
|
||||
//! * Decode the gamma of the incoming vertex colors in your vertex shader.
|
||||
//! * Turn on sRGBA/linear framebuffer if available (`GL_FRAMEBUFFER_SRGB`).
|
||||
//! * Otherwise: gamma-encode the colors before you write them again.
|
||||
//!
|
||||
//!
|
||||
//! # Understanding immediate mode
|
||||
//!
|
||||
|
||||
Reference in New Issue
Block a user