Some initial notes (was: 2D graphics library effort)

220 views
Skip to first unread message

Herb Sutter

unread,
Aug 27, 2013, 8:44:05 AM8/27/13
to grap...@isocpp.org

Now that people have had a chance to subscribe to this new list, let me repost my original note for background:

 

 

From: Herb Sutter [mailto:hsu...@microsoft.com]
Sent: Saturday, August 24, 2013 10:21 AM
To: c++std-...@accu.org
Subject: [c++std-lib-ext-227] 2D graphics library effort

 

In the past we’ve talked on and off about having a portable “simple GUI” for C++, but the efforts never seemed to get off the ground.

 

Over the past week there’s been a groundswell of interest and support for this again on a Microsoft-centered C++ group that includes people who also use other platforms. In that email discussion, it turned out that several of us have already been thinking along the same lines -- that a sweet spot seemed to be 2D graphics/text with layers and planes, as simple and useful level of graphics that would give us something to teach that was more interesting and capable than just VT100-era console I/O, while also avoiding attempting an all-singing/all-dancing “portable GUI big-F Framework” which was generally viewed as undesirable and/or infeasible.

 

I arranged a quick conference call for interested people on that list, which was held yesterday. About a dozen experts attended, several of whom were already authors/maintainers of 2D C++ graphics libraries (see below), and about half a dozen expressed serious interest in spending time to put together a proposal and a prototype. Here are my notes, below, from yesterday's conference call, including a new discussion group I’ve created for this (grap...@isocpp.org).

 

If you are interested in joining the discussion, to participate or just to lurk, please join the grap...@isocpp.org group below. If we have sufficient interest, which it seems like we way, I’ll work with Jeffrey to see if he prefers to spin up an SG that will report to LEWG, or keep the work in LEWG directly.

 

Thanks,

Herb

 

 

From: Herb Sutter
Sent: ‎Saturday‎, ‎August‎ ‎24‎, ‎2013 ‎12‎:‎28‎ ‎PM
To: C++ MVP List List

 

Hi everyone, here are my notes from yesterday’s call. Thanks again for your interest and offers of help, and thanks again to Eric for setting up the call!

 

One of my action items was to create a DL. Here is the information for grap...@isocpp.org :

For simplicity I’m going to leave it public and unmoderated until the spam starts. This way it’s initially easier to join, post, etc.

 

If you know of other experts who may be interested, please forward this email and encourage them to join the DL. Per one of my action items below, I'll also forward this to WG21 to see who may be interested in participating.

 

Thanks, and have a good weekend,


Herb

 

 

 

Basic requirements and contemplated scope

  • Modern C++11/14 API.
  • 2D graphics + text + planes. It shouldn't aim to be all-encompassing like a big-F Framework, but should leave the door open to: (a) a related 3D TS; and (b) using this as a 2D HUD layer over a 3D engine.
  • Immediate mode for v1. A future version could consider retained mode, but that's an easy scope cut for v1 because it’s more work and has more divergence of potential API design approaches.
  • Plus a sprite/particle/”input” layer on top. This would be not a full retained mode, but would provide some support for sprites (maybe frame animation), collisions/input (e.g., single/multi-point click/touch?), particle generators, and probably basic controls/buttons, on top of the immediate layer.
  • Optional default game loop. We want to provide a default game loop people can use in examples or to get up and running, but its use is optional and people can write their own.
  • No audio. Audio should probably be a separate but related TS.
  • native_handle: The TS should be implementable on at least D2D/D3D and OpenGL(ES?), and provide a native_handle as a sufficient gateway to platform-specific code.
  • Asset loading/construction hook. As with the game loop, we want to provide a simple default way to inline load an asset from a file, but also an alternative extensible way to plug into whatever asset system is being used (maybe just 'load from memory' suffices to cover this).

 

Existing art: Libraries and people to coordinate with

 

Next steps (more action items):

  • Herb: Create a DL (done, see above)
  • Herb: Ping/notify WG21 members
  • Herb: Probably appoint a Study Group  -- we seem to have enough people interested in investing time on this (at least four on the call: Kenny K, Tom K, Michael M, Jason Z) plus a few from WG21 (depends on response from WG21 and others -- need critical mass, but it seems likely we’ll get it)

 

Klaim - Joël Lamotte

unread,
Aug 27, 2013, 10:29:50 AM8/27/13
to grap...@isocpp.org
Thanks Herb.

As a user of several of the related libraries, I hope to help at least by giving feedback.

Joel Lamotte
Reply all
Reply to author
Forward
0 new messages