maplibre/sdf/resource/
glyph_texture.rs1pub struct GlyphTexture {
2 pub bind_group: wgpu::BindGroup,
3}
4
5impl GlyphTexture {
6 pub fn from_device(
7 device: &wgpu::Device,
8 texture: &wgpu::Texture,
9 sampler: &wgpu::Sampler,
10 layout: &wgpu::BindGroupLayout,
11 ) -> Self {
12 let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor {
13 layout,
14 entries: &[
15 wgpu::BindGroupEntry {
16 binding: 0,
17 resource: wgpu::BindingResource::TextureView(&texture.create_view(
18 &wgpu::TextureViewDescriptor {
19 label: Some("Glyph texture view"),
20 format: Some(wgpu::TextureFormat::R8Unorm),
21 dimension: Some(wgpu::TextureViewDimension::D2),
22 aspect: wgpu::TextureAspect::All,
23 base_mip_level: 0,
24 mip_level_count: None,
25 base_array_layer: 0,
26 array_layer_count: None,
27 },
28 )),
29 },
30 wgpu::BindGroupEntry {
31 binding: 1,
32 resource: wgpu::BindingResource::Sampler(sampler),
33 },
34 ],
35 label: Some("Glyph texture bind group"),
36 });
37 Self { bind_group }
38 }
39}