reactos/rosapps/applications/screensavers/matrix/matrix.h
Colin Finck 646ada92cc Move cylfrac, matrix, scrmsave and starfield to rosapps as proposed on the mailing list. New screensavers should only go there now.
I created an "applications/screensavers" directory for that, eventually rosapps should get a similar directory structure to reactos.

Also changed the appropriate parts in reactos.dff.

svn path=/trunk/; revision=29961
2007-10-29 21:30:02 +00:00

70 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