@@ -63,6 +63,7 @@ int main(int argc, char *argv[])
63
63
SDL_Event event ;
64
64
const char * tonemap = NULL ;
65
65
const char * saveFile = NULL ;
66
+ int attempted = 0 ;
66
67
int result = 0 ;
67
68
68
69
(void )argc ;
@@ -137,6 +138,7 @@ int main(int argc, char *argv[])
137
138
}
138
139
139
140
/* Open the image file */
141
+ ++ attempted ;
140
142
if (tonemap ) {
141
143
SDL_Surface * surface , * temp ;
142
144
@@ -255,63 +257,64 @@ int main(int argc, char *argv[])
255
257
texture = NULL ;
256
258
}
257
259
258
- /* Show the window if needed */
259
- SDL_SetWindowTitle (window , "showimage" );
260
- w = 640.0f ;
261
- h = 480.0f ;
262
- SDL_SetWindowSize (window , (int )w , (int )h );
263
- SDL_ShowWindow (window );
264
-
265
- done = quit ;
266
- while ( !done ) {
267
- while ( SDL_PollEvent (& event ) ) {
268
- switch (event .type ) {
269
- case SDL_EVENT_DROP_FILE :
270
- {
271
- const char * file = event .drop .data ;
272
-
273
- SDL_DestroyTexture (texture );
274
-
275
- SDL_Log ("Loading %s\n" , file );
276
- texture = IMG_LoadTexture (renderer , file );
277
- if (!texture ) {
278
- SDL_Log ("Couldn't load %s: %s\n" , file , SDL_GetError ());
260
+ if (attempted == 0 && !quit ) {
261
+ /* Show the window if needed */
262
+ SDL_SetWindowTitle (window , "showimage" );
263
+ w = 640.0f ;
264
+ h = 480.0f ;
265
+ SDL_SetWindowSize (window , (int )w , (int )h );
266
+ SDL_ShowWindow (window );
267
+
268
+ while ( !done ) {
269
+ while ( SDL_PollEvent (& event ) ) {
270
+ switch (event .type ) {
271
+ case SDL_EVENT_DROP_FILE :
272
+ {
273
+ const char * file = event .drop .data ;
274
+
275
+ SDL_DestroyTexture (texture );
276
+
277
+ SDL_Log ("Loading %s\n" , file );
278
+ texture = IMG_LoadTexture (renderer , file );
279
+ if (!texture ) {
280
+ SDL_Log ("Couldn't load %s: %s\n" , file , SDL_GetError ());
281
+ break ;
282
+ }
283
+ SDL_SetWindowTitle (window , file );
284
+ SDL_GetTextureSize (texture , & w , & h );
285
+ SDL_SetWindowSize (window , (int )w , (int )h );
286
+ }
287
+ break ;
288
+ case SDL_EVENT_KEY_UP :
289
+ switch (event .key .key ) {
290
+ case SDLK_ESCAPE :
291
+ case SDLK_Q :
292
+ done = 1 ;
279
293
break ;
280
294
}
281
- SDL_SetWindowTitle (window , file );
282
- SDL_GetTextureSize (texture , & w , & h );
283
- SDL_SetWindowSize (window , (int )w , (int )h );
284
- }
285
- break ;
286
- case SDL_EVENT_KEY_UP :
287
- switch (event .key .key ) {
288
- case SDLK_ESCAPE :
289
- case SDLK_Q :
295
+ break ;
296
+ case SDL_EVENT_MOUSE_BUTTON_DOWN :
297
+ done = 1 ;
298
+ break ;
299
+ case SDL_EVENT_QUIT :
290
300
done = 1 ;
291
301
break ;
292
- }
293
- break ;
294
- case SDL_EVENT_MOUSE_BUTTON_DOWN :
295
- done = 1 ;
296
- break ;
297
- case SDL_EVENT_QUIT :
298
- done = 1 ;
299
- break ;
300
- default :
301
- break ;
302
+ default :
303
+ break ;
304
+ }
302
305
}
303
- }
304
306
305
- /* Draw a background pattern in case the image has transparency */
306
- draw_background (renderer , (int )w , (int )h );
307
+ /* Draw a background pattern in case the image has transparency */
308
+ draw_background (renderer , (int )w , (int )h );
307
309
308
- /* Display the image */
309
- SDL_RenderTexture (renderer , texture , NULL , NULL );
310
- SDL_RenderPresent (renderer );
310
+ /* Display the image */
311
+ SDL_RenderTexture (renderer , texture , NULL , NULL );
312
+ SDL_RenderPresent (renderer );
311
313
312
- SDL_Delay (100 );
314
+ SDL_Delay (100 );
315
+ }
316
+ SDL_DestroyTexture (texture );
313
317
}
314
- SDL_DestroyTexture (texture );
315
318
316
319
/* We're done! */
317
320
done :
0 commit comments