220 8892 <4305077.qmkjCE1Vbu@tjmaciei-mobl2> article
Path: news.gmane.org!not-for-mail
From: Thiago Macieira <thiago@macieira.org>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: Comments on 2d api for c++ N3888.pdf
Date: Tue, 28 Jan 2014 08:46:43 -0800
Lines: 103
Approved: news@gmane.org
Message-ID: <4305077.qmkjCE1Vbu@tjmaciei-mobl2>
References: <9105f9b2-e15d-4bf8-a4a1-65ebc3657eb0@isocpp.org> <CAL_=NOqTWD_VD3gMM7sCYvPp3Z2pUNRFrPciE3kmfpSJhLOt1g@mail.gmail.com> <lc8fnb$gfh$1@ger.gmane.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: multipart/signed; boundary="nextPart1663592.vR6aL1r8oT"; micalg="pgp-sha1"; protocol="application/pgp-signature"
X-Trace: ger.gmane.org 1390927609 18586 80.91.229.3 (28 Jan 2014 16:46:49 GMT)
X-Complaints-To: usenet@ger.gmane.org
NNTP-Posting-Date: Tue, 28 Jan 2014 16:46:49 +0000 (UTC)
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBCB4TK757YBRBAF6T6LQKGQE4YLO24A@isocpp.org Tue Jan 28 17:46:58 2014
Return-path: <std-proposals+bncBCB4TK757YBRBAF6T6LQKGQE4YLO24A@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-ea0-f198.google.com ([209.85.215.198])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <std-proposals+bncBCB4TK757YBRBAF6T6LQKGQE4YLO24A@isocpp.org>)
	id 1W8BoP-00065P-BT
	for gclcip-std-proposals@m.gmane.org; Tue, 28 Jan 2014 17:46:57 +0100
Original-Received: by mail-ea0-f198.google.com with SMTP id h14sf1321144eaj.1
        for <gclcip-std-proposals@m.gmane.org>; Tue, 28 Jan 2014 08:46:57 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:from:to:subject:date:message-id:user-agent
         :in-reply-to:references:mime-version:content-type:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:list-post:list-help:list-archive:list-subscribe
         :list-unsubscribe;
        bh=fy9X8qF1H+tfGHihdV/klohqpBMKhjrYZ27fTv/z6x8=;
        b=Pj46jEXXAomAnxpQmRwOTDusJZw95CaZXcLaOc/dCrkZrmPBSJ0ssmPZB/5S35g/R4
         t9ufi1edjHV3k58ZHKbVGxnFR/6VVCUw8R/wp0ZZ55GO3Y58VJDuYQQK9ym/O46tfGQ2
         LIzmv82LcG8m8zn1V1EockTvbJSp+bNI8VJpajuUjbjBGql7ZOMzA0/2YFvouCELfDGB
         KHu3ebqIh9n9XhJ2yzlcS4zPsERvH1Y93XMkZDj2FCWx99k2qbmVlAwjPzUZjwZ7jNta
         0WDHT7dZZPBWXOBVLNYRIXPrk4buNljVGWaCgMNfawVD5AoOzTAeeojyzPIZfNFWAgaB
         7Dtw==
X-Gm-Message-State: ALoCoQkOyh1omFa+ccRz+GuQ88KIpplQa3467zdznRBiT0ZXvkFAxVhYjxDAYMx4ReMTWrBq4u/u
X-Received: by 10.14.246.4 with SMTP id p4mr1461469eer.3.1390927616953;
        Tue, 28 Jan 2014 08:46:56 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.180.189.174 with SMTP id gj14ls1191172wic.6.canary; Tue, 28
 Jan 2014 08:46:55 -0800 (PST)
X-Received: by 10.204.71.5 with SMTP id f5mr3105468bkj.25.1390927615711;
        Tue, 28 Jan 2014 08:46:55 -0800 (PST)
Original-Received: from gondolin.macieira.info (gondolin.macieira.info. [2a01:4f8:d13:f81:21c:14ff:fe01:12a3])
        by mx.google.com with ESMTP id ed5si7971771bkc.122.2014.01.28.08.46.55
        for <std-proposals@isocpp.org>;
        Tue, 28 Jan 2014 08:46:55 -0800 (PST)
Received-SPF: pass (google.com: domain of thiago@macieira.org designates 2a01:4f8:d13:f81:21c:14ff:fe01:12a3 as permitted sender) client-ip=2a01:4f8:d13:f81:21c:14ff:fe01:12a3;
Original-Received: from tjmaciei-mobl2.localnet (unknown [IPv6:2a01:4f8:d13:f81:21c:14ff:fe01:12a3])
	by gondolin.macieira.info (Postfix) with ESMTPSA id E5DD612C002
	for <std-proposals@isocpp.org>; Tue, 28 Jan 2014 08:46:54 -0800 (PST)
User-Agent: KMail/4.12 pre (Linux/3.9.10-100+i915fix.fc17.x86_64; KDE/4.11.60; x86_64; git-8054221; 2013-08-01)
In-Reply-To: <lc8fnb$gfh$1@ger.gmane.org>
X-Original-Sender: thiago@macieira.org
X-Original-Authentication-Results: mx.google.com;       spf=pass (google.com:
 domain of thiago@macieira.org designates 2a01:4f8:d13:f81:21c:14ff:fe01:12a3
 as permitted sender) smtp.mail=thiago@macieira.org
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <http://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <http://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <http://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <http://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:8892
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/8892>


--nextPart1663592.vR6aL1r8oT
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"

On ter=E7a-feira, 28 de janeiro de 2014 09:44:08, Matthew Woehlke wrote=
:
> The worst of that is related to text rendering=B9. If you're excising=
 that
> anyway, it's not an issue. The rest I suspect is either support class=
es
> that should be part of the API anyway (e.g. QImage) or readily ported=

> (e.g. QVector<T> -> std::vector<T>).

> (=B9 for good reason; as mentioned, text rendering, especially when y=
ou
> start getting into localization intricacies, is hard.)

Text rendering and localisation represent probably 80% or more of the i=
nstall=20
size of combined QtCore and QtGui, due to the CLDR and Unicode tables i=
n Qt=20
and in ICU. And then we have external dependencies like fontconfig and =
freetype=20
to get fonts, harfbuzz to get shaping correct, classes like=20
QTextBoundaryFinder to find where to do word-splitting...

This part of the discussion is quite heated. What Michael proposed is t=
o limit=20
the required font and text handling capabilities to what Cairo offers i=
n the=20
toyfont, though implementations would be welcome to do the whole thing.=


> > This is untenable. Native handles are a nice, proven abstraction fo=
r
> > exposing platform-specific functionality without being compelled to=

> > standardize all of those platforms.
>=20
> As I understood it, the point here is that the API should be agnostic=
 to
> the engine. Ideally to the extent that the engine can be changed with=
out
> recompiling code. This is the case with e.g. Qt, which allows swappin=
g
> out the underlying engine via an environment variable.
>=20
> Exposing too much of the underlying guts is an invitation to write
> non-portable code.

Which might be necessary. Not providing the native handles limits the=20=

usefulness to only the API that is provided, no extension possible.=20

Qt provides the native handles for the widgets, for example, and that a=
llows=20
applications like window managers and desktop fixtures to be developed.=
 They'd=20
be impossible without platform-specific code.

PS: the swapping of the engine was removed in Qt 5 because there's only=
 one=20
engine left.

> I've written a number of Qt and/or OpenGL applications, and can't thi=
nk
> of any case in which I've needed to deal directly with e.g. X objects=
..
>
> Per above, this is actively *harmful* to writing portable code and IM=
HO
> should be strongly discouraged. Even on a single platform, it preclud=
es
> (or at least, makes much more difficult) engine agnosticism.

Discouraged, yes. But still necessary: those applications might be few =
and far=20
between, but they exist.

--=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

--nextPart1663592.vR6aL1r8oT
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part.
Content-Transfer-Encoding: 7Bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)

iD8DBQBS5976M/XwBW70U1gRArJQAJsEDy1R+hbsGpcYdtOS2EEtIIOs6ACfSUyq
fXwNHm1Yqmuy/P39V6YArrg=
=nzzd
-----END PGP SIGNATURE-----

--nextPart1663592.vR6aL1r8oT--


.
