Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Layout engine

Layout engine

Overview
A layout engine, or rendering engine, is software that takes marked up
Markup language
A markup language is a system for annotating a text in a way which is syntactically distinguishable from that text. Examples include revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts, typesetting instructions such those found in troff and LaTeX, and...

 content (such as HTML
HTML
HTML, which stands for Hyper Text Markup Language, is the predominant markup language for web pages. It provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists etc as well as for links, quotes, and other items. It allows images...

, XML
XML
XML is a set of rules for encoding documents electronically. It is defined in the produced by the W3C and several other related specifications; all are fee-free open standards....

, image
Digital image
A digital image is a representation of a two-dimensional image using ones and zeros . Depending on whether or not the image resolution is fixed, it may be of vector or raster type...

 files, etc.) and formatting information (such as CSS
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...

, XSL
Extensible Stylesheet Language
In computing, the term Extensible Stylesheet Language is used to refer to a family oflanguages used for transforming and rendering XML documents....

, etc.) and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor
Computer display
A monitor or display is a piece of electrical equipment which displays images generated by devices such as computers, without producing a permanent record. The monitor comprises the display device, circuitry, and an enclosure...

 or a printer
Computer printer
In computing, a printer is a peripheral which produces a hard copy of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most newer printers, a USB...

. A layout engine is typically used for web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

s, e-mail client
E-mail client
An email client, email reader, or more formally mail user agent , is a computer program used to manage email .Specifically, the term email client may refer to any agent acting as a client toward an email server, regardless of it being a mail user agent, a relaying server, or a human typing on a...

s, or other applications that require the displaying (and editing) of web contents.

The term "layout engine" only reached popular usage when these became easily separable from the browser.
Discussion
Ask a question about 'Layout engine'
Start a new discussion about 'Layout engine'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
A layout engine, or rendering engine, is software that takes marked up
Markup language
A markup language is a system for annotating a text in a way which is syntactically distinguishable from that text. Examples include revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts, typesetting instructions such those found in troff and LaTeX, and...

 content (such as HTML
HTML
HTML, which stands for Hyper Text Markup Language, is the predominant markup language for web pages. It provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists etc as well as for links, quotes, and other items. It allows images...

, XML
XML
XML is a set of rules for encoding documents electronically. It is defined in the produced by the W3C and several other related specifications; all are fee-free open standards....

, image
Digital image
A digital image is a representation of a two-dimensional image using ones and zeros . Depending on whether or not the image resolution is fixed, it may be of vector or raster type...

 files, etc.) and formatting information (such as CSS
Cascading Style Sheets
Cascading Style Sheets is a style sheet language used to describe the presentation semantics of a document written in a markup language...

, XSL
Extensible Stylesheet Language
In computing, the term Extensible Stylesheet Language is used to refer to a family oflanguages used for transforming and rendering XML documents....

, etc.) and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor
Computer display
A monitor or display is a piece of electrical equipment which displays images generated by devices such as computers, without producing a permanent record. The monitor comprises the display device, circuitry, and an enclosure...

 or a printer
Computer printer
In computing, a printer is a peripheral which produces a hard copy of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most newer printers, a USB...

. A layout engine is typically used for web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

s, e-mail client
E-mail client
An email client, email reader, or more formally mail user agent , is a computer program used to manage email .Specifically, the term email client may refer to any agent acting as a client toward an email server, regardless of it being a mail user agent, a relaying server, or a human typing on a...

s, or other applications that require the displaying (and editing) of web contents.

The term "layout engine" only reached popular usage when these became easily separable from the browser. For example, Gecko
Gecko (layout engine)
Gecko is a layout engine currently developed by Mozilla Corporation, known as the layout engine of the Firefox web browser, Mozilla Application Suite, Nvu, Mozilla Thunderbird and many more...

, the Mozilla
Mozilla
Mozilla is a term used in a number of ways in relation to the now-defunct Netscape Communications Corporation and its related application software, including the Mozilla.org group and its successor the Mozilla Foundation....

 project's open-source layout engine, is used by a variety of products derived from the Mozilla code base, including the Firefox
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. Firefox has 23.75% of the recorded usage share of web browsers , making it the second most popular browser in terms of current use worldwide after Microsoft's...

 web browser, the Thunderbird
Mozilla Thunderbird
Mozilla Thunderbird is a free, open source, cross-platform e-mail and news client developed by the Mozilla Foundation. The project strategy is modeled after Mozilla Firefox, a project aimed at creating a web browser...

 E-mail client, and Seamonkey
Mozilla SeaMonkey
Mozilla SeaMonkey may refer to:* the Mozilla Application Suite, an Internet suite from The Mozilla Foundation codenamed "Seamonkey" and often referred to simply as "Mozilla"...

 application suite. Trident
Trident (layout engine)
Trident is the name of the layout engine for the Microsoft Windows version of Internet Explorer. It was first introduced with the release of Internet Explorer version 4.0 in October 1997; it has been steadily upgraded and remains in use today...

, the layout engine from Internet Explorer
Internet Explorer
Windows Internet Explorer , is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems starting in 1995...

, is used by many applications on the Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

 platform to render HTML, as in Outlook Express
Outlook Express
Outlook Express was an e-mail/news client that was included with Internet Explorer versions 4.0 through 6.0. As such, it was also bundled with several versions of Microsoft Windows, from Windows 98 to Windows XP, and was available for Windows 95 and Mac OS 9. In Windows Vista, Outlook Express is...

, some versions of Microsoft Outlook
Microsoft Outlook
Microsoft Office Outlook or Outlook is a personal information manager from Microsoft. The 2007 version is available both as a separate application as well as a part of the Microsoft Office suite....

, and the mini-browsers in Winamp
Winamp
Winamp is a proprietary media player written by Nullsoft, now a subsidiary of AOL. It is skinnable, multi-format freeware/shareware.Winamp was first released by Justin Frankel in 1997. Current Winamp development is credited to Ben Allison and Maksim Tyrtyshny...

 and RealPlayer
RealPlayer
RealPlayer is a closed source cross-platform media player by RealNetworks that plays a number of multimedia formats including MP3, MPEG-4, QuickTime, Windows Media, and multiple versions of proprietary RealAudio and RealVideo formats....

.

Similarly, Opera Software's proprietary Presto
Presto (layout engine)
Presto is a layout engine for the Opera web browser developed by Opera Software. After several public betas and technical previews, it was released on January 28, 2003 in Opera 7.0 for Windows; it is the browser's current layout engine. Presto is dynamic: the page or parts of it can be re-rendered...

 engine is licensed to a number of other software vendors, as well as being used in Opera's own Opera
Opera (web browser)
Opera is a web browser and internet suite developed by the Opera Software company. The browser handles common Internet-related tasks such as displaying websites, sending and receiving e-mail messages, managing contacts, IRC online chatting, downloading files via BitTorrent, and reading web feeds...

 web browser, and KDE's open-source KHTML
KHTML
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. A forked version of KHTML called WebKit is used by several web browsers, among them Safari and Google Chrome...

 engine is used both in KDE's own Konqueror
Konqueror
Konqueror is a web browser, file manager, etc. that provides file-viewer functionality to a wide variety of things: local files, files on a remote ftp server, files in a disk image, etc. It is designed as a core part of the K Desktop Environment. It is developed by volunteers and can run on most...

 web browser as well as being used, in an adapted form, as the basis for WebKit
WebKit
WebKit is a layout engine designed to allow web browsers to render web pages. The WebKit engine provides a set of classes to display web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of...

, the rendering engine in Apple's Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. First released as a public beta on 7 January 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Apple has also made Safari the native browser for the iPhone OS...

 and Google's Chrome
Google Chrome
Google Chrome is a web browser released by Google which uses the WebKit layout engine and application framework. It was first released as a beta version for Microsoft Windows on September 2 2008, and the public stable release was on December 11 2008. The name is derived from the graphical user...

 web browsers.

The term rendering engine can also refer to text rendering engines like Pango
Pango
Pango is a free and open source computing library for shaping internationalized texts in high quality. Different font backends can be used, allowing cross-platform support.- Utilization :...

, International Components for Unicode
International Components for Unicode
International Components for Unicode is an open source project of mature C/C++ and Java libraries for Unicode support, software internationalization and software globalization. ICU is widely portable to many operating systems and environments. It gives applications the same results on all...

 (ICU) or Uniscribe
Uniscribe
Uniscribe is the Microsoft Windows set of services for rendering Unicode-encoded text, especially complex text layout. They are implemented in the DLL USP10.DLL. USP10.dll became available to the public with Windows 2000 and Internet Explorer 5.0...

 which make multilingual texts present in proper shape, taking into account bidirectional text, combinations of "basic characters" with accents, and other intricacies of multilingual text.

See also

  • Comparison of layout engines
    Comparison of layout engines
    The following tables compare general and technical information for a number of layout engines. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up-to-date...

  • List of layout engines
  • Layout manager
    Layout manager
    Layout managers are software components used in widget toolkits which have the ability to lay out widgets by their relative positions without using distance units. It is often more natural to define component layouts in this manner than to define their position in pixels or common distance units,...

  • Game engine
    Game engine
    A game engine is a software system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and desktop operating systems such as Microsoft Windows, Linux, and Mac OS X...

  • Rendering (computer graphics)
    Rendering (computer graphics)
    Rendering is the process of generating an image from a model, by means of computer programs. The model is a description of three-dimensional objects in a strictly defined language or data structure. It would contain geometry, viewpoint, texture, lighting, and shading information. The image is a...

  • Rasterisation
    Rasterisation
    Rasterization or Rasterisation is the task of taking an image described in a vector graphics format and converting it into a raster image for output on a video display or printer, or for storage in a bitmap file format....

  • Raster image processor
    Raster image processor
    A raster image processor is a component used in a printing system which produces a raster image also known as a bitmap. The bitmap is then sent to a printing device for output. The input may be a page description in a high-level page description language such as PostScript, Portable Document...

  • Page description language
    Page description language
    A page description language is a language that describes the appearance of a printed page in a higher level than an actual output bitmap. An overlapping term is printer control language, but it should not be confused as referring solely to Hewlett-Packard's PCL...