@@ -242,20 +242,21 @@ drw_setscheme(Drw *drw, Clr *scm)
242
242
}
243
243
244
244
Picture
245
- drw_create_resized_picture (Drw * drw , char * src , unsigned int srcw , unsigned int srch , unsigned int dstw , unsigned int dsth , char * tmp ) {
245
+ drw_picture_create_resized (Drw * drw , char * src , unsigned int srcw , unsigned int srch , unsigned int dstw , unsigned int dsth ) {
246
246
Pixmap pm ;
247
247
Picture pic ;
248
248
GC gc ;
249
249
250
250
if (srcw <= (dstw << 1u ) && srch <= (dsth << 1u )) {
251
- pm = XCreatePixmap (drw -> dpy , drw -> root , srcw , srch , 32 );
252
251
XImage img = {
253
252
srcw , srch , 0 , ZPixmap , src ,
254
253
ImageByteOrder (drw -> dpy ), BitmapUnit (drw -> dpy ), BitmapBitOrder (drw -> dpy ), 32 ,
255
254
32 , 0 , 32 ,
256
255
0 , 0 , 0
257
256
};
258
257
XInitImage (& img );
258
+
259
+ pm = XCreatePixmap (drw -> dpy , drw -> root , srcw , srch , 32 );
259
260
gc = XCreateGC (drw -> dpy , pm , 0 , NULL );
260
261
XPutImage (drw -> dpy , pm , gc , & img , 0 , 0 , 0 , 0 , srcw , srch );
261
262
XFreeGC (drw -> dpy , gc );
@@ -279,19 +280,19 @@ drw_create_resized_picture(Drw *drw, char *src, unsigned int srcw, unsigned int
279
280
if (!scaled ) return None ;
280
281
imlib_context_set_image (scaled );
281
282
imlib_image_set_has_alpha (1 );
282
- memcpy (tmp , imlib_image_get_data_for_reading_only (), (dstw * dsth ) << 2 );
283
- imlib_free_image_and_decache ();
284
283
285
- pm = XCreatePixmap (drw -> dpy , drw -> root , dstw , dsth , 32 );
286
284
XImage img = {
287
- dstw , dsth , 0 , ZPixmap , tmp ,
288
- ImageByteOrder (drw -> dpy ), BitmapUnit (drw -> dpy ), BitmapBitOrder (drw -> dpy ), 32 ,
289
- 32 , 0 , 32 ,
290
- 0 , 0 , 0
285
+ dstw , dsth , 0 , ZPixmap , ( char * ) imlib_image_get_data_for_reading_only () ,
286
+ ImageByteOrder (drw -> dpy ), BitmapUnit (drw -> dpy ), BitmapBitOrder (drw -> dpy ), 32 ,
287
+ 32 , 0 , 32 ,
288
+ 0 , 0 , 0
291
289
};
292
290
XInitImage (& img );
291
+
292
+ pm = XCreatePixmap (drw -> dpy , drw -> root , dstw , dsth , 32 );
293
293
gc = XCreateGC (drw -> dpy , pm , 0 , NULL );
294
294
XPutImage (drw -> dpy , pm , gc , & img , 0 , 0 , 0 , 0 , dstw , dsth );
295
+ imlib_free_image_and_decache ();
295
296
XFreeGC (drw -> dpy , gc );
296
297
297
298
pic = XRenderCreatePicture (drw -> dpy , pm , XRenderFindStandardFormat (drw -> dpy , PictStandardARGB32 ), 0 , NULL );
0 commit comments