OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [services/] [gfx/] [mw/] [v2_0/] [src/] [drivers/] [fb.h] - Blame information for rev 174

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
/*
2
 * Copyright (c) 1999, 2000, 2001 Greg Haerr <greg@censoft.com>
3
 *
4
 * Framebuffer drivers header file for Microwindows Screen Drivers
5
 */
6
 
7
/* Linux framebuffer critical sections*/
8
#if VTSWITCH
9
extern volatile int mwdrawing;
10
#define DRAWON          ++mwdrawing
11
#define DRAWOFF         --mwdrawing
12
#else
13
#define DRAWON
14
#define DRAWOFF
15
#endif
16
 
17
typedef unsigned char *         ADDR8;
18
typedef unsigned short *        ADDR16;
19
typedef unsigned long *         ADDR32;
20
 
21
/* ROP macro for 16 drawing modes*/
22
#define CHECK(f,d)      
23
 
24
/* applyOp w/stored dst*/
25
#define applyOp(op, src, pdst, type)            \
26
{                                               \
27
        type d = (pdst);                        \
28
        switch (op) {                           \
29
        case MWMODE_XOR:                        \
30
                *d ^= (src);                    \
31
                CHECK("XOR", *d);               \
32
                break;                          \
33
        case MWMODE_AND:                        \
34
                *d &= (src);                    \
35
                CHECK("AND", *d);               \
36
                break;                          \
37
        case MWMODE_OR:                         \
38
                *d |= (src);                    \
39
                CHECK("OR", *d);                \
40
                break;                          \
41
        case MWMODE_CLEAR:                      \
42
                *d = 0;                          \
43
                CHECK("CLEAR", *d);             \
44
                break;                          \
45
        case MWMODE_SETTO1:                     \
46
                *d = -1;                        \
47
                CHECK("SETTO1", *d);            \
48
                break;                          \
49
        case MWMODE_EQUIV:                      \
50
                *d = ~(*d ^ (src));             \
51
                CHECK("EQUIV", *d);             \
52
                break;                          \
53
        case MWMODE_NOR:                        \
54
                *d = ~(*d | (src));             \
55
                CHECK("NOR", *d);               \
56
                break;                          \
57
        case MWMODE_NAND:                       \
58
                *d = ~(*d & (src));             \
59
                CHECK("NAND", *d);              \
60
                break;                          \
61
        case MWMODE_INVERT:                     \
62
                *d = ~*d;                       \
63
                CHECK("INVERT", *d);            \
64
                break;                          \
65
        case MWMODE_COPYINVERTED:               \
66
                *d = ~(src);                    \
67
                CHECK("COPYINVERTED", *d);      \
68
                break;                          \
69
        case MWMODE_ORINVERTED:                 \
70
                *d |= ~(src);                   \
71
                CHECK("ORINVERTED", *d);        \
72
                break;                          \
73
        case MWMODE_ANDINVERTED:                \
74
                *d &= ~(src);                   \
75
                CHECK("ANDINVERTED", *d);       \
76
                break;                          \
77
        case MWMODE_ORREVERSE:                  \
78
                *d = ~*d | (src);               \
79
                CHECK("ORREVERSE", *d);         \
80
                break;                          \
81
        case MWMODE_ANDREVERSE:                 \
82
                *d = ~*d & (src);               \
83
                CHECK("ANDREVERSE", *d);        \
84
                break;                          \
85
        case MWMODE_COPY:                       \
86
                *d = (src);                     \
87
                CHECK("COPY", *d);              \
88
                break;                          \
89
        case MWMODE_NOOP:                       \
90
                CHECK("NOOP", *d);              \
91
                break;                          \
92
        }                                       \
93
}
94
 
95
/* applyOp w/return value*/
96
#define DEFINE_applyOpR                         \
97
static inline int applyOpR(op, src, dst)        \
98
{                                               \
99
        switch (op) {                           \
100
        case MWMODE_XOR:                        \
101
                return (src) ^ (dst);           \
102
        case MWMODE_AND:                        \
103
                return (src) & (dst);           \
104
        case MWMODE_OR:                         \
105
                return (src) | (dst);           \
106
        case MWMODE_CLEAR:                      \
107
                return 0;                        \
108
        case MWMODE_SETTO1:                     \
109
                return -1;                      \
110
        case MWMODE_EQUIV:                      \
111
                return ~((src) ^ (dst));        \
112
        case MWMODE_NOR:                        \
113
                return ~((src) | (dst));        \
114
        case MWMODE_NAND:                       \
115
                return ~((src) & (dst));        \
116
        case MWMODE_INVERT:                     \
117
                return ~(dst);                  \
118
        case MWMODE_COPYINVERTED:               \
119
                return ~(src);                  \
120
        case MWMODE_ORINVERTED:                 \
121
                return ~(src) | (dst);          \
122
        case MWMODE_ANDINVERTED:                \
123
                return ~(src) & (dst);          \
124
        case MWMODE_ORREVERSE:                  \
125
                return (src) | ~(dst);          \
126
        case MWMODE_ANDREVERSE:                 \
127
                return (src) & ~(dst);          \
128
        case MWMODE_COPY:                       \
129
                return (src);                   \
130
        case MWMODE_NOOP:                       \
131
        default:                                \
132
                return (dst);                   \
133
        }                                       \
134
}
135
 
136
/* global vars*/
137
extern int      gr_mode;        /* temp kluge*/
138
 
139
/* entry points*/
140
/* scr_fb.c*/
141
void ioctl_getpalette(int start, int len, short *red, short *green,short *blue);
142
void ioctl_setpalette(int start, int len, short *red, short *green,short *blue);
143
 
144
/* genmem.c*/
145
void    gen_fillrect(PSD psd,MWCOORD x1,MWCOORD y1,MWCOORD x2,MWCOORD y2,
146
                MWPIXELVAL c);
147
MWBOOL  set_subdriver(PSD psd, PSUBDRIVER subdriver, MWBOOL init);
148
void    get_subdriver(PSD psd, PSUBDRIVER subdriver);
149
 
150
/* fb.c*/
151
PSUBDRIVER select_fb_subdriver(PSD psd);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.