reactos/modules/rosapps/applications/screensavers/matrix/matrix.h

71 lines
1.1 KiB
C

#ifndef MATRIX_INCLUDED
#define MATRIX_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
//
// Top BYTE of each glyph is used as flags
// (redraw state, intensity etc)
//
// Bottom BYTE of each glyph is the character value
//
// Bit: 15 14 13-8 | 7-0
//
// [Redraw][Blank][Intensity] [Glyph]
//
typedef unsigned short GLYPH;
#define GLYPH_REDRAW 0x8000
#define GLYPH_BLANK 0x4000
//
// The "matrix" is basically an array of these
// column structures, positioned side-by-side
//
typedef struct
{
BOOL state;
int countdown;
BOOL started;
int runlen;
int blippos;
int bliplen;
int length;
GLYPH *glyph;
} MATRIX_COLUMN;
typedef struct
{
int width;
int height;
int numcols;
int numrows;
// bitmap containing glyphs.
HDC hdcBitmap;
HBITMAP hbmBitmap;
MATRIX_MESSAGE *message;
MATRIX_COLUMN column[1];
} MATRIX;
GLYPH RandomGlyph(int intensity);
void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph);
HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect);
void InitScreenSaveClass();
#ifdef __cplusplus
}
#endif
#endif