paulxstretch/deps/juce/extras/NetworkGraphicsDemo
..
Builds
JuceLibraryCode
Source
CMakeLists.txt
NetworkGraphicsDemo.jucer
README.txt

    JUCE Network graphics demo
    ==========================

This example is an app that we threw together to run as a demo of JUCE on our
booth at CES 2016.

It allows a collection of heterogeneous devices on a local network to collectively
draw parts of a large animated vector graphic image that is being generated and
broadcast by one of the machines (the 'master').

Each 'slave' device can be positioned within the overall canvas so that if you put
all of their displays on a wall next to each other and line things up correctly, they
all form a bigger display. At CES we set up a bunch of machines including a Mac, a
Linux box, a PC, and some tablets and phones running iOS and Android, to show how the
same app can run uniformly across all these platforms.

We wrote a few simple animations to run in this context, mainly around the idea of
flocking bird-type objects, because this creates a nice effect as they fly between
each monitor, which helps to create the illusion of a bigger picture.

Any touchs/mouse-clicks on each slave display are sent back to the master, so that
it can react to these. In our demos we used this to cause the flock to swarm towards
the place that was being touched.

To run it, there's a command line flag "master" that will cause the app to run in
master-mode. Other instances running without this will act as slaves. The master
will open a special window that lets you modify the positions of all the networked
devices by dragging/mouse-wheeling. In this window you can also press cursor
left/right to select the demo to run.

These are some interesting bits of code in here - notably a special
LowLevelGraphicsContext class which allows the content generator to simply
draw to a Graphics object as you normally would, but instead of painting to the
screen, everything that is drawn gets serialised into binary packets and broadcast
over UDP to the slaves, which each render their own part of it.

The content should be easy to hack - have a look in Demos.h. Have fun tweaking it
with your own code and ideas!