mirror of
https://github.com/reactos/reactos.git
synced 2024-11-01 12:26:32 +00:00
71 lines
1.1 KiB
C
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
|