Changeset 94876 in webkit


Ignore:
Timestamp:
Sep 9, 2011 3:06:03 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

Add replacement functions for gdk ones.
https://bugs.webkit.org/show_bug.cgi?id=66323

Patch by Rafael Antognolli <antognolli@profusion.mobi> on 2011-09-09
Reviewed by Martin Robinson.

.:

  • Source/cmake/FindPango.cmake:

Source/WebCore:

This will allow the EFL port to don't depend on gdk anymore.

No new functionality so no new tests.

  • CMakeListsEfl.txt:
  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::appendRegionToCairoContext):

  • platform/graphics/cairo/CairoUtilities.h:
  • platform/graphics/pango/FontPango.cpp:

(WebCore::drawGlyphsShadow):
(WebCore::Font::drawComplexText):

  • platform/graphics/pango/PangoUtilities.cpp: Added.

(WebCore::getLineClipRegionFromLayoutIter):
(WebCore::getClipRegionFromPangoLayoutLine):

  • platform/graphics/pango/PangoUtilities.h: Added.
Location:
trunk
Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r94866 r94876  
     12011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
     2
     3        Add replacement functions for gdk ones.
     4        https://bugs.webkit.org/show_bug.cgi?id=66323
     5
     6        Reviewed by Martin Robinson.
     7
     8        * Source/cmake/FindPango.cmake:
     9
    1102011-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
    211
  • trunk/Source/WebCore/CMakeListsEfl.txt

    r91914 r94876  
    129129      platform/graphics/pango/GlyphPageTreeNodePango.cpp
    130130      platform/graphics/pango/SimpleFontDataPango.cpp
     131      platform/graphics/pango/PangoUtilities.cpp
    131132    )
    132133    LIST(APPEND WebCore_LIBRARIES
    133       ${Pango_LIBRARIES}
     134      ${Pango_LIBRARY}
     135      ${Pango_Cairo_LIBRARY}
    134136    )
    135137  ENDIF ()
  • trunk/Source/WebCore/ChangeLog

    r94875 r94876  
     12011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
     2
     3        Add replacement functions for gdk ones.
     4        https://bugs.webkit.org/show_bug.cgi?id=66323
     5
     6        Reviewed by Martin Robinson.
     7
     8        This will allow the EFL port to don't depend on gdk anymore.
     9
     10        No new functionality so no new tests.
     11
     12        * CMakeListsEfl.txt:
     13        * platform/graphics/cairo/CairoUtilities.cpp:
     14        (WebCore::appendRegionToCairoContext):
     15        * platform/graphics/cairo/CairoUtilities.h:
     16        * platform/graphics/pango/FontPango.cpp:
     17        (WebCore::drawGlyphsShadow):
     18        (WebCore::Font::drawComplexText):
     19        * platform/graphics/pango/PangoUtilities.cpp: Added.
     20        (WebCore::getLineClipRegionFromLayoutIter):
     21        (WebCore::getClipRegionFromPangoLayoutLine):
     22        * platform/graphics/pango/PangoUtilities.h: Added.
     23
    1242011-09-09  Mark Hahnenberg  <mhahnenberg@apple.com>
    225
  • trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.cpp

    r89442 r94876  
    11/*
    22 * Copyright (C) 2010 Igalia S.L.
     3 * Copyright (C) 2011 ProFUSION embedded systems
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    7980{
    8081    appendPathToCairoContext(context, path.platformPath()->context());
     82}
     83
     84void appendRegionToCairoContext(cairo_t* to, const cairo_region_t* region)
     85{
     86    if (!region)
     87        return;
     88
     89    const int rectCount = cairo_region_num_rectangles(region);
     90    for (int i = 0; i < rectCount; ++i) {
     91        cairo_rectangle_int_t rect;
     92        cairo_region_get_rectangle(region, i, &rect);
     93        cairo_rectangle(to, rect.x, rect.y, rect.width, rect.height);
     94    }
    8195}
    8296
  • trunk/Source/WebCore/platform/graphics/cairo/CairoUtilities.h

    r89442 r94876  
    11/*
    22 * Copyright (C) 2010 Igalia S.L.
     3 * Copyright (C) 2011 ProFUSION embedded systems
    34 *
    45 * Redistribution and use in source and binary forms, with or without
     
    4445void setPathOnCairoContext(cairo_t* to, cairo_t* from);
    4546void appendWebCorePathToCairoContext(cairo_t* context, const Path& path);
     47void appendRegionToCairoContext(cairo_t*, const cairo_region_t*);
    4648cairo_operator_t toCairoOperator(CompositeOperator op);
    4749void drawPatternToCairoContext(cairo_t* cr, cairo_surface_t* image, const IntSize& imageSize, const FloatRect& tileRect,
  • trunk/Source/WebCore/platform/graphics/pango/FontPango.cpp

    r94874 r94876  
    77 * Copyright (C) 2008 Xan Lopez <xan@gnome.org>
    88 * Copyright (C) 2008 Nuanti Ltd.
     9 * Copyright (C) 2011 ProFUSION embedded systems
    910 * All rights reserved.
    1011 *
     
    4344#include "TextRun.h"
    4445#include <cairo.h>
    45 #include <gdk/gdk.h>
    4646#include <pango/pango.h>
    4747#include <pango/pangocairo.h>
     48
     49#if PLATFORM(GTK)
     50#include <gdk/gdk.h>
     51#else
     52#include "PangoUtilities.h"
     53#endif
    4854
    4955#if USE(FREETYPE)
     
    235241
    236242        setSourceRGBAFromColor(context, graphicsContext->state().shadowColor);
     243#if PLATFORM(GTK)
    237244        gdk_cairo_region(context, renderRegion);
     245#else
     246        appendRegionToCairoContext(context, renderRegion);
     247#endif
    238248        cairo_clip(context);
    239249        pango_cairo_show_layout_line(context, layoutLine);
     
    257267        cairo_save(context);
    258268        cairo_translate(context, totalOffset.x(), totalOffset.y());
     269#if PLATFORM(GTK)
    259270        gdk_cairo_region(context, renderRegion);
     271#else
     272        appendRegionToCairoContext(context, renderRegion);
     273#endif
    260274        cairo_clip(context);
    261275        cairo_translate(context, -totalOffset.x(), -totalOffset.y());
     
    292306    char* end = g_utf8_offset_to_pointer(start, to - from);
    293307    int ranges[] = {start - utf8, end - utf8};
     308#if PLATFORM(GTK)
    294309    partialRegion = gdk_pango_layout_line_get_clip_region(layoutLine, 0, 0, ranges, 1);
     310#else
     311    partialRegion = getClipRegionFromPangoLayoutLine(layoutLine, ranges);
     312#endif
    295313
    296314    drawGlyphsShadow(context, point, layoutLine, partialRegion);
     
    302320    context->fillColor().getRGBA(red, green, blue, alpha);
    303321    cairo_set_source_rgba(cr, red, green, blue, alpha);
    304     gdk_cairo_region(cr, partialRegion);
     322#if PLATFORM(GTK)
     323        gdk_cairo_region(cr, partialRegion);
     324#else
     325        appendRegionToCairoContext(cr, partialRegion);
     326#endif
    305327    cairo_clip(cr);
    306328
  • trunk/Source/cmake/FindPango.cmake

    r59537 r94876  
    1313# Use pkg-config to get hints about paths
    1414libfind_pkg_check_modules(Pango_PKGCONF pango)
     15libfind_pkg_check_modules(Pango_Cairo_PKGCONF pango)
    1516
    1617# Include dir
     
    1819  NAMES pango/pango.h
    1920  PATHS ${Pango_PKGCONF_INCLUDE_DIRS}
     21  PATH_SUFFIXES pango-1.0
     22)
     23
     24find_path(Pango_Cairo_INCLUDE_DIR
     25  NAMES pango/pangocairo.h
     26  PATHS ${Pango_Cairo_PKGCONF_INCLUDE_DIRS}
    2027  PATH_SUFFIXES pango-1.0
    2128)
     
    2734)
    2835
     36find_library(Pango_Cairo_LIBRARY
     37  NAMES pangocairo-1.0
     38  PATHS ${Pango_Cairo_PKGCONF_LIBRARY_DIRS}
     39)
     40
    2941# Set the include dir variables and the libraries and let libfind_process do the rest.
    3042# NOTE: Singular variables for this library, plural for libraries this this lib depends on.
Note: See TracChangeset for help on using the changeset viewer.