@@ -3,6 +3,7 @@ use super::DRAWING_ALPHA;
33
44use super :: GuiMode ;
55use super :: ObamifyApp ;
6+ use crate :: app:: DEFAULT_RESOLUTION ;
67use crate :: app:: calculate;
78use crate :: app:: calculate:: ProgressMsg ;
89use crate :: app:: calculate:: util:: CropScale ;
@@ -104,7 +105,6 @@ fn show_icons() {
104105 // show .bottom-left-icons class after processing
105106 if let Some ( document) = web_sys:: window ( ) . and_then ( |w| w. document ( ) ) {
106107 if let Some ( icons) = document. query_selector ( ".bottom-left-icons" ) . ok ( ) . flatten ( ) {
107- web_sys:: console:: log_1 ( & "showing icons" . into ( ) ) ;
108108 let _ = icons
109109 . dyn_ref :: < web_sys:: HtmlElement > ( )
110110 . map ( |e| e. style ( ) . set_property ( "display" , "flex" ) ) ;
@@ -118,7 +118,6 @@ fn hide_icons() {
118118 // hide .bottom-left-icons class while processing
119119 if let Some ( document) = web_sys:: window ( ) . and_then ( |w| w. document ( ) ) {
120120 if let Some ( icons) = document. query_selector ( ".bottom-left-icons" ) . ok ( ) . flatten ( ) {
121- web_sys:: console:: log_1 ( & "hiding icons" . into ( ) ) ;
122121 let _ = icons
123122 . dyn_ref :: < web_sys:: HtmlElement > ( )
124123 . map ( |e| e. style ( ) . set_property ( "display" , "none" ) ) ;
@@ -147,20 +146,31 @@ impl App for ObamifyApp {
147146 // }
148147
149148 // Ensure texture is registered exactly once per allocation
150- self . ensure_registered_texture ( rs) ;
149+ self . ensure_registered_texture (
150+ rs,
151+ if self . size . 0 < 512 {
152+ wgpu:: FilterMode :: Nearest
153+ } else {
154+ wgpu:: FilterMode :: Linear
155+ } ,
156+ ) ;
151157
152158 #[ cfg( target_arch = "wasm32" ) ]
153159 self . ensure_worker ( ctx) ;
154160
155161 // Run GPU pipeline
156162 if let Some ( img) = & self . preview_image {
157163 // show image
158- let img = image:: imageops:: resize (
159- img,
160- self . size . 0 ,
161- self . size . 1 ,
162- image:: imageops:: FilterType :: Nearest ,
163- ) ;
164+ let img = if img. width ( ) != self . size . 0 || img. height ( ) != self . size . 1 {
165+ & image:: imageops:: resize (
166+ img,
167+ self . size . 0 ,
168+ self . size . 1 ,
169+ image:: imageops:: FilterType :: Nearest ,
170+ )
171+ } else {
172+ img
173+ } ;
164174 let rgba: image:: ImageBuffer < image:: Rgba < u8 > , Vec < u8 > > = img. convert ( ) ;
165175 let rgba = rgba. into_raw ( ) ;
166176 rs. queue . write_texture (
@@ -368,7 +378,6 @@ impl App for ObamifyApp {
368378 }
369379 } )
370380 . show_ui ( ui, |ui| {
371- ui. set_max_height ( 300.0 ) ;
372381 let mut to_remove: Option < usize > = None ;
373382 let mut close_menu = false ;
374383
@@ -683,13 +692,19 @@ impl App for ObamifyApp {
683692 . add ( egui:: Button :: new ( egui:: RichText :: new ( "start!" ) . strong ( ) ) )
684693 . clicked ( )
685694 {
686- if let Some ( ( img, settings, _) ) =
695+ if let Some ( ( img, mut settings, _) ) =
687696 self . gui . configuring_generation . take ( )
688697 {
689698 self . gui . show_progress_modal ( settings. id ) ;
690699 //self.gui.currently_processing = Some(path.clone());
691700 //self.change_sim(device, path.clone(), false);
692701
702+ // adjust for consistency across resolutions
703+ settings. proximity_importance =
704+ ( settings. proximity_importance as f32
705+ / ( settings. sidelen as f32 / 128.0 ) )
706+ as i64 ;
707+
693708 self . gui
694709 . process_cancelled
695710 . store ( false , std:: sync:: atomic:: Ordering :: Relaxed ) ;
@@ -701,6 +716,12 @@ impl App for ObamifyApp {
701716 source_img : img. into_raw ( ) ,
702717 } ;
703718
719+ self . resize_textures (
720+ device,
721+ ( settings. sidelen , settings. sidelen ) ,
722+ false ,
723+ ) ;
724+
704725 #[ cfg( target_arch = "wasm32" ) ]
705726 {
706727 self . start_job ( unprocessed, settings) ;
@@ -755,6 +776,11 @@ impl App for ObamifyApp {
755776 match msg {
756777 ProgressMsg :: Done ( new_preset) => {
757778 self . preview_image = None ;
779+ self . resize_textures (
780+ device,
781+ ( DEFAULT_RESOLUTION , DEFAULT_RESOLUTION ) ,
782+ false ,
783+ ) ;
758784 //self.gui.presets = get_presets();
759785 self . gui . presets . push ( new_preset. clone ( ) ) ;
760786 self . change_sim ( device, new_preset, self . gui . presets . len ( ) - 1 ) ;
@@ -782,6 +808,11 @@ impl App for ObamifyApp {
782808 }
783809 ProgressMsg :: Cancelled => {
784810 self . preview_image = None ;
811+ self . resize_textures (
812+ device,
813+ ( DEFAULT_RESOLUTION , DEFAULT_RESOLUTION ) ,
814+ false ,
815+ ) ;
785816 self . gui . hide_progress_modal ( ) ;
786817 ui. close ( ) ;
787818 }
@@ -809,6 +840,11 @@ impl App for ObamifyApp {
809840 }
810841 self . worker = None ;
811842 self . preview_image = None ;
843+ self . resize_textures (
844+ device,
845+ ( DEFAULT_RESOLUTION , DEFAULT_RESOLUTION ) ,
846+ false ,
847+ ) ;
812848 self . gui . hide_progress_modal ( ) ;
813849 ui. close ( ) ;
814850 }
0 commit comments