• Stars
    star
    217
  • Rank 182,446 (Top 4 %)
  • Language
    C
  • License
    MIT License
  • Created about 11 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Some examples using the DispmanX API on the Raspberry Pi

Dispmanx

There are a number of APIs available for the Raspberry Pi that can make use of the computers GPU. These include OpenMAX, Open GL ES(1 and 2) and OpenVG. The raspberrypi/firmware repository has short examples for these and other APIs. They can be found in /opt/vc/src/hello_pi/ on the Raspbian 'wheezy' image. Among these examples is a program called hello_dispmanx. It is a very small example of the Dispmanx windowing system. Apart from this:-

https://github.com/raspberrypi/firmware/tree/master/opt/vc/src/hello_pi/hello_dispmanx

example, there is very little documentation available for this API. There are snippets of information on the Raspberry Pi forum, but I have not found a single place with detailed information on DispmanX. Hopefully these programs can be used as a starting point for anyone wanting to make use of DispmanX.

The programs demonstrate layers with the following types: 4BPP (4 bit indexed), 8BPP (8 bit indexed), RGB565 (16 bit), RGB888 (24 bit), RGBA16 (16 bit with transparency) and RGBA32 (32 bit with transparency)

test_pattern

This test pattern should be familiar to anyone who has used the Raspberry Pi. It is the same four colour square displayed when the Raspberry Pi boots.

rgb_triangle

Displays a triangle in a layer with red, green and blue gradients starting at each corner respectively. Blends to grey in the center. Demonstrates changing size of source and destination rectangles.

life

Conway's game of life. Demonstrates double buffering.

worms

The program raspiworms uses a single 16 or 32 bit RGBA layer to display a number of coloured worms on the screen of the Raspberry Pi.

pngview

Load a png image file and display it as a Dispmanx layer.

spriteview

Loads a sprite (png) image file and displays it as an animation.

game

Demonstrates a seamless background image that can be scolled in any direction. As well as animated sprites.

mandelbrot

The famous (in the 1990s) Mandelbrot set.

radar_sweep

An animation of a 'radar sweep' using 16 bit (rgb) palette animation.

radar_sweep_alpha

An animation of a 'radar sweep' using 32 bit (rgba) palette animation.

offscreen

An example of using an offscreen display to resize an image.

common

Code that may be common to some of the demonstration programs is in this folder.

building

If you type make in the top level directory, the make file will build all the different programs in this repository. Each program has its own make file, so you can build them individually if you wish.

You will need to install the latest version of libpng-dev before you build the program. On Raspbian

More Repositories

1

raspi2png

Utility to take a snapshot of the Raspberry Pi screen and save it as a PNG file
C
212
star
2

raspi2fb

Program to copy the Raspberry Pi display to a secondary framebuffer.
C
94
star
3

fb2png

Save Linux frambuffer (/dev/fb0) to a PNG image file.
C
47
star
4

raspi_serialnumber

example C code to retrieve the Raspberry Pi Serial Number
C
41
star
5

raspi2raspi

Program to copy from one Raspberry Pi display to another Raspberry Pi display
C
34
star
6

raspberry_pi_revision

C code to decode the Revision: field of /proc/cpuinfo on the Raspberry Pi
C
32
star
7

dmxwebcam

A webcam (v4l2) viewer for the Raspberry Pi console.
C
21
star
8

libSSD1306

Linux C++ library to drive an SSD1306 128x64 Oled display with I2C interface
C++
20
star
9

raspifb16

Framebuffer utilities for the Raspberry Pi
C++
18
star
10

sdl_image_example

Example C code to display an image on the framebuffer using the SDL and SDL_Image libraries.
C
7
star
11

raspibar

Raspberry Pi Blank and Run is a program that puts a blank layer in front of the Raspberry Pi framebuffer and runs a program
C
3
star
12

picosys-boxworld

Boxworld/Sokoban for the Pimoroni Picosystem
C++
3
star
13

AnalogButtonManager

Arduino library to manage button multiplexed on a single analog input using different resistances
C
2
star
14

intervalometer

Arduino sketch for a camera intervalometer (requires LCD shield compatible with the LiquidCrystal library).
C++
2
star
15

ogsfb32

Odroid Super Go - 32 Bit Framebuffer C++
C++
2
star
16

picosys-life

Conway's Game of Life for the Pimoronia Picosystem
C++
2
star
17

print_image

Python script to print an image to a Linux terminal
Python
2
star
18

showimage

A Qt based simple image viewer
C++
2
star
19

drmfb32

A C++ library and code for using the KMS/DRM 32 bit framebuffer
C++
2
star
20

picosys-15-puzzle

15 Puzzle for the Pimoroni Picosystem
C++
2
star
21

AndrewFromMelbourne

Config files for my GitHub profile.
1
star
22

LcdColumnGraph

Arduino library for using custom characters in the LiquidCrystal library to create column graphs
C
1
star
23

IntervalTimerManager

Arduino library to manager multiple interval timer objects
C
1
star
24

LcdRowSlider

Arduino library for using custom characters in the LiquidCrystal library to create a slider.
C
1
star
25

raspimztx

Code to drive a MZTX-PI-EXT2.2 LCD display
C
1
star
26

LcdRowGraph

Arduino library for using custom characters in the LiquidCrystal library to create row graphs
C
1
star
27

raspi-device-tree

Extra device tree files for the Raspberry Pi
Makefile
1
star
28

swiftbar-bom

A Swiftbar plugin to retreive and display the current weather from the Bureau of Meteorology
Python
1
star
29

libHD44780Lcd

Linux C++ library to drive an HD44780 LCD with I2C interface
C++
1
star