File: liferender.cpp

package info (click to toggle)
golly 3.3-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 20,176 kB
  • sloc: cpp: 72,638; ansic: 25,919; python: 7,921; sh: 4,245; objc: 3,721; java: 2,781; xml: 1,362; makefile: 530; javascript: 279; perl: 69
file content (31 lines) | stat: -rw-r--r-- 1,135 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// This file is part of Golly.
// See docs/License.html for the copyright notice.

#include "liferender.h"
#include "util.h"
liferender::~liferender() {}
void liferender::pixblit(int x, int y, int w, int h, unsigned char* pm, int pmscale) {
   lifefatal("pixblit not implemented") ;
}
void liferender::getcolors(unsigned char** r, unsigned char** g, unsigned char** b,
                                   unsigned char* dead_alpha, unsigned char* live_alpha) {
   lifefatal("getcolors not implemented") ;
}
void liferender::stateblit(int x, int y, int w, int h, unsigned char* pm) {
   lifefatal("stateblit not implemented") ;
}
void staterender::stateblit(int x, int y, int w, int h, unsigned char* pm) {
   int ymin = y < 0 ? 0 : y ;
   int ymax = vh < y+h ? vh-1 : y+h-1 ;
   int xmin = x < 0 ? 0 : x ;
   int xmax = vw < x+w ? vw-1 : x+w-1 ;
   if (ymax < ymin || xmax < xmin)
      return ;
   int nb = xmax - xmin + 1 ;
   for (int yy=ymin; yy<=ymax; yy++) {
      unsigned char *rp = pm + (yy - y) * w + (xmin - x) ;
      unsigned char *wp = buf + yy * vw + xmin ;
      for (int i=0; i<nb; i++)
         *wp++ = *rp++ ;
   }
}