Package 'Freetypeharfbuzz'

Total Page:16

File Type:pdf, Size:1020Kb

Package 'Freetypeharfbuzz' Package ‘freetypeharfbuzz’ October 30, 2018 Title Deterministic Computation of Text Box Metrics Version 0.2.5 Description Unlike other tools that dynamically link to the 'Cairo' stack, 'freetypeharfbuzz' is statically linked to specific versions of the 'FreeType' and 'harfbuzz' libraries (2.9 and 1.7.6 respectively). This ensures deterministic computation of text box extents for situations where reproducible results are crucial (for instance unit tests of graphics). Depends R (>= 3.2) Imports fontquiver Suggests covr, testthat SystemRequirements GNU make License GPL-3 | file LICENSE Encoding UTF-8 LazyData true ByteCompile true Biarch true RoxygenNote 6.1.0 NeedsCompilation yes Author Lionel Henry [aut, cre], RStudio [cph], David Turner [aut] (FreeType library), Robert Wilhelm [aut] (FreeType library), Werner Wilhelm [aut] (FreeType library), Behdad Esfahbod [aut] (Harfbuzz library), Simon Hausmann [aut] (Harfbuzz library), Martin Hosken [aut] (Harfbuzz library), Jonathan Kew [aut] (Harfbuzz library), Lars Knoll [aut] (Harfbuzz library), Werner Lemberg [aut] (Harfbuzz library), Roozbeh Pournader [aut] (Harfbuzz library), Owen Taylor [aut] (Harfbuzz library), 1 2 font_info David Turner [aut] (Harfbuzz library), Red Hat [cph] (Harfbuzz library) Maintainer Lionel Henry <[email protected]> Repository CRAN Date/Publication 2018-10-30 15:50:14 UTC R topics documented: font_info . .2 Index 3 font_info Font metrics Description * ‘font_info()‘ returns the typographical metrics (ascent, descent, linegap) for a font. * ‘str_info()‘ returns the metrics (width, height, ascent, descent) for a string. ‘str_width()‘ only returns the width. Usage font_info(font_size = 12, font_file = NULL) str_info(string, font_size = 12, font_file = NULL) str_width(string, font_size = 12, font_file = NULL) Arguments font_size Font size in point. font_file Path to a ttf or otf file. string A string whose metrics will be computed. Examples file <- fontquiver::font("Liberation", "serif", "bold")$ttf font_info(font_size = 13, font_file = file) str_width("foobar", font_size = 13) str_info("foobar", font_size = 13) str_info("foobar", font_size = 13, font_file = file) Index font_info,2 str_info (font_info),2 str_width (font_info),2 3.
Recommended publications
  • Porting a Window Manager from Xlib to XCB
    Porting a Window Manager from Xlib to XCB Arnaud Fontaine (08090091) 16 May 2008 Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version pub- lished by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Contents List of figures i List of listings ii Introduction 1 1 Backgrounds and Motivations 2 2 X Window System (X11) 6 2.1 Introduction . .6 2.2 History . .6 2.3 X Window Protocol . .7 2.3.1 Introduction . .7 2.3.2 Protocol overview . .8 2.3.3 Identifiers of resources . 10 2.3.4 Atoms . 10 2.3.5 Windows . 12 2.3.6 Pixmaps . 14 2.3.7 Events . 14 2.3.8 Keyboard and pointer . 15 2.3.9 Extensions . 17 2.4 X protocol client libraries . 18 2.4.1 Xlib . 18 2.4.1.1 Introduction . 18 2.4.1.2 Data types and functions . 18 2.4.1.3 Pros . 19 2.4.1.4 Cons . 19 2.4.1.5 Example . 20 2.4.2 XCB . 20 2.4.2.1 Introduction . 20 2.4.2.2 Data types and functions . 21 2.4.2.3 xcb-util library . 22 2.4.2.4 Pros . 22 2.4.2.5 Cons . 23 2.4.2.6 Example . 23 2.4.3 Xlib/XCB round-trip performance comparison .
    [Show full text]
  • The Unicode Cookbook for Linguists: Managing Writing Systems Using Orthography Profiles
    Zurich Open Repository and Archive University of Zurich Main Library Strickhofstrasse 39 CH-8057 Zurich www.zora.uzh.ch Year: 2017 The Unicode Cookbook for Linguists: Managing writing systems using orthography profiles Moran, Steven ; Cysouw, Michael DOI: https://doi.org/10.5281/zenodo.290662 Posted at the Zurich Open Repository and Archive, University of Zurich ZORA URL: https://doi.org/10.5167/uzh-135400 Monograph The following work is licensed under a Creative Commons: Attribution 4.0 International (CC BY 4.0) License. Originally published at: Moran, Steven; Cysouw, Michael (2017). The Unicode Cookbook for Linguists: Managing writing systems using orthography profiles. CERN Data Centre: Zenodo. DOI: https://doi.org/10.5281/zenodo.290662 The Unicode Cookbook for Linguists Managing writing systems using orthography profiles Steven Moran & Michael Cysouw Change dedication in localmetadata.tex Preface This text is meant as a practical guide for linguists, and programmers, whowork with data in multilingual computational environments. We introduce the basic concepts needed to understand how writing systems and character encodings function, and how they work together. The intersection of the Unicode Standard and the International Phonetic Al- phabet is often not met without frustration by users. Nevertheless, thetwo standards have provided language researchers with a consistent computational architecture needed to process, publish and analyze data from many different languages. We bring to light common, but not always transparent, pitfalls that researchers face when working with Unicode and IPA. Our research uses quantitative methods to compare languages and uncover and clarify their phylogenetic relations. However, the majority of lexical data available from the world’s languages is in author- or document-specific orthogra- phies.
    [Show full text]
  • How-To Gnome-Look Guide
    HHOOWW--TTOO Written by David D Lowe GGNNOOMMEE--LLOOOOKK GGUUIIDDEE hen I first joined the harddisk, say, ~/Pictures/Wallpapers. right-clicking on your desktop Ubuntu community, I and selecting the appropriate You may have noticed that gnome- button (you know which one!). Wwas extremely look.org separates wallpapers into impressed with the amount of different categories, according to the customization Ubuntu had to size of the wallpaper in pixels. For Don't let acronyms intimidate offer. People posted impressive the best quality, you want this to you; you don't have to know screenshots, and mentioned the match your screen resolution. If you what the letters stand for to themes they were using. They don't know what your screen know what it is. Basically, GTK is soon led me to gnome-look.org, resolution is, click System > the system GNOME uses to the number one place for GNOME Preferences > Screen Resolution. display things like buttons and visual customization. The However, Ubuntu stretches controls. GNOME is Ubuntu's screenshots there looked just as wallpapers quite nicely if you picked default desktop environment. I impressive, but I was very the wrong size, so you needn't fret will only be dealing with GNOME confused as to what the headings about it. on the sidebar meant, and I had customization here--sorry no idea how to use the files I SVG is a special image format that Kubuntu and Xubuntu folks! downloaded. Hopefully, this guide doesn't use pixels; it uses shapes Gnome-look.org distinguishes will help you learn what I found called vectors, which means you can between two versions of GTK: out the slow way.
    [Show full text]
  • PDF Copy of My Gsoc Proposal
    GSoC Proposal for Haiku Add Haiku Support for new Harfbuzz library ● Full name: Deepanshu Goyal ​ ● Timezone: +0530 ​ ● Email address: [email protected] ​ ● IRC username (freenode.net): digib0y ​ ● Trac username (dev.haiku-os.org): digib0y ​ ● Trac ticket(s) containing patches for Haiku/ Pull requests: ○ https://github.com/haiku/website/pull/26 ○ https://github.com/haiku/website/pull/41 ○ https://github.com/haikuports/haikuports/pull/1204 ○ https://github.com/HaikuArchives/ArtPaint/pull/54 We also had technical discussions over few issues in ArtPaint which you can checkout: https://github.com/HaikuArchives/ArtPaint/issues , I have also commented few lines of code in one the ​ issues which you might be interested in! Apart from these I have submitted a patch to Haiku however most of the work on the patch was already done by a previous contributor . https://dev.haiku-os.org/attachment/ticket/11518/0001-Implemented-BFont-Blocks-added-build-featur e-for-fon.patch ● GitHub (or other public) repository: https://github.com/digib0y/ ​ ● Will you treat Google Summer of Code as full time employment? ​ ​ Yes, I do understand that Google Summer of Code is a full time virtual internship and I have no other commitment to any other internship, job, and exams. ● How many hours per week will you work? I will work for 40-50 hours a week, with give work update on every alternate day to the assigned mentor.. ● List all obligations (and their dates) that may take time away from GSoC (a second job, vacations, classes, ...): One day per week will be an off day, most probably weekend only if the goals for the week has been completed.
    [Show full text]
  • A Simplified Graphics System Based on Direct Rendering Manager System
    J. lnf. Commun. Converg. Eng. 16(2): 125-129, Jun. 2018 Regular paper A Simplified Graphics System Based on Direct Rendering Manager System Nakhoon Baek* , Member, KIICE School of Computer Science and Engineering, Kyungpook National University, Daegu 41566, Korea Abstract In the field of computer graphics, rendering speed is one of the most important factors. Contemporary rendering is performed using 3D graphics systems with windowing system support. Since typical graphics systems, including OpenGL and the DirectX library, focus on the variety of graphics rendering features, the rendering process itself consists of many complicated operations. In contrast, early computer systems used direct manipulation of computer graphics hardware, and achieved simple and efficient graphics handling operations. We suggest an alternative method of accelerated 2D and 3D graphics output, based on directly accessing modern GPU hardware using the direct rendering manager (DRM) system. On the basis of this DRM support, we exchange the graphics instructions and graphics data directly, and achieve better performance than full 3D graphics systems. We present a prototype system for providing a set of simple 2D and 3D graphics primitives. Experimental results and their screen shots are included. Index Terms: Direct rendering manager, Efficient handling, Graphics acceleration, Light-weight implementation, Prototype system I. INTRODUCTION Rendering speed is one of the most important factors for 3D graphics application programs. Typical present-day graph- After graphics output devices became publicly available, a ics programs need to be able to handle very large quantities large number of graphics applications were developed for a of graphics data. The larger the data size, and the more sen- broad spectrum of uses including computer animations, com- sitive to the rendering speed, the better the speed-up that can puter games, user experiences, and human-computer inter- be achieved, even for minor aspects of the graphics pipeline.
    [Show full text]
  • Digitale Typografie
    Digitale Typografie Andreas F. Borchert Universität Ulm 7. Juli 2016 Syllabus 2 Inhalte: • Einführung und historischer Überblick • Von der geometrisch definierten Fläche zum Pixelraster mit einer Einführung in PostScript und MetaPost • Digitale Repräsentierungen von Schriften • Einführung in die Typografie • Ausgewählte Algorithmen und Verfahrenstechniken Was ist Typografie? 3 • »Typography exists to honor content.« (Robert Bringhurst) • »Typografie ist keine Kunst. Typografie ist keine Wissenschaft. Typografie ist Handwerk.« (Hans Peter Willberg) • »Typografie, das ist die Inszenierung einer Mitteilung in der Fläche, so die kürzeste Definition, die ich kenne.« (Erik Spiekermann) • »Good typography therefore is a silent art; not its presence but rather its absence is noticeable.« (Mittelbach and Rowley: The pursuit of quality – How can automated typesetting achieve the highest standards of craft typography?) Wozu dient Typografie? 4 Robert Bringhurst fasst es folgendermaßen zusammen: »[...] typography should perform these services for the reader: I invite the reader into the text; I reveal the tenor and the meaning of the text; I clarify the structure and the order of the text; I link the text with other existing elements; I induce a state of energetic repose, which is the ideal condition for reading.« Was ist digitale Typografie? 5 • »Digital typography is the technology of using computers for the design, preparation, and presentation of documents, in which the graphical elements are organized, positioned, and themselves created under digital control.« (Richard Rubinstein) • »[...] the problem of printing beautiful books had changed from a problem of metallurgy to a problem of optics and then to a problem of computer science. [...] The future of typography depends on the people who know the most about creating patterns of 0s and 1s; it depends on mathematicians and computer scientists.« (Donald E.
    [Show full text]
  • Linux Graphics Meets the ARM Ecosystem
    Linux Graphics Meets the ARM Ecosystem Jesse Barker <[email protected]> April 12, 2011 Find us here on the Linaro wiki Overview ● The Linux Desktop ● The ARM Linux Desktop ● The Subset Approach ● Examples ● Questions ● What's Next The Desktop Window system ● Display management ● Resource management ● Session management ● Event handling ● Application programming interface Protocol Decode Device Independent X (DIX) DRI EXA DDX User space libdrm evdev DRM KMS Kernel GEM/TTM space Input H/W CPU GPU DC Memory Protocol Encode DRI GLX libdrm libX* Core Application Logic User space DRM KMS Kernel GEM/TTM space GPU DC CPU Memory Toolkits/Frameworks ● Create abstraction layer from the underlying window system. ● Provide uniform look-and-feel across platforms. ● Applications don't have to care which system they are running on. ● New backend to the framework adds a new supported platform for a whole bundle of applications. Bells and Whistles ● OpenGL ● Video ● Audio ● Compositing window managers ● Animation The ARM Desktop What's the difference? ● Most differences are “physical” ● Screen size and resolution ● Unified memory pool ● Power vs. raw performance ● Some API (not necessarily, though) ● Window system interfaces ● Rendering interfaces The Subset Approach ● OpenGL ES 2.0 is explicitly defined as a subset of OpenGL 2.1. ● Both have diverged since the original definition. ● Minimize specialized code (e.g., window system interfaces). The “big-ticket” items ● Immediate mode ● Fixed-function vertex processing ● Fixed-function fragment processing ● EGL vs. GLX Examples ● glmark2 ● cairo-gles ● compiz glmark2 ● Based upon opensource glmark by Ben Smith. ● Uses 3D Studio Max for model content. ● Uses SDL for window system abstraction.
    [Show full text]
  • Beyond Eye Candy
    COVER STORY Xgl and Compiz An OpenGL-accelerated desktop with Xgl and Compiz BEYOND EYE CANDY www.sxc.hu A member of Suse’s X11 team delivers an insider’s look at Xgl. agement must work hand in hand, we can expect to see more compositing BY MATTHIAS HOPF window managers in the future with the ability to merge both processes. ac fans were ecstatic when The Render extension adds new basic Another important X server compo- Apple introduced the Quartz primitives for displaying images and nent that desperately needs reworking is MExtreme [1] graphics interface, polygons, along with a new glyph sys- the hardware acceleration architecture, which accelerated desktop effects using tem for enhanced font displays. This which is responsible for efficient hard- 3D hardware. Microsoft’s Windows Vista particularly reflects the fact that the leg- ware representation of graphic com- with its Aero technology looks to close acy graphics commands, called core re- mands. The previous XAA architecture is this gap with the Mac. In the world of quests, no longer meet the demands built around core requests, and is there- Linux, Xgl [2] now provides a compara- placed on modern toolkits such as Qt fore difficult to extend. The architecture ble and even more advanced technology and GTK. All primitives can now be outlived its usefulness and needs replac- that supports similar effects. linked to data in the framebuffer using ing. The most promising alternatives are Xgl is an X Server by David Revemann Porter-Duff operators [3], thus support- EXA and OpenGL. that uses OpenGL to implement graphics ing the rendering of semitransparent sur- EXA is straightforward and easy to im- output.
    [Show full text]
  • Oracle R Enterprise User's Guide, Release 11.2 for Linux, Solaris, AIX, and Windows E26499-05
    Oracle® R Enterprise User's Guide Release 11.2 for Linux, Solaris, AIX, and Windows E26499-05 June 2012 Oracle R Enterprise User's Guide, Release 11.2 for Linux, Solaris, AIX, and Windows E26499-05 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Primary Author: Margaret Taft Contributing Author: Contributor: This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
    [Show full text]
  • Drawing with Cairo in GTK
    Drawing with Cairo in GTK# http://zetcode.com/gui/gtksharp/drawing/ Home Contents Drawing with Cairo in GTK# In this part of the GTK# programming tutorial, we will do some drawing with the Cairo library. Cairo is a library for creating 2D vector graphics. We can use it to draw our own widgets, charts or various effects or animations. Simple drawing The stroke operation draws the outlines of shapes and the fill operation fills the insides of shapes. Next we will demonstrate these two operations. simpledrawing.cs using Gtk; using Cairo; using System; class SharpApp : Window { public SharpApp() : base("Simple drawing") { SetDefaultSize(230, 150); SetPosition(WindowPosition.Center); DeleteEvent += delegate { Application.Quit(); };; DrawingArea darea = new DrawingArea(); darea.ExposeEvent += OnExpose; Add(darea); ShowAll(); } void OnExpose(object sender, ExposeEventArgs args) { DrawingArea area = (DrawingArea) sender; Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow); cr.LineWidth = 9; cr.SetSourceRGB(0.7, 0.2, 0.0); int width, height; width = Allocation.Width; height = Allocation.Height; cr.Translate(width/2, height/2); cr.Arc(0, 0, (width < height ? width : height) / 2 - 10, 0, 2*Math.PI); cr.StrokePreserve(); cr.SetSourceRGB(0.3, 0.4, 0.6); cr.Fill(); ((IDisposable) cr.Target).Dispose(); ((IDisposable) cr).Dispose(); } public static void Main() { Application.Init(); new SharpApp(); Application.Run(); } } In our example, we will draw a circle and will it with a solid color. 1 di 7 16/12/2014 10:47 Drawing with Cairo in GTK# http://zetcode.com/gui/gtksharp/drawing/ gmcs -pkg:gtk-sharp-2.0 -r:/usr/lib/mono/2.0/Mono.Cairo.dll simple.cs Here is how we compile the example.
    [Show full text]
  • Higher Quality 2D Text Rendering
    Journal of Computer Graphics Techniques Vol. 2, No. 1, 2013 Higher Quality 2D Text Rendering http://jcgt.org Higher Quality 2D Text Rendering Nicolas P. Rougier INRIA No hinting Native hinting Auto hinting Vertical hinting Figure 1. When displaying text on low-resolution devices (DPI < 150), one typically has to decide if one wants to respect the pixel grid (e.g., Cleartype technology / Microsoft / native hinting) for crisp rendering or, to privilege glyph shapes (Quartz technology / Apple / no hinting) at the cost of blurring. There is, however, a third way that may combine the best of the two technologies (vertical hinting). Abstract Even though text is pervasive in most 3D applications, there is surprisingly no native sup- port for text rendering in OpenGL. To cope with this absence, Mark Kilgard introduced the use of texture fonts [Kilgard 1997]. This technique is well known and widely used and en- sures both good performances and a decent quality in most situations. However, the quality may degrade strongly in orthographic mode (screen space) due to pixelation effects at large sizes and to legibility problems at small sizes due to incorrect hinting and positioning of glyphs. In this paper, we consider font-texture rendering to develop methods to ensure the highest quality in orthographic mode. The method used allows for both the accurate render- ing and positioning of any glyph on the screen. While the method is compatible with complex shaping and/or layout (e.g., the Arabic alphabet), these specific cases are not studied in this article. 50 Journal of Computer Graphics Techniques Vol.
    [Show full text]
  • Peerconnection Implementation Experience
    Experiences from implementing PeerConnection and related APIs @ Ericsson Labs Background • First implementation of the device element during spring 2010 • No peer-to-peer communication spec at the time • A WebSocket-based, server-relayed solution, ‘MediaStreamTransceiver’ was implemented during summer 2010 • Working ConnectionPeer (i.e. the previous spec) implementation in late 2010 • The current PeerConnection implementation is constantly being improved and updated as the spec changes Target platform • Ubuntu 11.04 • Epiphany web browser • WebKitGTK+ • GStreamer • Libnice WebKitGTK+ • WebKit port to the GTK+ GUI toolkit used by GNOME • Using GLib and GObject • Graphics provided by Cairo, HTTP by libsoup, media playback by GStreamer GStreamer (1) • Pipeline-based open source media framework using GObject • Pipeline elements provided by plugins • A great number of plugins for different codecs, transports, etc. • Fairly easy to create new plugins from existing code from other projects • Simple to work with and provides great functionality, we really like GStreamer GStreamer (2) • Since WebKitGTK+ already uses GStreamer for media playback, we could hook into some of the existing infrastructure • For example, the existing sink element for rendering video in the video element • Thanks to GLib, WebKitGTK+ and GStreamer share the same main event loop Libnice • An open source ICE library based on GLib with GStreamer elements • Simple to use with GStreamer • Since we have only run libnice to libnice we have now idea how interoperable it is PeerConnection
    [Show full text]