diff options
Diffstat (limited to 'demos')
| -rw-r--r-- | demos/3rdparty/boing/gfxconf.h | 40 | ||||
| -rw-r--r-- | demos/3rdparty/boing/main.c | 111 | ||||
| -rw-r--r-- | demos/3rdparty/bubbles/gfxconf.h | 40 | ||||
| -rw-r--r-- | demos/3rdparty/bubbles/main.c | 194 | ||||
| -rw-r--r-- | demos/3rdparty/readme.txt | 10 | 
5 files changed, 0 insertions, 395 deletions
diff --git a/demos/3rdparty/boing/gfxconf.h b/demos/3rdparty/boing/gfxconf.h deleted file mode 100644 index 45b6d7ab..00000000 --- a/demos/3rdparty/boing/gfxconf.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * This file has a different license to the rest of the GFX system. - * You can copy, modify and distribute this file as you see fit. - * You do not need to publish your source modifications to this file. - * The only thing you are not permitted to do is to relicense it - * under a different license. - */ - -#ifndef _GFXCONF_H -#define _GFXCONF_H - -/* GFX sub-systems to turn on */ -#define GFX_USE_GDISP			TRUE -#define GFX_USE_GWIN			FALSE -#define GFX_USE_GEVENT			FALSE -#define GFX_USE_GTIMER			FALSE -#define GFX_USE_GINPUT			FALSE - -/* Features for the GDISP sub-system. */ -#define GDISP_NEED_VALIDATION	        FALSE -#define GDISP_NEED_CLIP			FALSE -#define GDISP_NEED_TEXT			FALSE -#define GDISP_NEED_CIRCLE		FALSE -#define GDISP_NEED_ELLIPSE		FALSE -#define GDISP_NEED_ARC			FALSE -#define GDISP_NEED_SCROLL		FALSE -#define GDISP_NEED_PIXELREAD	        FALSE -#define GDISP_NEED_CONTROL		FALSE -#define GDISP_NEED_MULTITHREAD       	FALSE -#define GDISP_NEED_ASYNC		FALSE -#define GDISP_NEED_MSGAPI		FALSE - -/* Builtin Fonts */ -#define GDISP_INCLUDE_FONT_SMALL        FALSE -#define GDISP_INCLUDE_FONT_LARGER       FALSE -#define GDISP_INCLUDE_FONT_UI1          FALSE -#define GDISP_INCLUDE_FONT_UI2          FALSE -#define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE - -#endif /* _GFXCONF_H */ diff --git a/demos/3rdparty/boing/main.c b/demos/3rdparty/boing/main.c deleted file mode 100644 index a34cd2a9..00000000 --- a/demos/3rdparty/boing/main.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Derived from the 2011 IOCCC submission by peter.eastman@gmail.com - * http://www.ioccc.org/2011/eastman/eastman.c - * -- - * Public Domain -- but you're looking at this for ideas of techniques - * and methods, not trying to cut&paste an entire application, anyway. - * -- - * When you need to blit an entire screenfull of data to an LCD - * display, the basic idea is to exploit the auto-increment feature of - * the display controller when it writes to screen memory. You start - * by resetting the 'cursor' to the 0,0 position, and then stream - * width*height pixels out. - * -- - * Chris Baird,, <cjb@brushtail.apana.org.au> April 2013 - */ - -#include <math.h> -#include "ch.h" -#include "hal.h" -#include "gfx.h" -#include "ssd2119.h" - -#define Lightgrey (HTML2COLOR(0xC0C0C0)) -#define Midgrey (HTML2COLOR(0x606060)) -#define Darkgrey (HTML2COLOR(0x303030)) - - -/* ---------------------------------------------------------------------- */ -/* As of early April 2013, the /gfx extension tries to keep the low-level - * stuff away from our filthy paws. So Code Duplication. - * (Possibly to be replaced with gdispStartStream(), gdispWriteStream() - * and gdispStopStream() in the future.) - */ - -#define GDISP_REG (*((volatile uint16_t *) 0x60000000)) /* DC = 0 */ -#define GDISP_RAM (*((volatile uint16_t *) 0x60100000)) /* DC = 1 */ - -inline void write_index (uint16_t index) { GDISP_REG = index; } -inline void write_data (uint16_t data) { GDISP_RAM = data; } - -#define write_reg(reg, data) { write_index(reg); write_data(data); } - -void reset_cursor (void) -{ -  write_reg (SSD2119_REG_X_RAM_ADDR, 0); -  write_reg (SSD2119_REG_Y_RAM_ADDR, 0); -} - -#define StartStream() { write_index (SSD2119_REG_RAM_DATA); } -#define WriteStream(x) { write_data (x); } -#define StopStream() /* NOP */ - - -/* ---------------------------------------------------------------------- */ - -void main (void) -{ -  uint16_t xx, yy, colour; - -  halInit(); -  chSysInit(); -  gdispInit(); - -  uint16_t width = (uint16_t)gdispGetWidth(); -  uint16_t height = (uint16_t)gdispGetHeight(); - -  float i=height/5+height%2+1, floorstart=height/5-1, spherespin=0.0, -    l=width/2, m=height/4, n=.01*width, o=0.0, rotspeed=0.1, h, f, g; - -  while (TRUE) -    { -      reset_cursor (); -      StartStream (); - -      for (xx=yy=0; -	   h = (m-yy)/i, f=-.3*(g=(l-xx)/i)+.954*h, yy<height; -	   yy += (xx = ++xx%width)==0 ) -	{ -	  if (g*g < 1-h*h)	/* if inside the ball */ -	    if (((int)(9-spherespin+(.954*g+.3*h)/sqrtf(1-f*f))+(int)(2+f*2))%2==0) -	      colour = Red; -	    else -	      colour = White; -	  else -	    { -	      if (xx<floorstart || xx>width-floorstart) -		colour = Darkgrey; /* side wall */ -	      else -		colour = Lightgrey; /* back wall */ - -	      if (yy > height-floorstart) -		if (xx < height-yy || height-yy > width-xx) /* floor */ -		  colour = Darkgrey; -		else -		  colour = Midgrey; - -	      if (g*(g+.6)+.09+h*h < 1) -		colour >>= 1;	/* ball shadow; make it darker  */ -	    } - -	  WriteStream (colour);	/* pixel to the LCD */ -	} - -      StopStream(); -      spherespin += rotspeed; -      m += o; -      o = m > height-1.75*floorstart ? -.04*height : o+.002*height; -      n = (l+=n)<i || l>width-i ? rotspeed=-rotspeed,-n : n; -    } -} - -/* ---------------------------------------------------------------------- */ diff --git a/demos/3rdparty/bubbles/gfxconf.h b/demos/3rdparty/bubbles/gfxconf.h deleted file mode 100644 index 9b1f76a6..00000000 --- a/demos/3rdparty/bubbles/gfxconf.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - * This file has a different license to the rest of the GFX system. - * You can copy, modify and distribute this file as you see fit. - * You do not need to publish your source modifications to this file. - * The only thing you are not permitted to do is to relicense it - * under a different license. - */ - -#ifndef _GFXCONF_H -#define _GFXCONF_H - -/* GFX sub-systems to turn on */ -#define GFX_USE_GDISP			TRUE -#define GFX_USE_GWIN			FALSE -#define GFX_USE_GEVENT			FALSE -#define GFX_USE_GTIMER			FALSE -#define GFX_USE_GINPUT			FALSE - -/* Features for the GDISP sub-system. */ -#define GDISP_NEED_VALIDATION	        FALSE -#define GDISP_NEED_CLIP			FALSE -#define GDISP_NEED_TEXT			FALSE -#define GDISP_NEED_CIRCLE		TRUE -#define GDISP_NEED_ELLIPSE		FALSE -#define GDISP_NEED_ARC			FALSE -#define GDISP_NEED_SCROLL		FALSE -#define GDISP_NEED_PIXELREAD	        FALSE -#define GDISP_NEED_CONTROL		FALSE -#define GDISP_NEED_MULTITHREAD       	FALSE -#define GDISP_NEED_ASYNC		FALSE -#define GDISP_NEED_MSGAPI		FALSE - -/* Builtin Fonts */ -#define GDISP_INCLUDE_FONT_SMALL        FALSE -#define GDISP_INCLUDE_FONT_LARGER       FALSE -#define GDISP_INCLUDE_FONT_UI1          FALSE -#define GDISP_INCLUDE_FONT_UI2          FALSE -#define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE - -#endif /* _GFXCONF_H */ diff --git a/demos/3rdparty/bubbles/main.c b/demos/3rdparty/bubbles/main.c deleted file mode 100644 index 81c5dbe3..00000000 --- a/demos/3rdparty/bubbles/main.c +++ /dev/null @@ -1,194 +0,0 @@ -/* Microcontroller graphic demo by Pascal Piazzalunga - * admin@serveurperso.com http://www.serveurperso.com - * https://www.youtube.com/watch?v=wyuJ-dqS2to - * Ported to stm32/ChibiOS/glx by Chris Baird. - * It's spinnin' bubbles, man. - * -- - * Licencing? Ask Pascal. Let's assume it is freely-distributable and - * modifiable, provided his name is kept in the source. - * -- - * Chris Baird,, <cjb@brushtail.apana.org.au> April 2013 - */ - -#include <math.h> -#include "ch.h" -#include "hal.h" -#include "gfx.h" - - -/* ---------------------------------------------------------------------- */ - -#define N 1024			/* Number of dots */ -#define SCALE 8192 -#define INCREMENT 512		/* INCREMENT = SCALE / sqrt(N) * 2 */ -#define PI2 6.283185307179586476925286766559 - -#define background RGB2COLOR(0,0,0) - -uint16_t width, height; -int16_t sine[SCALE+(SCALE/4)]; -int16_t *cosi = &sine[SCALE/4]; /* cos(x) = sin(x+90d)... */ - - -void initialize (void) -{ -  uint16_t i; - -  /* if you change the SCALE*1.25 back to SCALE, the program will -   * occassionally overrun the cosi array -- however this actually -   * produces some interesting effects as the BUBBLES LOSE CONTROL!!!! -   */ -  for (i = 0; i < SCALE+(SCALE/4); i++) -    //sine[i] = (-SCALE/2) + (int)(sinf(PI2 * i / SCALE) * sinf(PI2 * i / SCALE) * SCALE); -    sine[i] = (int)(sinf(PI2 * i / SCALE) * SCALE); -} - - -void matrix (int16_t xyz[3][N], color_t col[N]) -{ -  static uint32_t t = 0; -  int16_t x = -SCALE, y = -SCALE; -  uint16_t i, s, d; -  uint8_t red,grn,blu; - -#define RED_COLORS (32) -#define GREEN_COLORS (64) -#define BLUE_COLORS (32) - -  for (i = 0; i < N; i++) -    { -      xyz[0][i] = x; -      xyz[1][i] = y; - -      d = sqrtf(x * x + y * y);	/* originally a fastsqrt() call */ -      s = sine[(t * 30) % SCALE] + SCALE; - -      xyz[2][i] = sine[(d + s) % SCALE] * sine[(t * 10) % SCALE] / SCALE / 2; - -      red = (cosi[xyz[2][i] + SCALE / 2] + SCALE) * -	(RED_COLORS - 1) / SCALE / 2; -      grn = (cosi[(xyz[2][i] + SCALE / 2 + 2 * SCALE / 3) % SCALE] + SCALE) * -	(GREEN_COLORS - 1) / SCALE / 2; -      blu = (cosi[(xyz[2][i] + SCALE / 2 + SCALE / 3) % SCALE] + SCALE) * -	(BLUE_COLORS - 1) / SCALE / 2; -      col[i] = ((red << 11) + (grn << 5) + blu); - -      x += INCREMENT; - -      if (x >= SCALE) x = -SCALE, y += INCREMENT; -    } -  t++; -} - - -void rotate (int16_t xyz[3][N], uint16_t angleX, uint16_t angleY, uint16_t angleZ) -{ -  uint16_t i; -  int16_t tmpX, tmpY; -  int16_t sinx = sine[angleX], cosx = cosi[angleX]; -  int16_t siny = sine[angleY], cosy = cosi[angleY]; -  int16_t sinz = sine[angleZ], cosz = cosi[angleZ]; - -  for (i = 0; i < N; i++) -    { -      tmpX      = (xyz[0][i] * cosx - xyz[2][i] * sinx) / SCALE; -      xyz[2][i] = (xyz[0][i] * sinx + xyz[2][i] * cosx) / SCALE; -      xyz[0][i] = tmpX; - -      tmpY      = (xyz[1][i] * cosy - xyz[2][i] * siny) / SCALE; -      xyz[2][i] = (xyz[1][i] * siny + xyz[2][i] * cosy) / SCALE; -      xyz[1][i] = tmpY; - -      tmpX      = (xyz[0][i] * cosz - xyz[1][i] * sinz) / SCALE; -      xyz[1][i] = (xyz[0][i] * sinz + xyz[1][i] * cosz) / SCALE; -      xyz[0][i] = tmpX; -    } -} - - -void draw(int16_t xyz[3][N], color_t col[N]) -{ -  static uint16_t oldProjX[N] = {0}; -  static uint16_t oldProjY[N] = {0}; -  static uint8_t oldDotSize[N] = {0}; -  uint16_t i, projX, projY, projZ, dotSize; - -  for (i = 0; i < N; i++) -    { -      projZ = SCALE - (xyz[2][i] + SCALE) / 4; -      projX = width / 2 + (xyz[0][i] * projZ / SCALE) / 25; -      projY = height / 2 + (xyz[1][i] * projZ / SCALE) / 25; -      dotSize = 3 - (xyz[2][i] + SCALE) * 2 / SCALE; - -      gdispDrawCircle (oldProjX[i], oldProjY[i], oldDotSize[i], background); - -      if (projX > dotSize && -	  projY > dotSize && -	  projX < width - dotSize && -	  projY < height - dotSize) -	{ -	  gdispDrawCircle (projX, projY, dotSize, col[i]); -	  oldProjX[i] = projX; -	  oldProjY[i] = projY; -	  oldDotSize[i] = dotSize; -	} -    } -} - - -/* ---------------------------------------------------------------------- */ - -int16_t angleX = 0, angleY = 0, angleZ = 0; -int16_t speedX = 0, speedY = 0, speedZ = 0; - -int16_t xyz[3][N]; -color_t col[N]; - - -int main (void) -{ -  int pass = 0; - -  halInit(); -  chSysInit(); -  gdispInit(); - -  chThdSleepMilliseconds (10); -  gdispClear (background); /* glitches.. */ -  chThdSleepMilliseconds (10); -  gdispClear (background);  /* glitches.. */ -  chThdSleepMilliseconds (10); -  gdispClear (background);  /* glitches.. */ - -  width = (uint16_t)gdispGetWidth(); -  height = (uint16_t)gdispGetHeight(); - -  initialize(); - -  for (;;) -    { -      matrix(xyz, col); -      rotate(xyz, angleX, angleY, angleZ); -      draw(xyz, col); - -      angleX += speedX; -      angleY += speedY; -      angleZ += speedZ; - -      if (pass > 400) speedY = 1; -      if (pass > 800) speedX = 1; -      if (pass > 1200) speedZ = 1; -      pass++; - -      if (angleX >= SCALE) angleX -= SCALE; -      else if (angleX < 0) angleX += SCALE; - -      if (angleY >= SCALE) angleY -= SCALE; -      else if (angleY < 0) angleY += SCALE; - -      if (angleZ >= SCALE) angleZ -= SCALE; -      else if (angleZ < 0) angleZ += SCALE; -    } -} - -/* ---------------------------------------------------------------------- */ diff --git a/demos/3rdparty/readme.txt b/demos/3rdparty/readme.txt deleted file mode 100644 index 3f97204a..00000000 --- a/demos/3rdparty/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -In this directory, you can find different demos showing how to use ChibiOS/GFX. -The demos in these directories are contributions from users of the ChibiOS/GFX -project and come from different sources. Therefore, the source files of these -demos come with different licenses which can be found on top of the cor- -responding files. -Since these files are not part of the ChibiOS/GFX project, no support for these -demos is provided. And as with all software which can be found in the /demos -directory, use on your own risk. There's no warranty of the correctness -and function of the demos provided. -  | 
