Explorar el Código

Remove redundant viewport parameter from draw fns

Johannes Hofmann hace 7 años
padre
commit
b3dc228f1e
Se han modificado 3 ficheros con 10 adiciones y 16 borrados
  1. 3
    7
      src/map_view_gl.rs
  2. 5
    6
      src/marker_layer.rs
  3. 2
    3
      src/mercator_tile_layer.rs

+ 3
- 7
src/map_view_gl.rs Ver fichero

@@ -140,29 +140,25 @@ impl MapViewGl {
140 140
             self.mercator_tile_layer.prepare_draw(cx, &self.tile_atlas);
141 141
         }
142 142
 
143
-        //TODO remove viewport_size parameter
144 143
         self.mercator_tile_layer.draw(
145 144
             cx,
146 145
             &self.map_view,
147 146
             source,
148 147
             &mut self.tile_cache,
149 148
             &mut self.tile_atlas,
150
-            self.viewport_size,
151 149
             snap_to_pixel
152 150
         )
153 151
     }
154 152
 
155
-    fn draw_marker(&mut self, cx: &mut Context, snap_to_pixel: bool) {
153
+    fn draw_mercator_marker(&mut self, cx: &mut Context, snap_to_pixel: bool) {
156 154
         if self.last_draw_type != DrawType::Markers {
157 155
             self.last_draw_type = DrawType::Markers;
158 156
             self.marker_layer.prepare_draw(cx);
159 157
         }
160 158
 
161
-        //TODO remove viewport_size parameter
162
-        self.marker_layer.draw(
159
+        self.marker_layer.draw_mercator(
163 160
             cx,
164 161
             &self.map_view,
165
-            self.viewport_size,
166 162
             self.dpi_factor,
167 163
             snap_to_pixel,
168 164
         );
@@ -194,7 +190,7 @@ impl MapViewGl {
194 190
             Projection::Mercator => {
195 191
                 let ret = self.draw_mercator_tiles(cx, source, snap_to_pixel);
196 192
                 if !self.marker_layer.is_empty() {
197
-                    self.draw_marker(cx, snap_to_pixel);
193
+                    self.draw_mercator_marker(cx, snap_to_pixel);
198 194
                 }
199 195
                 ret
200 196
             },

+ 5
- 6
src/marker_layer.rs Ver fichero

@@ -76,11 +76,10 @@ impl MarkerLayer {
76 76
         self.program.set_vertex_attribs(cx, &self.buffer);
77 77
     }
78 78
 
79
-    pub fn draw(
79
+    pub fn draw_mercator(
80 80
         &mut self,
81 81
         cx: &mut Context,
82 82
         map_view: &MapView,
83
-        viewport_size: (u32, u32),
84 83
         dpi_factor: f64,
85 84
         snap_to_pixel: bool
86 85
     ) {
@@ -89,8 +88,8 @@ impl MarkerLayer {
89 88
         let marker_size = vec2::<f64>(40.0, 50.0) * dpi_factor;
90 89
         let marker_offset = vec2::<f64>(-20.0, -50.0) * dpi_factor;
91 90
 
92
-        let scale_x = 2.0 / viewport_size.0 as f32;
93
-        let scale_y = -2.0 / viewport_size.1 as f32;
91
+        let scale_x = 2.0 / map_view.width as f32;
92
+        let scale_y = -2.0 / map_view.height as f32;
94 93
 
95 94
         let tex_mat: Matrix3<f32> = Matrix3::from_cols(
96 95
             vec3(marker_size.x as f32, 0.0, 0.0),
@@ -112,8 +111,8 @@ impl MarkerLayer {
112 111
         let visible_rect = ScreenRect {
113 112
             x: -(marker_offset.x + marker_size.x),
114 113
             y: -(marker_offset.y + marker_size.y),
115
-            width: f64::from(viewport_size.0) + marker_size.x,
116
-            height: f64::from(viewport_size.1) + marker_size.y,
114
+            width: map_view.width + marker_size.x,
115
+            height: map_view.height + marker_size.y,
117 116
         };
118 117
 
119 118
         for map_pos in &self.positions {

+ 2
- 3
src/mercator_tile_layer.rs Ver fichero

@@ -74,7 +74,6 @@ impl MercatorTileLayer {
74 74
         source: &TileSource,
75 75
         cache: &mut TileCache,
76 76
         atlas: &mut TileAtlas,
77
-        viewport_size: (u32, u32),
78 77
         snap_to_pixel: bool
79 78
     ) -> Result<usize, usize> {
80 79
         cache.set_view_location(View {
@@ -102,8 +101,8 @@ impl MercatorTileLayer {
102 101
             max_tiles_to_use = max_tiles_to_use.saturating_sub(used_tiles);
103 102
 
104 103
             let mut vertex_data: Vec<f32> = Vec::with_capacity(textured_visible_tiles.len() * (6 * 8));
105
-            let scale_x = 2.0 / f64::from(viewport_size.0);
106
-            let scale_y = -2.0 / f64::from(viewport_size.1);
104
+            let scale_x = 2.0 / map_view.width;
105
+            let scale_y = -2.0 / map_view.height;
107 106
             for tvt in &textured_visible_tiles {
108 107
                 let minmax = [
109 108
                     tvt.tex_minmax.x1 as f32,