From 703427a48612bf98fba599dfcd6e91485efd5b77 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Fri, 9 Jun 2017 17:28:55 +0100 Subject: Update documentation removing junk and moving to markdown for most text files --- Docs/BUILDING-AmigaCross | 83 -- Docs/BUILDING-AmigaOS | 129 -- Docs/BUILDING-BeOS | 146 --- Docs/BUILDING-Framebuffer | 350 ----- Docs/BUILDING-GTK | 239 ---- Docs/BUILDING-Windows | 203 --- Docs/Doxyfile | 2385 ---------------------------------- Docs/JavaScript | 16 - Docs/LIBRARIES | 51 - Docs/Options | 241 ---- Docs/PACKAGING-GTK | 97 -- Docs/QUICK-START | 108 -- Docs/USING-Framebuffer | 207 --- Docs/USING-Monkey | 318 ----- Docs/UnimplementedJavascript.txt | 1798 -------------------------- Docs/core-window-interface | 679 ---------- Docs/env.sh | 320 ----- Docs/gource.sh | 71 -- Docs/ideas/cache.txt | 178 --- Docs/ideas/css-engine.txt | 381 ------ Docs/ideas/render-library.txt | 121 -- Docs/netsurf-fb.1 | 362 ------ Docs/netsurf-gtk.1 | 281 ----- Docs/source-object-backing-store | 204 --- Docs/unit-testing | 166 --- Docs/updating-duktape.md | 29 - Makefile | 2 +- content/urldb.c | 2 +- desktop/browser.c | 2 +- docs/Doxyfile | 2388 +++++++++++++++++++++++++++++++++++ docs/PACKAGING-GTK | 97 ++ docs/UnimplementedJavascript.txt | 1798 ++++++++++++++++++++++++++ docs/building-AmigaCross.md | 83 ++ docs/building-AmigaOS.md | 129 ++ docs/building-Framebuffer.md | 350 +++++ docs/building-GTK.md | 239 ++++ docs/building-Haiku.md | 146 +++ docs/building-Windows.md | 203 +++ docs/core-window-interface.md | 677 ++++++++++ docs/env.sh | 320 +++++ docs/gource.sh | 71 ++ docs/ideas/cache.txt | 178 +++ docs/ideas/css-engine.txt | 381 ++++++ docs/ideas/render-library.txt | 121 ++ docs/mainpage.md | 91 ++ docs/netsurf-fb.1 | 362 ++++++ docs/netsurf-gtk.1 | 281 +++++ docs/netsurf-libraries.md | 51 + docs/netsurf-options.md | 241 ++++ docs/quick-start.md | 111 ++ docs/source-object-backing-store.md | 204 +++ docs/unit-testing | 166 +++ docs/updating-duktape.md | 29 + docs/using-framebuffer.md | 207 +++ docs/using-monkey.md | 318 +++++ frontends/amiga/corewindow.c | 2 +- frontends/amiga/gui.c | 2 +- frontends/gtk/window.c | 2 +- frontends/riscos/window.c | 3 +- 59 files changed, 9249 insertions(+), 9171 deletions(-) delete mode 100644 Docs/BUILDING-AmigaCross delete mode 100644 Docs/BUILDING-AmigaOS delete mode 100644 Docs/BUILDING-BeOS delete mode 100644 Docs/BUILDING-Framebuffer delete mode 100644 Docs/BUILDING-GTK delete mode 100644 Docs/BUILDING-Windows delete mode 100644 Docs/Doxyfile delete mode 100644 Docs/JavaScript delete mode 100644 Docs/LIBRARIES delete mode 100644 Docs/Options delete mode 100644 Docs/PACKAGING-GTK delete mode 100644 Docs/QUICK-START delete mode 100644 Docs/USING-Framebuffer delete mode 100644 Docs/USING-Monkey delete mode 100644 Docs/UnimplementedJavascript.txt delete mode 100644 Docs/core-window-interface delete mode 100644 Docs/env.sh delete mode 100755 Docs/gource.sh delete mode 100644 Docs/ideas/cache.txt delete mode 100644 Docs/ideas/css-engine.txt delete mode 100644 Docs/ideas/render-library.txt delete mode 100644 Docs/netsurf-fb.1 delete mode 100644 Docs/netsurf-gtk.1 delete mode 100644 Docs/source-object-backing-store delete mode 100644 Docs/unit-testing delete mode 100644 Docs/updating-duktape.md create mode 100644 docs/Doxyfile create mode 100644 docs/PACKAGING-GTK create mode 100644 docs/UnimplementedJavascript.txt create mode 100644 docs/building-AmigaCross.md create mode 100644 docs/building-AmigaOS.md create mode 100644 docs/building-Framebuffer.md create mode 100644 docs/building-GTK.md create mode 100644 docs/building-Haiku.md create mode 100644 docs/building-Windows.md create mode 100644 docs/core-window-interface.md create mode 100644 docs/env.sh create mode 100755 docs/gource.sh create mode 100644 docs/ideas/cache.txt create mode 100644 docs/ideas/css-engine.txt create mode 100644 docs/ideas/render-library.txt create mode 100644 docs/mainpage.md create mode 100644 docs/netsurf-fb.1 create mode 100644 docs/netsurf-gtk.1 create mode 100644 docs/netsurf-libraries.md create mode 100644 docs/netsurf-options.md create mode 100644 docs/quick-start.md create mode 100644 docs/source-object-backing-store.md create mode 100644 docs/unit-testing create mode 100644 docs/updating-duktape.md create mode 100644 docs/using-framebuffer.md create mode 100644 docs/using-monkey.md diff --git a/Docs/BUILDING-AmigaCross b/Docs/BUILDING-AmigaCross deleted file mode 100644 index 32762cd5b..000000000 --- a/Docs/BUILDING-AmigaCross +++ /dev/null @@ -1,83 +0,0 @@ -to install an Amiga cross-compiler in a Linux distribution, there are instructions at - -http://utilitybase.com/article/show/2007/06/23/231/Installing+an+AmigaOS+4+cross+compiler - -a more Mac-oriented article [though of potentially general utility] is at -http://utilitybase.com/article/show/2006/05/21/188/Building+Amiga+OS+4+GCC+Cross+Compiler+for+UNIX%252FMAC - -more background at -http://cross.zerohero.se/os4.html - -cross-compile additional libs/tools -SDK -http://www.hyperion-entertainment.biz/ - -newlib -http://sources.redhat.com/newlib/ - -clib2 -http://sourceforge.net/projects/clib2/ - -ixemul -http://strohmayer.org/sfs/ - -libnix -http://sourceforge.net/projects/libnix/ - -though newlib / clib2 are apparently already included in the ppc-amigaos-gcc tarball - -lha utility is debian package lha - -then install linked libs in the correct place - -[normally /usr/local/amiga] -so -sudo chmod --recursive 775 /usr/local/amiga -sudo chmod --recursive +s /usr/local/amiga -sudo chown --recursive `whoami` /usr/local/amiga -sudo chgrp --recursive root /usr/local/amiga -[mkdir /usr/local/amiga/include] - -[may need to set ppc-amigaos-gcc libpaths] - -zlib -download tarball from project homepage, untar in a storage directory / -download source from your distribution's repository [zlib1g in Ubuntu] -[cd to top-level directory of zlib containing configure script] -CC=ppc-amigaos-gcc AR=ppc-amigaos-ar RANLIB=ppc-amigaos-ranlib \ -CFLAGS="-DNO_FSEEKO" ./configure --prefix=/usr/local/amiga -make -make install - -regex [pre-compiled] -http://aminet.net/dev/lib/libregex-4.4.3.lha - -libcurl -download the tarball from the project's homepage, untar in a storage directory / -download source from your distribution's repository -cd into the directory containing the configure file -./configure --prefix=/usr/local/amiga --host=ppc-amigaos -$ make -[you MUST have either POSIX or glibc strerror_r if strerror_r is found] -$ make install - -alternative -http://www.aminet.net/dev/lib/libcurl.lha - -libiconv [unnecessary as a non-overridable limited version is included in newlib] - -openssl - -libpng - -liblcms -http://www.aminet.net/dev/lib/liblcms_so.lha -http://www.aminet.net/dev/lib/liblcms_so.lha - -libjpeg - -libparserutils -libhubbub -libcss -libnsbmp -libnsgif diff --git a/Docs/BUILDING-AmigaOS b/Docs/BUILDING-AmigaOS deleted file mode 100644 index 3f05b9caf..000000000 --- a/Docs/BUILDING-AmigaOS +++ /dev/null @@ -1,129 +0,0 @@ --------------------------------------------------------------------------------- - Build Instructions for AmigaOS NetSurf 02 May 2014 --------------------------------------------------------------------------------- - - This document provides instructions for building the AmigaOS version of - NetSurf and provides guidance on obtaining NetSurf's build dependencies. - - AmigaOS NetSurf has been tested on AmigaOS 4.0 July 2007 Update and AmigaOS - 4.1. It will require modification for AmigaOS 3.9 or earlier, or other - Amiga-like platforms. - - AmigaOS NetSurf will build against newlib by default, building against - clib2 has not been tested. - - - Building and executing NetSurf -================================ - - First of all, you should examine the contents of Makefile.defaults - and enable and disable relevant features as you see fit by creating - a Makefile.config. Some of these options can be automatically - detected and used, although it is better to explicitly enable or - disable options. - - You should then obtain NetSurf's dependencies, keeping in mind which options - you have enabled in the configuration file. See the next section for - specifics. - - Once done, to build AmigaOS NetSurf on OS4, simply run: - - 1> gmake - - If that produces errors, you probably don't have some of NetSurf's build - dependencies installed. See "Obtaining NetSurf's dependencies" below, or turn - off the complaining features in a Makefile.config. - - Running NetSurf from the build tree requires some setup: - - 1> makelink resources amiga/resources force - 1> copy amiga/resources/themes/default/NetSurf.info NetSurf.info - - It should then be possible to run NetSurf by executing NetSurf from the - Shell or by double-clicking on the icon. - - - Obtaining NetSurf's build dependencies -======================================== - - Many of NetSurf's dependencies are included with the OS4 SDK or available - from Aminet or OS4Depot. The remainder must be built manually. - - The NetSurf project's libraries ---------------------------------- - - The NetSurf project has developed several libraries which are required by - the browser. To fetch each of these libraries, run the appropriate commands - from the Docs/LIBRARIES file. - - To build and install these libraries, simply enter each of their directories - and run: - - 1> gmake PREFIX=/path/to/buildsystem - - The path MUST be in UNIX format and point to directory containing "share". - - | Note: Building libsvgtiny requires gperf, which is available from Aminet: - | - | http://www.aminet.net/package/dev/c/gperf - - - cURL ------- - - A version of libcurl built for newlib is available from Aminet - - http://www.os4depot.net/share/development/library/misc/libcurl.lha - - - - libpng --------- - - NetSurf uses libPNG to display PNG files. - It builds without any problems on OS4, or available from OS4Depot: - - http://www.os4depot.net/share/development/library/graphics/libpng.lha - - - OpenSSL ---------- - - NetSurf uses OpenSSL for encrypted transfers. - - http://www.os4depot.net/share/development/library/misc/libopenssl.lha - - - Libharu ---------- - - NetSurf can use Haru PDF to enable PDF export. Haru PDF can be obtained - from http://libharu.org/. We require libharu 2.2 or later. - - | Note: libharu cannot be auto-detected by the Makefile. If you wish to - | enable it, do so by creating a Makefile.config file. - - - libregex ----------- - - A version of the regular expression library can be obtained from Aminet: - - http://www.aminet.net/package/dev/lib/libregex-4.4.3 - - - openurl.library ------------------ - - The AmigaOS mailto: URL support uses openurl.library, this and the includes - can be obtained from Aminet: - - http://www.aminet.net/package/comm/www/OpenURL-OS4 - - - Spidermonkey --------------- - - Experimental Javascript support requires Spidermonkey. The patches to - build v1.7 are available from the NetSurf toolchains Git repository. - diff --git a/Docs/BUILDING-BeOS b/Docs/BUILDING-BeOS deleted file mode 100644 index 8642861d3..000000000 --- a/Docs/BUILDING-BeOS +++ /dev/null @@ -1,146 +0,0 @@ --------------------------------------------------------------------------------- - Build Instructions for BeOS and Haiku NetSurf 13 February 2010 --------------------------------------------------------------------------------- - - This document provides instructions for building the BeOS and Haiku version - of NetSurf and provides guidance on obtaining NetSurf's build dependencies. - - BeOS NetSurf has been tested on Zeta and Haiku only for now. There are still some - issues to sort out for other BeOS versions. - - Quick Start -============= - - See the QUICK-START document, which provides a simple environment with - which you can fetch, build and install NetSurf and its dependencies. - - The QUICK-START is the recommended way to build NetSurf for Haiku. BeOS needs too much manual - hacking to be built this way. - - - Manual building -================================ - - To build NetSurf on a BeOS, provided you have the relevant - build dependencies installed, simply run: - - $ make - - If that produces errors, you probably don't have some of NetSurf's build - dependencies installed. See "Obtaining NetSurf's dependencies" below. You - may need to "make clean" before attempting to build after installing the - dependencies. Also note BeOS has an old make command that won't work, see - below. - - - Obtaining NetSurf's dependencies -================================== - - Many of NetSurf's dependencies are either installed or available for BeOS and - Haiku. The remainder must be installed manually. - - The NetSurf project's libraries ---------------------------------- - - The NetSurf project has developed several libraries which are required by - the browser. These are: - - BuildSystem -- Shared build system, needed to build the other libraries - LibParserUtils -- Parser building utility functions - LibWapcaplet -- String internment - Hubbub -- HTML5 compliant HTML parser - LibCSS -- CSS parser and selection engine - LibNSGIF -- GIF format image decoder - LibNSBMP -- BMP and ICO format image decoder - LibROSprite -- RISC OS Sprite format image decoder - - To fetch each of these libraries, run the appropriate commands from the - Docs/LIBRARIES file, from within your workspace directory. - - To build and install these libraries, simply enter each of their directories - and run: - - $ make install - - | Note: We advise enabling iconv() support in libparserutils, which vastly - | increases the number of supported character sets. To do this, - | create a file called Makefile.config.override in the libparserutils - | directory, containing the following line: - | - | CFLAGS += -DWITH_ICONV_FILTER - | - | For more information, consult the libparserutils README file. - - TODO: add some more here. - - Additional requirements for BeOS -================================== - - On Haiku, other libraries and tools are either shipped with the system or available through the - package repositories. For BeOS based systems, you will need to install and update all the - required tools, as described below. - - rc ----- - - Building NetSurf needs the Haiku resource compiler (rc), that allows - importing files from resource definitions (.rdef). - - $ cd - $ TARGET_PLATFORM=r5 jam -q rc - $ cp generated/objects/dano/x86/release/tools/rc/rc /boot/home/config/bin/ - - - GNU make 3.81 ---------------- - - BeOS has an old make tool, which won't work when building NetSurf. - Haiku has 3.81 which is the one that works. For BeOS, one has to replace - the original make with one built from the Haiku tree, or install it as gmake: - - $ cd - $ TARGET_PLATFORM=r5 jam -q make - $ cp generated/objects/r5/x86/release/bin/make/make /boot/home/config/bin/gmake - - - cURL ------- - - NetSurf uses cURL to fetch files from the network. - There is a patch against the official version on HaikuPorts. - - TODO - - - libpng --------- - - NetSurf uses libPNG to display PNG files. - It should build just fine on BeOS. - - - libjpeg ---------- - - NetSurf uses libjpeg to display JPEG files. - It should already be available in your dev kit. - - - OpenSSL ----------- - - NetSurf uses OpenSSL for encrypted transfers. - - - General requirements ----------------------- - - There is currently an issue on stdbool.h (unsigned char bool vs enum bool) - which needs to be fixed, for now one can use the Haiku version of the header - and copy it over the gcc-provided one. - $ cd - $ cp headers/build/gcc-2.95.3/stdbool.h /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-060710/include/stdbool.h - - - NetSurf might build on BeOS R5 but probably won't work on anything else than - BONE. diff --git a/Docs/BUILDING-Framebuffer b/Docs/BUILDING-Framebuffer deleted file mode 100644 index 3c8858a32..000000000 --- a/Docs/BUILDING-Framebuffer +++ /dev/null @@ -1,350 +0,0 @@ --------------------------------------------------------------------------------- - Build Instructions for Framebuffer NetSurf 16 March 2014 --------------------------------------------------------------------------------- - - This document provides instructions for building the Framebuffer version of - NetSurf and provides guidance on obtaining NetSurf's build dependencies. - - Framebuffer NetSurf has been tested on Ubuntu and Debian. - - Depending on the framebuffer frontend selected the build may need specific - libraries installed, e.g. the SDL port requires SDL1.2 or later - - There are two ways to get NetSurf building. The QUICK-START (recommended), - and the manual build. Whichever you choose, you should read both the - "Fonts", and "Selecting a frontend and appropriate options" sections below. - - - Quick Start -============= - - See the QUICK-START document, which provides a simple environment with - which you can fetch, build and install NetSurf and its dependencies. - - The QUICK-START is the recommended way to build NetSurf. - - - Manual building -================= - - If you can't follow the quick start instructions, you will have to build - NetSurf manually. The instructions for doing this are given below. - - - Obtaining the build dependencies ----------------------------------- - - Many of NetSurf's dependencies are packaged on various operating systems. - The remainder must be installed manually. Currently, some of the libraries - developed as part of the NetSurf project have not had official releases. - Hopefully they will soon be released with downloadable tarballs and packaged - in common distros. For now, you'll have to make do with Git checkouts. - - Package installation - -------------------- - - Debian-like OS: - - $ apt-get install libcurl3-dev libpng-dev - - Recent OS versions might need libcurl4-dev instead of libcurl3-dev but - note that when it has not been built with OpenSSL, the SSL_CTX is not - available and results that certification details won't be presented in case - they are invalid. But as this is currently unimplemented in the Framebuffer - flavour of NetSurf, this won't make a difference at all. - - Fedora: - - $ yum install curl-devel libpng-devel lcms-devel - - Other: - - You'll need to install the development resources for libcurl3 and libpng. - - - Preparing your workspace --------------------------- - - NetSurf has a number of libraries which must be built in-order and - installed into your workspace. Each library depends on a core build - system which NetSurf projects use. This build system relies on the - presence of things like pkg-config to find libraries and also certain - environment variables in order to work correctly. - - Assuming you are preparing a workspace in /home/netsurf/workspace then - the following steps will set you up: - - Make the workspace directory and change to it - --------------------------------------------- - - $ mkdir -p ${HOME}/netsurf/workspace - $ cd ${HOME}/netsurf/workspace - - Make the temporary install space - -------------------------------- - - $ mkdir inst - - Make an environment script - -------------------------- - $ cat > env.sh <<'EOF' - export PKG_CONFIG_PATH=${HOME}/netsurf/workspace/inst/lib/pkgconfig:: - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/netsurf/workspace/inst/lib - export PREFIX=${HOME}/netsurf/workspace/inst - EOF - - Change to workspace and source the environment - ---------------------------------------------- - - Whenever you wish to start development in a new shell, run the following: - - $ cd ${HOME}/netsurf/workspace - $ source env.sh - - From here on, any commands in this document assume you have sourced your - shell environment. - - - The NetSurf project's libraries ---------------------------------- - - The NetSurf project has developed several libraries which are required by - the browser. These are: - - BuildSystem -- Shared build system, needed to build the other libraries - LibParserUtils -- Parser building utility functions - LibWapcaplet -- String internment - Hubbub -- HTML5 compliant HTML parser - LibCSS -- CSS parser and selection engine - LibNSGIF -- GIF format image decoder - LibNSBMP -- BMP and ICO format image decoder - LibROSprite -- RISC OS Sprite format image decoder - LibNSFB -- Framebuffer abstraction - - To fetch each of these libraries, run the appropriate commands from the - Docs/LIBRARIES file. - - To build and install these libraries, simply enter each of their directories - and run: - - $ make install - - | Note: We advise enabling iconv() support in libparserutils, which vastly - | increases the number of supported character sets. To do this, - | create a file called Makefile.config.override in the libparserutils - | directory, containing the following line: - | - | CFLAGS += -DWITH_ICONV_FILTER - | - | For more information, consult the libparserutils README file. - - - Getting the NetSurf source ----------------------------- - - From your workspace directory, run the following command to get the NetSurf - source: - - $ git clone git://git.netsurf-browser.org/netsurf.git - - And change to the 'netsurf' directory: - - $ cd netsurf - - - Building and executing NetSurf --------------------------------- - - First of all, you should examine the contents of Makefile.defaults - and enable and disable relevant features as you see fit in a - Makefile.config file. Some of these options can be automatically - detected and used, and where this is the case they are set to such. - Others cannot be automatically detected from the Makefile, so you - will either need to install the dependencies, or set them to NO. - - You should then obtain NetSurf's dependencies, keeping in mind which options - you have enabled in the configuration file. See the "Obtaining NetSurf's - dependencies" section for specifics. - - Once done, to build Framebuffer NetSurf on a UNIX-like platform, simply run: - - $ make TARGET=framebuffer - - If that produces errors, you probably don't have some of NetSurf's build - dependencies installed. See "Obtaining NetSurf's dependencies" below. - Or turn off the complaining features in your Makefile.config. You may - need to "make clean" before attempting to build after installing the - dependencies. - - Run NetSurf by executing the "nsfb" program: - - $ ./nsfb - - | Note: NetSurf uses certain resources at run time. In order to find these - | resources, it searches three locations: - | - | 1. ~/.netsurf/ - | 2. $NETSURFRES/ - | 3. /usr/share/netsurf/ - | - | In the build tree, the resources are located at - | - | framebuffer/res - | - | Setting $NETSURFRES to point at the resources in the build tree - | will enable you to run NetSurf from here without installation. - | To do this, run: - | - | export NETSURFRES=`pwd`/framebuffer/res - - - Fonts -======= - - The framebuffer port currently has two choices for font - handling. The font handler may be selected at compile time by using - the NETSURF_FB_FONTLIB configuration key. Currently supported values - are internal and freetype - - Internal ----------- - - The internal font system has a single built in monospaced face with - CP467 encoding. The internal font plotter requires no additional - resources and is very fast, it is also aesthetically unappealing. - - Freetype ----------- - - The freetype font system (freetype version 2 API is used) has - support for a number of different font file formats and faces. The - framebuffer font handler takes advantage of the freetype library - caching system to give good performance. - - The font glyphs are, by default, rendered as 256 level transparency - which gives excellent visual results even on small font sizes. - - The default font is the DejaVu trutype font set. The default path they - are sourced from is /usr/share/fonts/truetype/ttf-dejavu/ . - - The compiled in default paths may be altered by setting values in - the user configuration makefile Makefile.config. These values must - be set to the absolute path of the relevant font file including its - .ttf extension. The variables are: - - NETSURF_FB_FONT_SANS_SERIF - NETSURF_FB_FONT_SANS_SERIF_BOLD - NETSURF_FB_FONT_SANS_SERIF_ITALIC - NETSURF_FB_FONT_SANS_SERIF_ITALIC_BOLD - NETSURF_FB_FONT_SERIF - NETSURF_FB_FONT_SERIF_BOLD - NETSURF_FB_FONT_MONOSPACE - NETSURF_FB_FONT_MONOSPACE_BOLD - NETSURF_FB_FONT_CURSIVE - NETSURF_FB_FONT_FANTASY - - The font selection may be changed by placing truetype font files - in the resources path. The resource files will be the generic names - sans_serif.ttf, sans_serif_bold.ttf etc. - - The font system is configured at runtime by several options. The - fb_font_monochrome option causes the renderer to use monochrome - glyph rendering which is faster to plot but slower to render and - much less visually appealing. - - The remaining seven options control the files to be used for font faces. - - fb_face_sans_serif - The sans serif face - fb_face_sans_serif_bold - The bold sans serif face - fb_face_sans_serif_italic - The italic sans serif face - fb_face_sans_serif_italic_bold - The bold italic sans serif face. - fb_face_serif - The serif font - fb_serif_bold - The bold serif font - fb_face_monospace - The monospaced font - fb_face_monospace_bold - The bold monospaced font - fb_face_cursive - The cursive font - fb_face_fantasy - The fantasy font - - Old Freetype --------------- - - The framebuffer port Freetype font implementation was constructed - using a modern version of the library (2.3.5) to use versions 2.2.1 - and prior the following patch is necessary. - - -Index: framebuffer/font_freetype.c -=================================================================== ---- framebuffer/font_freetype.c (revision 6750) -+++ framebuffer/font_freetype.c (working copy) -@@ -311,6 +311,7 @@ - FT_Glyph glyph; - FT_Error error; - fb_faceid_t *fb_face; -+ FTC_ImageTypeRec trec; - - fb_fill_scalar(style, &srec); - -@@ -318,15 +319,24 @@ - - glyph_index = FTC_CMapCache_Lookup(ft_cmap_cache, srec.face_id, fb_face->cidx, ucs4); - -- error = FTC_ImageCache_LookupScaler(ft_image_cache, -- &srec, -- FT_LOAD_RENDER | -- FT_LOAD_FORCE_AUTOHINT | -- ft_load_type, -- glyph_index, -- &glyph, -- NULL); - -+ trec.face_id = srec.face_id; -+ if (srec.pixel) { -+ trec.width = srec.width; -+ trec.height = srec.height; -+ } else { -+ /* Convert from 1/64 pts to pixels */ -+ trec.width = srec.width * css_screen_dpi / 64 / srec.x_res; -+ trec.height = srec.height * css_screen_dpi / 64 / srec.y_res; -+ } -+ trec.flags = FT_LOAD_RENDER | FT_LOAD_FORCE_AUTOHINT | ft_load_type; -+ -+ error = FTC_ImageCache_Lookup(ft_image_cache, -+ &trec, -+ glyph_index, -+ &glyph, -+ NULL); -+ - return glyph; - } - - - Selecting a frontend and appropriate options -============================================== - - The framebuffer port interfaces to its input and output devices - using the NetSurf Framebuffer library (libnsfb). This library - provides an abstraction layer to input and output devices. - - The surface used by libnsfb is selected by using the -f switch to - NetSurf when executed. A surface in this context is simply the - combination of input and output devices. - - A surface output device may be any linearly mapped area of - memory. The framebuffer may be treated as values at 32, 16 or 8 bits - per pixel. The input device is typically selected to complement the - output device and is completely specific to the surface. - - There are several configuration options which may influence the - framebuffer surfaces. These are: - - fb_refresh - The refresh rate (for physical displays) - fb_depth - The depth (in bits per pixel) of the framebuffer - window_width - The width of the framebuffer - window_height - The height of the framebuffer - - The defaults are for 800 by 600 pixels at 16bpp and 70Hz refresh rate. - - The documentation of libnsfb should be consulted for futher - information about supported frontends and their configuration. - diff --git a/Docs/BUILDING-GTK b/Docs/BUILDING-GTK deleted file mode 100644 index 4ac0fc89e..000000000 --- a/Docs/BUILDING-GTK +++ /dev/null @@ -1,239 +0,0 @@ --------------------------------------------------------------------------------- - Build Instructions for GTK NetSurf 16 March 2014 --------------------------------------------------------------------------------- - - This document provides instructions for building the GTK version of NetSurf - and provides guidance on obtaining NetSurf's build dependencies. - - GTK NetSurf has been tested on Debian, Ubuntu, Fedora 8, FreeBSD, NetBSD and - Solaris 10. NetSurf requires at minimum GTK 2.12. - - - Quick Start -============= - - See the QUICK-START document, which provides a simple environment with - which you can fetch, build and install NetSurf and its dependencies. - - The QUICK-START is the recommended way to build NetSurf. - - - Manual building -================= - - If you can't follow the quick start instructions, you will have to build - NetSurf manually. The instructions for doing this are given below. - - - Obtaining the build dependencies ----------------------------------- - - Many of NetSurf's dependencies are packaged on various operating systems. - The remainder must be installed manually. Currently, some of the libraries - developed as part of the NetSurf project have not had official releases. - Hopefully they will soon be released with downloadable tarballs and packaged - in common distros. For now, you'll have to make do with Git checkouts. - - Package installation - -------------------- - - Debian-like OS: - - $ apt-get install libgtk2.0-dev libcurl3-dev libpng-dev - $ apt-get install librsvg2-dev libjpeg-dev - - If you want to build with gtk 3 replace libgtk2.0-dev with libgtk-3-dev - - Recent OS versions might need libcurl4-dev instead of libcurl3-dev but - note that when it has not been built with OpenSSL, the SSL_CTX is not - available and results that certification details won't be presented in case - they are invalid. But as this is currently unimplemented in the GTK - flavour of NetSurf, this won't make a difference at all. - - For experimental javascript support the mozilla spiermonkey library - is required: - - $ apt-get install libmozjs-dev - - Fedora: - - $ yum install curl-devel libpng-devel - $ yum install librsvg2-devel expat-devel - - Other: - - You'll need to install the development resources for libglade2, libcurl3, - libpng and librsvg. - - Libharu - ------- - - NetSurf can use Haru PDF to enable PDF export. Haru PDF can be obtained - from http://libharu.org/. We require libharu 2.2 or later. - - | Note: libharu cannot be auto-detected by the Makefile. If you wish to - | enable it, do so by creating a Makefile.config file. - - - Preparing your workspace --------------------------- - - NetSurf has a number of libraries which must be built in-order and - installed into your workspace. Each library depends on a core build - system which NetSurf projects use. This build system relies on the - presence of things like pkg-config to find libraries and also certain - environment variables in order to work correctly. - - Assuming you are preparing a workspace in /home/netsurf/workspace then - the following steps will set you up: - - Make the workspace directory and change to it - --------------------------------------------- - - $ mkdir -p ${HOME}/netsurf/workspace - $ cd ${HOME}/netsurf/workspace - - Make the temporary install space - -------------------------------- - - $ mkdir inst - - Make an environment script - -------------------------- - $ cat > env.sh <<'EOF' - export PKG_CONFIG_PATH=${HOME}/netsurf/workspace/inst/lib/pkgconfig:: - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/netsurf/workspace/inst/lib - export PREFIX=${HOME}/netsurf/workspace/inst - EOF - - Change to workspace and source the environment - ---------------------------------------------- - - Whenever you wish to start development in a new shell, run the following: - - $ cd ${HOME}/netsurf/workspace - $ source env.sh - - From here on, any commands in this document assume you have sourced your - shell environment. - - - The NetSurf project's libraries ---------------------------------- - - The NetSurf project has developed several libraries which are required by - the browser. These are: - - BuildSystem -- Shared build system, needed to build the other libraries - LibParserUtils -- Parser building utility functions - LibWapcaplet -- String internment - Hubbub -- HTML5 compliant HTML parser - LibCSS -- CSS parser and selection engine - LibNSGIF -- GIF format image decoder - LibNSBMP -- BMP and ICO format image decoder - LibROSprite -- RISC OS Sprite format image decoder - - To fetch each of these libraries, run the appropriate commands from the - Docs/LIBRARIES file, from within your workspace directory. - - To build and install these libraries, simply enter each of their directories - and run: - - $ make install - - | Note: We advise enabling iconv() support in libparserutils, which vastly - | increases the number of supported character sets. To do this, - | create a file called Makefile.config.override in the libparserutils - | directory, containing the following line: - | - | CFLAGS += -DWITH_ICONV_FILTER - | - | For more information, consult the libparserutils README file. - - Now you should have all the NetSurf project libraries built and installed. - - - Getting the NetSurf source ----------------------------- - - From your workspace directory, run the following command to get the NetSurf - source: - - $ git clone git://git.netsurf-browser.org/netsurf.git - - And change to the 'netsurf' directory: - - $ cd netsurf - - Building and executing NetSurf --------------------------------- - - First of all, you should examine the options in Makefile.defaults - and gtk/Makefile.defaults and enable and disable relevant features - as you see fit by editing a Makefile.config file. - - Some of these options can be automatically detected and used, and - where this is the case they are set to such. Others cannot be - automatically detected from the Makefile, so you will either need to - install the dependencies, or set them to NO. - - You should then obtain NetSurf's dependencies, keeping in mind which options - you have enabled in the configuration file. See the next section for - specifics. - - Once done, to build GTK NetSurf on a UNIX-like platform, simply run: - - $ make - - If that produces errors, you probably don't have some of NetSurf's - build dependencies installed. See "Obtaining NetSurf's dependencies" - below. Or turn off the complaining features in a Makefile.config - file. You may need to "make clean" before attempting to build after - installing the dependencies. - - Run NetSurf by executing the "test-nsgtk" shell script: - - $ ./test-nsgtk - - This script makes it easy to run the nsgtk binary from the build tree. It - sets up some environment variables which enable NetSurf to find its - resources. - - Builtin resources -------------------- - - There are numerous resources that accompany NetSurf, such as the - image files for icons, cursors and the ui builder files that - construct the browsers interface. - - Some of these resources can be compiled into the browser executable - removing the need to install these resources separately. The GLib - library on which GTK is based provides this functionality to - NetSurf. - - Up until GLib version 2.32 only the GDK pixbuf could be integrated - in this way and is controlled with the NETSURF_USE_INLINE_PIXBUF - variable (set in makefile.config). - - Glib version 2.32 and later integrated support for any file to be a - resource while depreciating the old inline pixbuf interface. NetSurf - gtk executables can integrate many resources using this interface, - configuration is controlled with the NETSURF_USE_GRESOURCE variable. - - Loading from file is the fallback if a resource has not been - compiled in, because of this if both of these features are - unavailable (or disabled) NetSurf will automatically fall back to - loading all its resources from files. - - The resource initialisation within the browser ensures it can access - all the resources at start time, however it does not verify the - resources are valid so failures could still occur subsequently. This - is especially true for file based resources as they can become - inaccessible after initialisation. - - - Note for packagers -==================== - - If you are packaging NetSurf, see the PACKAGING-GTK document. - diff --git a/Docs/BUILDING-Windows b/Docs/BUILDING-Windows deleted file mode 100644 index dc6769fdf..000000000 --- a/Docs/BUILDING-Windows +++ /dev/null @@ -1,203 +0,0 @@ --------------------------------------------------------------------------------- - Build Instructions for Windows NetSurf 13 February 2010 --------------------------------------------------------------------------------- - - This document provides instructions for building the Windows version - of NetSurf and provides guidance on obtaining NetSurf's build - dependencies. - - Windows NetSurf has been tested on Wine and Vista. - - - Building and executing NetSurf -================================ - - The windows netsurf port uses the MinGW (Minimal GNU on Windows) - system as its build infrastructure. This allows the normal netsurf - build process to be used. - - The method outlined here to create executables cross compiles - windows executable from a Linux OS host. - - First of all, you should examine the contents of Makefile.defaults - and enable and disable relevant features as you see fit by creating - a Makefile.config file. Some of these options can be automatically - detected and used, and where this is the case they are set to such. - Others cannot be automatically detected from the Makefile, so you - will either need to install the dependencies, or set them to NO. - - You should then obtain NetSurf's dependencies, keeping in mind which - options you have enabled in the configuration file. See the next - section for specifics. - - Once done, to build windows NetSurf on a UNIX-like platform, simply run: - - $ export MINGW_PREFIX=i586-mingw32msvc- - $ export MINGW_INSTALL_ENV=/usr/i586-mingw32msvc/ - $ make TARGET=windows - - If that produces errors, you probably don't have some of NetSurf's - build dependencies installed. See "Obtaining NetSurf's dependencies" - below. Or turn off the complaining features in a Makefile.config - file. You may need to "make clean" before attempting to build after - installing the dependencies. - - You will need the libgnurx-0.dll from /usr/i586-mingw32msvc/bin/ - copied next to the exe and the windows/res directory available, also - next to the executable. - - Run NetSurf by executing it: - - $ wine NetSurf.exe - - The staticaly linked binary which is generated may be several - megabytes in size, this can be reduced by stripping the binary. - - $ i586-mingw32msvc-strip NetSurf.exe - - - Obtaining NetSurf's build dependencies -======================================== - - Package installation ----------------------- - - Debian-based OS: - - The mingw cross compilation tools are required. These can be - installed as pakages on Debian/Ubuntu systems: - - $ sudo apt-get install mingw32 mingw32-binutils mingw32-runtime - - These provide a suitable set of compilers and headers including the win32 API. - - The includes and associated libraries are installed in - /usr/i586-mingw32msvc/ Which is where the build system will include - files from by default. The packages at time of writing only target - 32bit windows builds. - - Other: - - For other OS the apropriate packages and environment must be installed. - - pkg-config ------------- - - A pkg-config wrapper script is required to make things easier - -cat > /usr/i586-mingw32msvc/bin/pkg-config <