New feature to support unity vertex layout requirement (#2493)
* Update mesh.rs adjust Vertex layout * add unity feature * add unity feature * document the `unity` feature flag --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
This commit is contained in:
parent
53f8e4049f
commit
430cbe541c
3 changed files with 27 additions and 0 deletions
|
@ -54,6 +54,10 @@ persistence = ["serde", "epaint/serde", "ron"]
|
||||||
## Allow serialization using [`serde`](https://docs.rs/serde).
|
## Allow serialization using [`serde`](https://docs.rs/serde).
|
||||||
serde = ["dep:serde", "epaint/serde", "accesskit?/serde"]
|
serde = ["dep:serde", "epaint/serde", "accesskit?/serde"]
|
||||||
|
|
||||||
|
## Change Vertex layout to be compatible with unity
|
||||||
|
unity = ["epaint/unity"]
|
||||||
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
epaint = { version = "0.20.0", path = "../epaint", default-features = false }
|
epaint = { version = "0.20.0", path = "../epaint", default-features = false }
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,9 @@ mint = ["emath/mint"]
|
||||||
## Allow serialization using [`serde`](https://docs.rs/serde).
|
## Allow serialization using [`serde`](https://docs.rs/serde).
|
||||||
serde = ["dep:serde", "ahash/serde", "emath/serde", "ecolor/serde"]
|
serde = ["dep:serde", "ahash/serde", "emath/serde", "ecolor/serde"]
|
||||||
|
|
||||||
|
## Change Vertex layout to be compatible with unity
|
||||||
|
unity = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
emath = { version = "0.20.0", path = "../emath" }
|
emath = { version = "0.20.0", path = "../emath" }
|
||||||
ecolor = { version = "0.20.0", path = "../ecolor" }
|
ecolor = { version = "0.20.0", path = "../ecolor" }
|
||||||
|
|
|
@ -6,6 +6,7 @@ use emath::*;
|
||||||
/// Should be friendly to send to GPU as is.
|
/// Should be friendly to send to GPU as is.
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
||||||
|
#[cfg(not(feature = "unity"))]
|
||||||
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "bytemuck", derive(bytemuck::Pod, bytemuck::Zeroable))]
|
#[cfg_attr(feature = "bytemuck", derive(bytemuck::Pod, bytemuck::Zeroable))]
|
||||||
pub struct Vertex {
|
pub struct Vertex {
|
||||||
|
@ -22,6 +23,25 @@ pub struct Vertex {
|
||||||
pub color: Color32, // 32 bit
|
pub color: Color32, // 32 bit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
|
||||||
|
#[cfg(feature = "unity")]
|
||||||
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
|
#[cfg_attr(feature = "bytemuck", derive(bytemuck::Pod, bytemuck::Zeroable))]
|
||||||
|
pub struct Vertex {
|
||||||
|
/// Logical pixel coordinates (points).
|
||||||
|
/// (0,0) is the top left corner of the screen.
|
||||||
|
pub pos: Pos2, // 64 bit
|
||||||
|
|
||||||
|
/// sRGBA with premultiplied alpha
|
||||||
|
pub color: Color32, // 32 bit
|
||||||
|
|
||||||
|
/// Normalized texture coordinates.
|
||||||
|
/// (0, 0) is the top left corner of the texture.
|
||||||
|
/// (1, 1) is the bottom right corner of the texture.
|
||||||
|
pub uv: Pos2, // 64 bit
|
||||||
|
}
|
||||||
|
|
||||||
/// Textured triangles in two dimensions.
|
/// Textured triangles in two dimensions.
|
||||||
#[derive(Clone, Debug, Default, PartialEq, Eq)]
|
#[derive(Clone, Debug, Default, PartialEq, Eq)]
|
||||||
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
|
||||||
|
|
Loading…
Reference in a new issue