1. 17 Jun, 2019 2 commits
  2. 16 Jun, 2019 3 commits
    • Alan Third's avatar
      Revert "Simplify image transforms" · beb572a7
      Alan Third authored
      This reverts commit cf3081d2.
      
      ; Pushed in error.
      beb572a7
    • Alan Third's avatar
      Simplify image transforms · cf3081d2
      Alan Third authored
      * src/image.c: (image_set_rotation, image_set_size,
      image_set_transform): Combine into image_set_transform.
      (image_set_crop): Remove function.
      (lookup_image): Remove calls to removed functions and remove
      transform_matrix.
      * test/manual/image-transforms-tests.el (test-cropping): Remove
      function.
      (test-transforms): Remove reference to test-cropping.
      cf3081d2
    • Alan Third's avatar
      Document image transforms · 11b0e334
      Alan Third authored
      * doc/lispref/display.texi (Image Descriptors): Document :crop and
      update :rotation.
      * src/image.c: Describe the image transform matrix layout.
      * test/manual/image-transforms-tests.el: New file.
      11b0e334
  3. 08 Jun, 2019 1 commit
    • YAMAMOTO Mitsuharu's avatar
      Implement native image rotation and cropping on cairo · 88c49ac3
      YAMAMOTO Mitsuharu authored
      * src/dispextern.h (struct image) [USE_CAIRO]:
      * src/image.c (free_image, image_clear_image_1)
      (image_set_crop, image_set_size, image_set_rotation)
      (image_create_x_image_and_pixmap) [USE_CAIRO]: #ifdef out HAVE_XRENDER part.
      
      * src/image.c (cr_create_surface_from_pix_containers) [USE_CAIRO]: Rename
      from cr_create_surface_from_pix_containers.  Change arguments to pair of
      Emacs_Pix_Container:s.  Move block_input and unblock_input to caller.
      (cr_put_image_to_cr_data) [USE_CAIRO]: New function.
      (prepare_image_for_display) [USE_CAIRO]: Use it.
      (image_set_transform) [USE_CAIRO]: Create dummy solid color pattern equipped
      with transformation matrix and set it to img->cr_data.
      
      * src/xterm.c (fringe_bmp) [USE_CAIRO]: Change type to cairo_pattern_t **.
      (x_cr_define_fringe_bitmap, x_cr_destroy_fringe_bitmap) [USE_CAIRO]: Create
      or destroy cairo pattern.
      (x_cr_draw_image) [USE_CAIRO]: Remove arguments image_width and image_height.
      Change type of image to cairo pattern.  All callers changed.
      
      * src/gtkutil.c (xg_get_image_for_pixmap) [USE_CAIRO]: Get cairo surface
      from img->cr_data, which is of cairo pattern now.
      88c49ac3
  4. 07 Jun, 2019 2 commits
    • YAMAMOTO Mitsuharu's avatar
      Fix image_set_crop yet again · 3a1f92d0
      YAMAMOTO Mitsuharu authored
      * src/image.c (image_set_crop) [HAVE_NATIVE_TRANSFORMS]: Don't call
      compute_image_size, as it is already called from image_set_size.
      (image_set_size, image_set_crop) [HAVE_NATIVE_TRANSFORMS]: Use harmless
      matrix transformation code also for USE_CAIRO and HAVE_NTGUI cases,
      though image_set_transform is not yet implemented on them.
      3a1f92d0
    • Paul Eggert's avatar
      Fix recently-introduced image_set_crop typo · cfb592fd
      Paul Eggert authored
      * src/image.c (image_set_crop) [!HAVE_NATIVE_TRANSFORMS]:
      Don’t call compute_image_size, as it does not exist and its
      result is not needed.
      cfb592fd
  5. 06 Jun, 2019 2 commits
    • Paul Eggert's avatar
      Fix overflow issues in image rotation · 7c26e0b1
      Paul Eggert authored
      Also, do some refactoring to simplify code.
      * src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): Remove.
      * src/image.c (matrix3x3): New type, replacing all uses of 3x3 double.
      (matrix3x3_copy, matrix3x3_mult): New functions, replacing
      COPY_MATRIX, MULT_MATRICES.  Replace INIT_MATRIX by C initializers.
      (image_set_rotation): Use Fmod to avoid undefined behavior on
      double-to-int conversion and to reduce bignum rotations correctly.
      (image_set_crop): Finish up previous correction, by not re-setting
      width and height if compute_image_size has set them.
      Prefer shifting right by 1 to dividing by 2 if either will do.
      7c26e0b1
    • Mark A. Hershberger's avatar
      Restore height and with from that were accidentally removed · c8123b45
      Mark A. Hershberger authored
      See 610fb73a
      USE_CARIO needs these.
      c8123b45
  6. 05 Jun, 2019 1 commit
    • Alan Third's avatar
      Add native image rotation and cropping · 610fb73a
      Alan Third authored
      * lisp/image.el (image--get-imagemagick-and-warn): Only fallback to
      ImageMagick if native transforms aren't available.
      * src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): New
      macros for matrix manipulation.
      (HAVE_NATIVE_SCALING, HAVE_NATIVE_TRANSFORMS): Rename and change all
      relevant locations.
      * src/image.c (x_set_image_rotation):
      (x_set_transform): New functions.
      (x_set_image_size): Use transform matrix for resizing under X and NS.
      (x_set_image_crop): New function.
      (lookup_image): Use the new transform functions.
      (Fimage_scaling_p, Fimage_transforms_p): Rename and update all
      callers.
      * src/nsimage.m (ns_load_image): Remove rotation code.
      (ns_image_set_transform): New function.
      ([EmacsImage dealloc]): Release the saved transform.
      ([EmacsImage rotate:]): Remove unneeded method.
      ([EmacsImage setTransform:]): New method.
      * src/nsterm.h (EmacsImage): Add transform property and update method
      definitions.
      * src/nsterm.m (ns_dumpglyphs_image): Use the transform to draw the
      image correctly.
      * src/xterm.c (x_composite_image): Use PictOpSrc as we don't care
      about alpha values here.
      * doc/lispref/display.texi (Image Descriptors): Add :rotation.
      (ImageMagick Images): Remove :rotation.
      610fb73a
  7. 04 Jun, 2019 1 commit
  8. 30 May, 2019 3 commits
    • Paul Eggert's avatar
      Pacify librsvg 2.45.1 and later · 7871c3dc
      Paul Eggert authored
      * src/image.c (svg_load_image): Pacify librsvg 2.45.1 and later,
      and add a FIXME comment about the deprecated librsvg functions.
      Backport from master.
      7871c3dc
    • YAMAMOTO Mitsuharu's avatar
      Add stipple support on cairo · cc71a82f
      YAMAMOTO Mitsuharu authored
      * src/xterm.h (struct x_bitmap_record) [USE_CAIRO]: Remove unused member img.
      Add member stipple.
      (x_bitmap_stipple) [USE_CAIRO]: Add extern.
      
      * src/image.c (x_bitmap_stipple) [HAVE_X_WINDOWS && USE_CAIRO]: New function.
      (image_create_bitmap_from_data, image_create_bitmap_from_file)
      (x_create_bitmap_from_xpm_data) [HAVE_X_WINDOWS && USE_CAIRO]: Initialize
      stipple member of struct x_bitmap_record.
      (free_bitmap_record) [HAVE_X_WINDOWS && USE_CAIRO]: Destroy stipple member.
      
      * src/xterm.c (x_fill_rectangle) [USE_CAIRO]: Inspect gc and draw stipple if
      necessary.  Use x_bitmap_stipple.
      cc71a82f
    • YAMAMOTO Mitsuharu's avatar
      Fix breakage of native image scaling on XRENDER by previous change · 46a17616
      YAMAMOTO Mitsuharu authored
      * src/image.c (image_create_x_image_and_pixmap_1) [HAVE_XRENDER]: Get depth if
      it is unspecified.
      46a17616
  9. 29 May, 2019 1 commit
    • YAMAMOTO Mitsuharu's avatar
      Rework cairo image support to improve consistency (Bug#35871) · c89900eb
      YAMAMOTO Mitsuharu authored
      * src/dispextern.h (Emacs_Pix_Container) [USE_CAIRO]: New struct.  Also used
      as aliases of Emacs_Pixmap and Emacs_Pix_Context.
      (x_kill_gs_process) [USE_CAIRO]: #ifdef out extern.
      (RGB_PIXEL_COLOR) [USE_CAIRO]: Define as unsigned long.
      
      * src/image.c: Include stdint.h.  On cairo, remove existing image support
      code, use non-X11-specific code for XBM/XPM, and remove POSTSCRIPT support.
      (PUT_PIXEL): New macro.  Use it instead of XPutPixel when not specific to X11.
      (GET_PIXEL, NO_PIXMAP, PIX_MASK_RETAIN, PIX_MASK_DRAW)
      (RGB_TO_ULONG, ARGB_TO_ULONG, RED_FROM_ULONG)
      (GREEN_FROM_ULONG, BLUE_FROM_ULONG, RED16_FROM_ULONG)
      (GREEN16_FROM_ULONG, BLUE16_FROM_ULONG)	[USE_CAIRO]: New macros.
      (image_create_pix_container, image_pix_container_put_pixel)
      (image_pix_context_get_pixel, image_pix_container_create_from_bitmap_data)
      (cr_create_cr_surface_from_image) [USE_CAIRO]: New functions.
      (image_create_x_image_and_pixmap_1, image_destroy_x_image)
      (image_check_image_size): Extract X11-specific code from here ...
      (x_create_x_image_and_pixmap, x_destroy_x_image)
      (x_check_image_size) [HAVE_X_WINDOWS]: ... to here.
      (x_create_bitmap_mask) [HAVE_X_WINDOWS]: Use them.  Inline specialized version
      of four_corners_best.
      (prepare_image_for_display, image_clear_image_1, image_destroy_x_image)
      (gui_put_x_image, image_put_x_image, image_get_x_image, image_unget_x_image)
      (Create_Pixmap_From_Bitmap_Data, lookup_rgb_color)
      (image_to_emacs_colors) [USE_CAIRO]: Add cairo support.
      (image_background, png_load_body) [USE_CAIRO]: Use image_alloc_image_color for
      img->background.
      (image_sync_to_pixmaps) [USE_CAIRO]: #ifdef out function.
      (Create_Pixmap_From_Bitmap_Data) [HAVE_X_WINDOWS]: Move image_check_image_size
      call from here ...
      (xbm_load_image): ... to here.
      (xpm_load_image):
      (image_build_heuristic_mask, pbm_load, gif_load) [USE_CAIRO]: Use
      lookup_rgb_color for argument of PUT_PIXEL.
      (image_pixmap_draw_cross) [HAVE_X_WINDOWS || USE_CAIRO]: New function.
      (image_disable_image) [HAVE_X_WINDOWS || USE_CAIRO]: Use it.
      (CrossForeground) [!HAVE_NTGUI && !HAVE_NS]: New macro.
      (image_disable_image) [!HAVE_NTGUI && !HAVE_NS]: Use it.
      
      * src/xterm.c (handle_one_xevent) <ClientMessage> [USE_CAIRO]: #ifdef out
      x_kill_gs_process call.
      (x_free_pixmap) [USE_CAIRO]: Free Emacs_Pix_Container and data it contains.
      c89900eb
  10. 24 May, 2019 1 commit
  11. 21 May, 2019 1 commit
  12. 20 May, 2019 3 commits
    • Alexander Gramiak's avatar
      Introduce Emacs_Pix_Container and Emacs_Pix_Context typedefs · b2b1ccb8
      Alexander Gramiak authored
      Emacs_Pix_Container is a pointer to a struct representing pixmap data
      on the backend.  Emacs_Pix_Context is the context for the
      bitmap/pixmap on the backend.  Only w32 currently makes this
      distinction; they are otherwise the same type.
      
      * src/dispextern.h: Remove XImagePtr in favor of
      using XImage* directly. Rename XImagePtr_or_DC to Emacs_Pix_Context.
      [HAVE_X_WINDOWS] Alias Emacs_Pix_Container and
      Emacs_Pix_Context to XImage*.
      [HAVE_NS] Alias Emacs_Pix_Container and Emacs_Pix_Context to trivial
      Emacs_Pixmap definition.
      [HAVE_NTGUI]: Alias Emacs_Pix_Container to XImage* and
      Emacs_Pix_Context to HDC.
      
      * src/dispextern.h:
      * src/image.c: Use Emacs_Pix_Container over XImagePtr and
      Emacs_Pix_Context over XImagePtr_or_DC.
      b2b1ccb8
    • Alexander Gramiak's avatar
      Introduce Emacs_Pixmap typedef · 44d57792
      Alexander Gramiak authored
      * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_Pixmap to Pixmap.
      (image, x_kill_gs_process): Use Emacs_Pixmap over Pixmap.
      
      * src/image.c:
      
      * src/nsgui.h:
      * src/nsterm.m:
      * src/termhooks.h:
      * src/w32gui.h:
      * src/w32term.c:
      * src/w32term.h:
      * src/xterm.c (x_free_pixmap): Use Emacs_Pixmap over Pixmap.
      
      * src/w32gui.h: Remove unused typedef Bitmap.
      44d57792
    • Alexander Gramiak's avatar
      Introduce Emacs_Color struct and typedef · c0e146e4
      Alexander Gramiak authored
      This avoids clashing with the XColor struct from X.
      
      * src/dispextern [HAVE_X_WINDOWS]: Define Emacs_Color alias.
      [!HAVE_X_WINDOWS]: Rename XColor compatibility struct to
      Emacs_Color. Remove unused fields.
      
      * src/gtkutil.c:
      * src/gtkutil.h:
      * src/image.c:
      * src/nsterm.h:
      * src/nsterm.m:
      * src/termhooks.h:
      * src/w32fns.c:
      * src/w32term.c:
      * src/w32term.h:
      * src/xfaces.c:
      * src/xfns.c:
      * src/xterm.h: Use Emacs_Color over XColor outside of X-specific
      sections.
      c0e146e4
  13. 18 May, 2019 2 commits
    • Eli Zaretskii's avatar
      Fix display of images on MS-Windows broken by a recent commit · 721c520f
      Eli Zaretskii authored
      * src/image.c (initialize_image_type): Test if the type is in
      Vlibrary_cache up front, and return true without calling the
      'init' method if the type was already initialized.
      721c520f
    • Paul Eggert's avatar
      Clean up and simplify image-type setup · 41bf8653
      Paul Eggert authored
      This also fixes an unlikely hang involving a circular image
      description.
      * src/dispextern.h (struct image.type): Now pointer-to-const.
      * src/image.c (struct image_type.init) [!WINDOWSNT]: Omit.
      (IMAGE_TYPE_INIT): New macro.
      (image_types): Now a small array-of-const, not a pointer.
      (CACHE_IMAGE_TYPE): Remove; the code’s simpler without it.
      (ADD_IMAGE_TYPE): Remove this macro, replacing with ...
      (add_image_type): ... this equivalent function.  All uses changed.
      (define_image_type): Remove.  All uses removed.
      (valid_image_p): Use FOR_EACH_TAIL_SAFE to avoid Emacs hanging
      if the user creates a circular description of an image.
      (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
      (gif_type, imagemagick_type, svg_type, gs_type):
      Remove; now done by image_types.
      (init_imagemagick_functions): Remove decl of nonexistent function.
      (gs_clear_image): Remove; all uses replaced by image_clear_image.
      (initialize_image_type): New function, which captures a lot
      of the previously-scattered WINDOWSNT ifdefs.
      (lookup_image_type): Use it.
      (reset_image_types): Remove.  All uses removed.
      (syms_of_image): Don’t worry about ignoring image_types for
      pdumper, since it’s a constant now.
      41bf8653
  14. 10 May, 2019 1 commit
    • Alexander Gramiak's avatar
      Convert Free_Pixmap macro into terminal hook · 616ce44a
      Alexander Gramiak authored
      * src/termhooks.h (terminal) [HAVE_WINDOW_SYSTEM]: New terminal hook
      free_pixmap.
      
      * src/image.c: Replace Free_Pixmap with free_pixmap.
      
      * src/msdos.h (FRAME_X_DISPLAY):
      * src/nsgui.h (Display):
      * src/nsterm.h (FRAME_NS_DISPLAY, FRAME_X_DISPLAY, FRAME_X_SCREEN)
      (FRAME_X_VISUAL):
      * src/w32term.h (FRAME_X_DISPLAY): Remove unused X-compatibility
      macros and typedefs.
      
      * src/nsterm.m:
      * src/w32term.c:
      * src/xterm.c: Implement and set free_pixmap hook.
      616ce44a
  15. 08 May, 2019 2 commits
  16. 03 May, 2019 1 commit
    • Paul Eggert's avatar
      Pacify librsvg 2.45.1 and later · da3897ab
      Paul Eggert authored
      * src/image.c (svg_load_image): Pacify librsvg 2.45.1 and later,
      and add a FIXME comment about the deprecated librsvg functions.
      da3897ab
  17. 26 Apr, 2019 3 commits
    • Alexander Gramiak's avatar
      Add terminal hook query_frame_background_color · 5d8b0fad
      Alexander Gramiak authored
      * src/termhooks.c (query_frame_background_color): New terminal hook.
      
      * src/image.c (image_query_frame_background_color): Remove. Use the
      terminal hook instead.
      
      * src/nsterm.m:
      * src/w32term.c:
      * src/xterm.c: Implement and set the new terminal hook.
      5d8b0fad
    • Alexander Gramiak's avatar
      Add terminal hook defined_color_hook · 41e20ee4
      Alexander Gramiak authored
      * src/termhooks.h (defined_color_hook): New terminal hook.
      
      * src/xterm.c:
      * src/nsterm.m:
      * src/term.c:
      * src/w32term.c: Set defined_color_hook.
      
      * src/xfaces.c: Use defined_color_hook.
      (defined_color): Remove.
      
      * src/image.c: Remove redefinitions of x_defined_color, and use
      defined_color_hook.
      41e20ee4
    • Alexander Gramiak's avatar
      Rename generic x_* identifiers · a411517f
      Alexander Gramiak authored
      * src/image.c: Rename x_* procedures to image_*.
      
      * src/frame.c: Rename x_* procedures to gui_*. Rename
      xrdb_get_resource to gui_display_get_resource. Rename x_get_arg to
      gui_display_get arg.
      
      * src/frame.h: Rename can_x_set_window_size to can_set_window_size.
      
      * src/xfaces.c: Rename realize_x_face to realize_gui_face. Rename
      x_supports_face_attributes_p to gui_supports_face_attributes_p.
      
      * src/keyboard.c:
      * src/lisp.h:
      * src/nsterm.m:
      * src/w32term.c:
      * src/xterm.c: Rename x_get_keysym_name to get_keysym_name.
      
      * src/nsfns.c:
      * src/nsterm.m: Rename x_* procedures to ns_*.
      
      * src/w32fns.c:
      * src/w32term.c: Rename x_* procedures to w32_*.
      
      * src/termhooks.h (query_colors, get_focus_frame, focus_frame_hook)
      (frame_visible_invisible_hook, iconify_frame_hook)
      (set_window_size_hook, set_frame_offset_hook, set_frame_alpha_hook)
      (set_new_font_hook, set_bitmap_icon_hook, implicit_set_name_hook)
      (activate_menubar_hook, change_tool_bar_height_hook)
      (set_scroll_bar_default_width_hook)
      (set_scroll_bar_default_height_hook, get_string_resource_hook): New
      terminal hooks to replace backend-specific x_* procedures.
      
      * src/dispextern.h (clear_under_internal_border): New RIF procedure.
      
      * src/alloc.c:
      * src/frame.c:
      * src/xdisp.c: Use FRAME_OUTPUT_DATA instead of FRAME_X_OUTPUT.
      
      * src/frame.c:
      * src/w32term.c:
      * src/w32fns.c: Use FRAME_NATIVE_WINDOW instead of FRAME_X_WINDOW.
      a411517f
  18. 18 Apr, 2019 1 commit
    • Paul Eggert's avatar
      Mark _Noreturn error functions as cold · 6d6c55db
      Paul Eggert authored
      On my platform this made ‘make compile-always’ 1.3% faster.
      Suggested by Alex Gramiak in:
      https://lists.gnu.org/r/emacs-devel/2019-04/msg00684.html
      * configure.ac (nw): Don’t use -Wsuggest-attribute=cold.
      * lib-src/make-docfile.c (write_globals):
      Mark noreturn functions as cold.
      * src/callproc.c (exec_failed):
      * src/data.c (wrong_length_argument, wrong_type_argument):
      * src/emacs-module.c (module_abort):
      * src/emacs.c (terminate_due_to_signal):
      * src/eval.c (unwind_to_catch):
      * src/image.c (my_png_error, my_error_exit):
      * src/json.c (json_out_of_memory, json_parse_error):
      * src/keyboard.c (quit_throw_to_read_char, user_error):
      * src/lisp.h (die, wrong_type_argument, wrong_choice)
      (args_out_of_range, args_out_of_range_3, circular_list)
      (buffer_overflow, memory_full, buffer_memory_full)
      (string_overflow, xsignal, xsignal0, xsignal1, xsignal2)
      (xsignal3, signal_error, overflow_error, error, verror)
      (nsberror, report_file_errno, report_file_error)
      (report_file_notify_error, terminate_due_to_signal)
      (emacs_abort, fatal):
      * src/lread.c (load_error_old_style_backquotes)
      (end_of_file_error, invalid_syntax):
      * src/pdumper.c (error_unsupported_dump_object):
      * src/puresize.h (pure_write_error):
      * src/search.c (matcher_overflow):
      * src/sound.c (sound_perror, alsa_sound_perror):
      * src/sysdep.c (handle_arith_signal):
      * src/systime.h (time_overflow):
      * src/term.c (maybe_fatal, vfatal):
      * src/textprop.c (text_read_only):
      * src/timefns.c (invalid_time_zone_specification)
      (time_error, invalid_hz):
      * src/xterm.c (x_connection_closed):
      Use AVOID instead of _Noreturn void, so that it’s marked cold.
      * src/conf_post.h (__has_attribute_cold) [!__has_attribute]:
      New macro.
      (ATTRIBUTE_COLD): New macro.
      * src/frame.h (WINDOW_SYSTEM_RETURN): Add ATTRIBUTE_COLD.
      * src/lisp.h (AVOID): New macro.
      * src/xterm.c: Omit unnecessary static decls, so that we needn’t
      worry about which functions should be marked cold.
      (x_io_error_quitter): Mark as cold.
      6d6c55db
  19. 15 Apr, 2019 1 commit
    • YAMAMOTO Mitsuharu's avatar
      Avoid compiler warnings on cairo build · da3e3fc7
      YAMAMOTO Mitsuharu authored
      * src/image.c (jpeg_load_body) [USE_CAIRO]: #ifdef out USE_SAFE_ALLOCA
      and SAFE_FREE.
      * src/xterm.c (x_composite_image) [USE_CAIRO]: #ifdef out unused function.
      (x_draw_image_glyph_string) [USE_CAIRO]: #ifdef out unused variable pixmap.
      da3e3fc7
  20. 27 Mar, 2019 1 commit
    • YAMAMOTO Mitsuharu's avatar
      Support native image resizing on cairo · 2755cf18
      YAMAMOTO Mitsuharu authored
      * src/xterm.c (x_cr_draw_image): Add arguments image_width and
      image_height and support scaling.  All callers changed.
      * src/image.c (Fimage_scaling_p): Return t when USE_CAIRO.
      (x_set_image_size) [USE_CAIRO]: Record the scaled dimensions
      in the image struct.
      * src/dispextern.h (HAVE_NATIVE_SCALING): Define when
      USE_CAIRO as well.
      
      * etc/NEWS: Update the announcement of native image scaling.
      2755cf18
  21. 26 Mar, 2019 1 commit
    • YAMAMOTO Mitsuharu's avatar
      Simplify cairo image surface creation and destruction · 75b7b2cf
      YAMAMOTO Mitsuharu authored
      * src/dispextern.h (struct image) [USE_CAIRO]: Remove member cr_data2.
      * src/image.c (set_cairo_image_surface): New function split from
      original create_cairo_image_surface.  Call cairo_surface_mark_dirty.
      (create_cairo_image_surface): Just create image surface and return it.
      (x_clear_image): Don't free cr_data2.
      (xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load)
      (gif_load, imagemagick_load_image, svg_load_image) [USE_CAIRO]: Use
      new create_cairo_image_surface and cairo_image_surface_get_data
      instead of xmalloc.  Use set_cairo_image_surface instead of old
      create_cairo_image_surface.
      (pbm_load) [USE_CAIRO]: Call cairo_surface_destroy for surface instead
      of xfree for data.
      (gif_load) [USE_CAIRO]: Multiply y-coordinate value by width instead
      of subimg_width.
      75b7b2cf
  22. 23 Feb, 2019 1 commit
  23. 04 Feb, 2019 1 commit
    • Eli Zaretskii's avatar
      Avoid segfaults due to image cache being cleared during redisplay · ef17247f
      Eli Zaretskii authored
      * src/xdisp.c (redisplay_internal): Set the
      inhibit_clear_image_cache flag of a frame while its windows
      are being redisplayed, and reset the flag after the call top
      update_frame returns.
      * src/image.c (clear_image_cache): Do nothing if the frame's
      inhibit_clear_image_cache flag is set.  (Bug#34256)
      * src/frame.h (struct frame): New flag inhibit_clear_image_cache.
      ef17247f
  24. 01 Feb, 2019 1 commit
    • Paul Eggert's avatar
      Rename CANNOT_DUMP to HAVE_UNEXEC · 3b69e02a
      Paul Eggert authored
      * configure.ac (CANNOT_DUMP): Remove.  All uses removed,
      or changed to the negative of with_unexec.
      (HAVE_UNEXEC): New macro.  All uses of CANNOT_DUMP changed
      to the negative of this macro.
      3b69e02a
  25. 20 Jan, 2019 1 commit
    • Eli Zaretskii's avatar
      Support native image resizing on MS-Windows · 67b1053d
      Eli Zaretskii authored
      * src/w32term.c (x_draw_image_foreground): Scale the image if
      the requested dimensions are different from the bitmap
      dimensions.
      * src/image.c (Fimage_scaling_p): Return t when HAVE_NTGUI.
      (x_set_image_size) [HAVE_NTGUI]: Record the scaled dimensions
      in the image struct.
      * src/dispextern.h (HAVE_NATIVE_SCALING): Define when
      HAVE_NTGUI as well.
      
      * etc/NEWS: Update the announcement of native image scaling.
      67b1053d
  26. 18 Jan, 2019 1 commit
    • Paul Eggert's avatar
      Port to platforms where NULL is a pointer · 7818bcdd
      Paul Eggert authored
      * src/image.c (x_create_x_image_and_pixmap):
      The Picture type is an integer, not a pointer.
      Come to think of it, Picture is really XID, and as
      far as I can tell, all-bits-one is the invalid XID,
      not all-bits-zero.  However that is a bigger issue;
      for now, this patch just unbreaks the build.
      7818bcdd
  27. 17 Jan, 2019 1 commit