10 &aa_font16, AA_NORMAL_MASK | AA_DIM_MASK | AA_BOLD_MASK
14 if (c->mousedriver != NULL) {
15 c->mousedriver->uninit(c);
16 if(c->mousedriverdata) free(c->mousedriverdata);
17 c->mousedriverdata=NULL;
18 c->mousedriver = NULL;
24 if (c->kbddriver != NULL) {
25 if (c->mousedriver != NULL)
27 c->mousedriverdata=NULL;
28 c->kbddriver->uninit(c);
29 if(c->kbddriverdata) free(c->kbddriverdata);
30 c->kbddriverdata=NULL;
38 width = abs(c->params.width);
39 height = abs(c->params.height);
40 c->driver->getsize(c, &width, &height);
41 if (width <= 0 || height <= 0) {
42 printf(
"Invalid buffer sizes!\n");
45 if (width != aa_scrwidth(c) || height != aa_imgheight(c)) {
46 if (c->imagebuffer != NULL)
48 if (c->textbuffer != NULL)
50 if (c->attrbuffer != NULL)
52 c->params.width = width;
53 c->params.height = height;
54 c->imgwidth = width * c->mulx;
55 c->imgheight = height * c->mulx;
56 if ((c->imagebuffer = calloc(1, c->imgwidth * c->imgheight)) == NULL)
58 if ((c->textbuffer = calloc(1, aa_scrwidth(c) * aa_scrheight(c))) == NULL) {
62 memset(c->textbuffer,
' ', c->params.width * c->params.height);
63 if ((c->attrbuffer = calloc(1, c->params.width * c->params.height)) == NULL) {
69 if (!c->driverparams.mmwidth)
70 c->params.mmwidth = 290;
72 c->params.mmwidth = c->driverparams.mmwidth;
73 if (!c->driverparams.mmheight)
74 c->params.mmheight = 215;
76 c->params.mmheight = c->driverparams.mmheight;
77 if (!c->driverparams.minwidth)
78 c->params.minwidth = c->params.width;
80 c->params.minwidth = c->driverparams.minwidth;
81 if (!c->driverparams.minheight)
82 c->params.minheight = c->params.height;
84 c->params.minheight = c->driverparams.minheight;
85 if (!c->driverparams.maxwidth)
86 c->params.maxwidth = c->params.width;
88 c->params.maxwidth = c->driverparams.maxwidth;
89 if (!c->driverparams.maxheight)
90 c->params.maxheight = c->params.height;
92 c->params.maxheight = c->driverparams.maxheight;
98 c = calloc(1,
sizeof(*c));
100 c->mousedriverdata=NULL;
101 c->kbddriverdata=NULL;
105 if (!driver->init(defparams, driverdata,&c->driverparams,&c->driverdata)) {
111 c->mousedriver = NULL;
112 c->params.supported = c->driverparams.supported & defparams->supported;
113 c->params.font = c->driverparams.font;
115 c->params.font = defparams->font;
116 if (!c->params.supported)
117 c->params.supported = c->driverparams.supported;
127 c->parameters = NULL;
128 if (defparams->width)
129 c->params.width = defparams->width;
130 else if (c->driverparams.width)
131 c->params.width = c->driverparams.width;
132 else if (defparams->recwidth)
133 c->params.recwidth = defparams->recwidth;
134 else if (c->driverparams.recwidth)
135 c->params.recwidth = c->driverparams.recwidth;
137 c->params.width = 80;
138 if (defparams->minwidth > c->params.width)
139 c->params.width = defparams->minwidth;
140 if (c->driverparams.minwidth > c->params.width)
141 c->params.width = c->driverparams.minwidth;
142 if (defparams->maxwidth && defparams->maxwidth > c->params.width)
143 c->params.width = defparams->maxwidth;
144 if (c->driverparams.maxwidth && c->driverparams.maxwidth > c->params.width)
145 c->params.width = c->driverparams.maxwidth;
147 if (defparams->height)
148 c->params.height = defparams->height;
149 else if (c->driverparams.height)
150 c->params.height = c->driverparams.height;
151 else if (defparams->recheight)
152 c->params.recheight = defparams->recheight;
153 else if (c->driverparams.recheight)
154 c->params.recheight = c->driverparams.recheight;
156 c->params.height = 25;
157 if (defparams->minheight > c->params.height)
158 c->params.height = defparams->minheight;
159 if (c->driverparams.minheight > c->params.height)
160 c->params.height = c->driverparams.minheight;
161 if (defparams->maxheight && defparams->maxheight > c->params.height)
162 c->params.height = defparams->maxheight;
163 if (c->driverparams.maxheight && c->driverparams.maxheight > c->params.height)
164 c->params.height = c->driverparams.maxheight;
165 c->params.width *= -1;
166 c->params.height *= -1;
167 c->params.dimmul = 5.3;
168 c->params.boldmul = 2.7;
169 if(c->driverparams.dimmul) c->params.dimmul=c->driverparams.dimmul;
170 if(c->driverparams.boldmul) c->params.boldmul=c->driverparams.boldmul;
171 if(defparams->dimmul) c->params.dimmul=defparams->dimmul;
172 if(defparams->boldmul) c->params.boldmul=defparams->boldmul;
173 c->imagebuffer = NULL;
174 c->textbuffer = NULL;
175 c->attrbuffer = NULL;
176 c->resizehandler = NULL;
179 if(c->driverdata!=NULL) free(c->driverdata);
181 printf(
"out of memory\n");
184 if (!aa_validmode(aa_scrwidth(c), aa_scrheight(c), defparams)) {
192 if (c->table != NULL)
194 if (c->filltable != NULL)
196 if (c->parameters != NULL)
200 c->parameters = NULL;
204 c->params.font = font;
207void aa_setsupported(
aa_context * c,
int supported)
209 c->params.supported = c->driverparams.supported & supported;
210 if (!c->params.supported)
211 c->params.supported = c->driverparams.supported;
216 if (c->cursorstate < 0 && c->driver->cursormode)
217 c->driver->cursormode(c, 1);
218 if (c->kbddriver != NULL)
220 c->driver->uninit(c);
222 if (c->imagebuffer != NULL)
223 free(c->imagebuffer);
224 if (c->textbuffer != NULL)
226 if (c->attrbuffer != NULL)
228 if(c->driverdata) free(c->driverdata);