From 9badad414d2265f01b26108dbfd966c9d384d70b Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Sun, 23 Jan 2000 22:20:24 +0000 Subject: [PATCH] (w32_defined_color): Apply gamma correction before trying to map to the palette. (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame to w32_clear_rect. --- src/ChangeLog | 23 +++++++++++++++++++++++ src/w32fns.c | 16 +++++++++------- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 17cc9052c33..6f52fa04804 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,26 @@ +2000-01-23 Jason Rumney + + * w32fns.c (w32_defined_color): Apply gamma correction before + trying to map to the palette. + (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame + to w32_clear_rect. + + * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc + here. Callers changed to always pass real device context. + (w32_draw_bitmap): Likewise. + (w32_get_glyph_overhangs): Likewise. + (w32_draw_box_rect): Make use of s->hdc rather than getting a new + one. + (w32_set_vertical_scroll_bar): Pass correct HWND parameters to + pfnSetScrollInfo and SetScrollRange. + (x_get_char_face_and_encoding): Don't turn iso8859-1 characters + back into MULE characters after decoding them. + (x_get_glyph_face_and_encoding): Likewise. + (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when + GetCharABCWidthsW fails, since this is defined on Windows 9x. + (x_produce_glyphs): Calculate per char metrics for a character + that we know exists in default font when font_not_found_p is true. + 2000-01-22 Jason Rumney * makefile.nt (intervals.obj, composite.obj): New modules. diff --git a/src/w32fns.c b/src/w32fns.c index 5b6c9d3d3b1..21d80af0572 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -1781,6 +1781,12 @@ w32_defined_color (f, color, color_def, alloc) if (!NILP (tem)) { + /* Apply gamma correction. */ + w32_color_ref = XUINT (tem); + gamma_correct (f, &w32_color_ref); + XSETINT (tem, w32_color_ref); + + /* Map this color to the palette if it is enabled. */ if (!NILP (Vw32_enable_palette)) { struct w32_palette_entry * entry = @@ -1816,12 +1822,6 @@ w32_defined_color (f, color, color_def, alloc) or not the display device has a palette. */ w32_color_ref = XUINT (tem) | 0x2000000; - /* NTEMACS_TODO: Palette mapping should come after gamma - correction. */ - /* Apply gamma correction. */ - if (f) - gamma_correct (f, &w32_color_ref); - color_def->pixel = w32_color_ref; color_def->red = GetRValue (w32_color_ref); color_def->green = GetGValue (w32_color_ref); @@ -3881,8 +3881,10 @@ w32_wnd_proc (hwnd, msg, wParam, lParam) f = x_window_to_frame (dpyinfo, hwnd); if (f) { + HDC hdc = get_frame_dc (f); GetUpdateRect (hwnd, &wmsg.rect, FALSE); - w32_clear_rect (f, NULL, &wmsg.rect); + w32_clear_rect (f, hdc, &wmsg.rect); + release_frame_dc (f, hdc); #if defined (W32_DEBUG_DISPLAY) DebPrint (("WM_ERASEBKGND: erasing %d,%d-%d,%d\n", -- 2.39.5