Skip to content

1681-engine / pixel / PixelWindow

Class: PixelWindow ​

Defined in: src/pixel/pixel.ts:369

A grid that stands for one window of a larger picture: it is drawn on in the larger picture's coordinates and keeps only what falls inside [x0, x0 + w) × [y0, y0 + h). A ground painter can paint a crop of a map into one, so the login screen does not paint the whole of two maps to show 17 tiles of each. Every drawing method goes through px/get/inBounds/blend; outline, tint and the whole-grid helpers work in window coordinates.

Extends ​

Constructors ​

Constructor ​

ts
new PixelWindow(
   x0, 
   y0, 
   w, 
   h
): PixelWindow;

Defined in: src/pixel/pixel.ts:370

Parameters ​

ParameterType
x0number
y0number
wnumber
hnumber

Returns ​

PixelWindow

Overrides ​

PixelGrid.constructor

Properties ​

data ​

ts
readonly data: Uint32Array;

Defined in: src/pixel/pixel.ts:95

Inherited from ​

PixelGrid.data


h ​

ts
readonly h: number;

Defined in: src/pixel/pixel.ts:99

Inherited from ​

PixelGrid.h


w ​

ts
readonly w: number;

Defined in: src/pixel/pixel.ts:98

Inherited from ​

PixelGrid.w


x0 ​

ts
readonly x0: number;

Defined in: src/pixel/pixel.ts:371


y0 ​

ts
readonly y0: number;

Defined in: src/pixel/pixel.ts:372

Methods ​

alphaAt() ​

ts
alphaAt(x, y): number;

Defined in: src/pixel/pixel.ts:119

Parameters ​

ParameterType
xnumber
ynumber

Returns ​

number

Inherited from ​

PixelGrid.alphaAt


blend() ​

ts
blend(
   x, 
   y, 
   c
): void;

Defined in: src/pixel/pixel.ts:391

Alpha-blends a color onto an existing pixel.

Parameters ​

ParameterType
xnumber
ynumber
cnumber

Returns ​

void

Overrides ​

PixelGrid.blend


blit() ​

ts
blit(
   src, 
   dx, 
   dy, 
   flipX?
): void;

Defined in: src/pixel/pixel.ts:285

Parameters ​

ParameterTypeDefault value
srcPixelGridundefined
dxnumberundefined
dynumberundefined
flipXbooleanfalse

Returns ​

void

Inherited from ​

PixelGrid.blit


circle() ​

ts
circle(
   cx, 
   cy, 
   r, 
   c
): void;

Defined in: src/pixel/pixel.ts:146

Parameters ​

ParameterType
cxnumber
cynumber
rnumber
cnumber

Returns ​

void

Inherited from ​

PixelGrid.circle


clone() ​

ts
clone(): PixelGrid;

Defined in: src/pixel/pixel.ts:343

Returns ​

PixelGrid

Inherited from ​

PixelGrid.clone


ellipse() ​

ts
ellipse(
   cx, 
   cy, 
   rx, 
   ry, 
   c
): void;

Defined in: src/pixel/pixel.ts:136

Filled ellipse; a pixel is inside when its center lies inside the ellipse.

Parameters ​

ParameterType
cxnumber
cynumber
rxnumber
rynumber
cnumber

Returns ​

void

Inherited from ​

PixelGrid.ellipse


equals() ​

ts
equals(other): boolean;

Defined in: src/pixel/pixel.ts:327

Same size and same pixels.

Parameters ​

ParameterType
otherPixelGrid

Returns ​

boolean

Inherited from ​

PixelGrid.equals


get() ​

ts
get(x, y): number;

Defined in: src/pixel/pixel.ts:387

Parameters ​

ParameterType
xnumber
ynumber

Returns ​

number

Overrides ​

PixelGrid.get


hline() ​

ts
hline(
   x0, 
   x1, 
   y, 
   c
): void;

Defined in: src/pixel/pixel.ts:127

Parameters ​

ParameterType
x0number
x1number
ynumber
cnumber

Returns ​

void

Inherited from ​

PixelGrid.hline


inBounds() ​

ts
inBounds(x, y): boolean;

Defined in: src/pixel/pixel.ts:379

Parameters ​

ParameterType
xnumber
ynumber

Returns ​

boolean

Overrides ​

PixelGrid.inBounds


key() ​

ts
key(): number;

Defined in: src/pixel/pixel.ts:334

Cheap hash of the pixels, for grouping identical frames before comparing them.

Returns ​

number

Inherited from ​

PixelGrid.key


line() ​

ts
line(
   x0, 
   y0, 
   x1, 
   y1, 
   c, 
   thickness?
): void;

Defined in: src/pixel/pixel.ts:158

Parameters ​

ParameterTypeDefault value
x0numberundefined
y0numberundefined
x1numberundefined
y1numberundefined
cnumberundefined
thicknessnumber1

Returns ​

void

Inherited from ​

PixelGrid.line


outline() ​

ts
outline(
   c, 
   diagonal?, 
   width?
): void;

Defined in: src/pixel/pixel.ts:211

Adds width pixels of outline around all opaque pixels, one ring at a time — the same result as calling it width times, but each ring only visits the neighbours of the ring before it instead of the whole grid again. (A pixel next to ring k is always filled by ring k+1, so nothing further back can still be waiting.)

Parameters ​

ParameterTypeDefault value
cnumberundefined
diagonalbooleanfalse
widthnumber1

Returns ​

void

Inherited from ​

PixelGrid.outline


poly() ​

ts
poly(points, c): void;

Defined in: src/pixel/pixel.ts:185

Filled polygon (even-odd scanline on pixel centers).

Parameters ​

ParameterType
points[number, number][]
cnumber

Returns ​

void

Inherited from ​

PixelGrid.poly


px() ​

ts
px(
   x, 
   y, 
   c
): void;

Defined in: src/pixel/pixel.ts:383

Parameters ​

ParameterType
xnumber
ynumber
cnumber

Returns ​

void

Overrides ​

PixelGrid.px


recolor() ​

ts
recolor(from, to): void;

Defined in: src/pixel/pixel.ts:271

Replaces every pixel whose color matches from.

Parameters ​

ParameterType
fromnumber
tonumber

Returns ​

void

Inherited from ​

PixelGrid.recolor


rect() ​

ts
rect(
   x, 
   y, 
   w, 
   h, 
   c
): void;

Defined in: src/pixel/pixel.ts:123

Parameters ​

ParameterType
xnumber
ynumber
wnumber
hnumber
cnumber

Returns ​

void

Inherited from ​

PixelGrid.rect


ring() ​

ts
ring(
   cx, 
   cy, 
   r, 
   thickness, 
   c
): void;

Defined in: src/pixel/pixel.ts:150

Parameters ​

ParameterType
cxnumber
cynumber
rnumber
thicknessnumber
cnumber

Returns ​

void

Inherited from ​

PixelGrid.ring


tint() ​

ts
tint(f, pred): void;

Defined in: src/pixel/pixel.ts:276

Multiplies brightness of opaque pixels matching pred.

Parameters ​

ParameterType
fnumber
pred(x, y) => boolean

Returns ​

void

Inherited from ​

PixelGrid.tint


toCanvas() ​

ts
toCanvas(): HTMLCanvasElement;

Defined in: src/pixel/pixel.ts:349

Returns ​

HTMLCanvasElement

Inherited from ​

PixelGrid.toCanvas


upscaled() ​

ts
upscaled(factor): PixelGrid;

Defined in: src/pixel/pixel.ts:314

The same picture on a grid factor times as fine, each pixel becoming a square block.

Parameters ​

ParameterType
factornumber

Returns ​

PixelGrid

Inherited from ​

PixelGrid.upscaled


vline() ​

ts
vline(
   x, 
   y0, 
   y1, 
   c
): void;

Defined in: src/pixel/pixel.ts:131

Parameters ​

ParameterType
xnumber
y0number
y1number
cnumber

Returns ​

void

Inherited from ​

PixelGrid.vline


from() ​

ts
static from(canvas): PixelGrid;

Defined in: src/pixel/pixel.ts:306

Reads a canvas back into a grid (a PNG layer of the paper doll joining the painted ones).

Parameters ​

ParameterType
canvasHTMLCanvasElement

Returns ​

PixelGrid

Inherited from ​

PixelGrid.from

Released under the MIT License.