Skip to content
Snippets Groups Projects
Commit 5a9fadc2 authored by John Mitchell's avatar John Mitchell
Browse files

Fixed issues with indexing vertex batches and materials.

parent 317b899e
No related branches found
No related tags found
No related merge requests found
......@@ -1233,6 +1233,8 @@ impl Plugin for KayakContextPlugin {
.register_type::<ComputedStyles>()
.register_type::<KStyle>()
.register_type::<KChildren>()
.register_type::<crate::layout::Rect>()
.register_type::<crate::node::Node>()
.register_type::<WidgetName>()
.register_type::<StyleProp<Color>>()
.register_type::<StyleProp<Corner<f32>>>()
......
......@@ -36,7 +36,7 @@ use crate::render::{
unified::pipeline::{
queue_quads_inner, DrawUIDraw, ExtractedQuad, ImageBindGroups, PreviousClip, QuadBatch,
QuadMeta, QuadTypeOffsets, SetUIViewBindGroup, UIQuadType, UnifiedPipeline,
UnifiedPipelineKey,
UnifiedPipelineKey, PreviousIndex,
},
};
......@@ -319,12 +319,13 @@ pub fn queue_material_ui_quads<M: MaterialUI>(
&'static UIExtractedView,
)>,
mut image_bind_groups: ResMut<ImageBindGroups>,
(gpu_images, font_texture_cache, quad_types_offsets, render_materials, mut prev_clip): (
(gpu_images, font_texture_cache, quad_types_offsets, render_materials, mut prev_clip, prev_index): (
Res<RenderAssets<Image>>,
Res<FontTextureCache>,
Res<QuadTypeOffsets>,
Res<RenderMaterialsUI<M>>,
ResMut<PreviousClip>,
Res<PreviousIndex>
),
) where
M::Data: PartialEq + Eq + Hash + Clone,
......@@ -339,7 +340,7 @@ pub fn queue_material_ui_quads<M: MaterialUI>(
let mut current_batch_entity = Entity::PLACEHOLDER;
// Vertex buffer indices
let mut index = 0;
let mut index = prev_index.index;
// let mut previous_clip_rect = Rect::default();
......
......@@ -24,7 +24,7 @@ use crate::{
use self::pipeline::{
queue_quad_types, queue_ui_view_bind_groups, DrawUITransparent, ExtractedQuads,
ImageBindGroups, PreviousClip, QuadTypeOffsets,
ImageBindGroups, PreviousClip, QuadTypeOffsets, PreviousIndex,
};
use super::{svg::RenderSvgs, ui_pass::TransparentOpacityUI};
......@@ -69,6 +69,7 @@ impl Plugin for UnifiedRenderPlugin {
.init_resource::<QuadMeta>()
.init_resource::<RenderSvgs>()
.init_resource::<PreviousClip>()
.init_resource::<PreviousIndex>()
.add_system(super::svg::extract_svg_asset.in_schedule(ExtractSchedule))
.add_system(extract_baseline.in_schedule(ExtractSchedule))
.add_system(queue_quad_types.in_set(RenderSet::Queue))
......
......@@ -172,7 +172,7 @@ impl FromWorld for UnifiedPipeline {
let empty_font_texture = FontTextureCache::get_empty(&render_device);
let texture_descriptor = TextureDescriptor {
label: Some("font_texture_array"),
label: Some("empty_texture"),
size: Extent3d {
width: 1,
height: 1,
......@@ -192,7 +192,7 @@ impl FromWorld for UnifiedPipeline {
let sampler = render_device.create_sampler(&sampler_descriptor);
let texture_view = texture.create_view(&TextureViewDescriptor {
label: Some("font_texture_array_view"),
label: Some("empty_texture_view"),
format: Some(TextureFormat::Rgba8UnormSrgb),
dimension: Some(TextureViewDimension::D2),
aspect: bevy::render::render_resource::TextureAspect::All,
......@@ -562,6 +562,11 @@ pub struct PreviousClip {
pub rect: Rect,
}
#[derive(Resource, Default)]
pub struct PreviousIndex {
pub index: u32,
}
#[derive(SystemParam)]
pub struct QueueQuads<'w, 's> {
render_svgs: Res<'w, RenderSvgs>,
......@@ -591,6 +596,7 @@ pub struct QueueQuads<'w, 's> {
font_texture_cache: Res<'w, FontTextureCache>,
quad_type_offsets: Res<'w, QuadTypeOffsets>,
prev_clip: ResMut<'w, PreviousClip>,
prev_index: ResMut<'w, PreviousIndex>,
}
pub fn queue_quads(queue_quads: QueueQuads) {
......@@ -613,6 +619,7 @@ pub fn queue_quads(queue_quads: QueueQuads) {
font_texture_cache,
quad_type_offsets,
mut prev_clip,
mut prev_index,
} = queue_quads;
let extracted_sprite_len = extracted_quads.quads.len();
......@@ -690,6 +697,8 @@ pub fn queue_quads(queue_quads: QueueQuads) {
)
}
}
prev_index.index = index;
}
pub fn queue_quads_inner(
......@@ -782,6 +791,7 @@ pub fn queue_quads_inner(
});
} else {
// Skip unloaded texture.
dbg!("Skip texture not loaded in!");
return;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment