Changeset 810 for libcaca/trunk/caca
- Timestamp:
- Apr 18, 2006, 2:59:07 PM (15 years ago)
- Location:
- libcaca/trunk/caca
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca/caca.c
r773 r810 32 32 static int caca_init_driver(caca_t *kk); 33 33 34 /** \brief Attach a caca graphical context to a cucul backend context.34 /** \brief Attach a caca graphical context to a cucul canvas. 35 35 * 36 36 * Create a graphical context using device-dependent features (ncurses for … … 39 39 * then be displayed by the libcaca driver. 40 40 * 41 * \param qq The cucul backend context.41 * \param c The cucul cavas. 42 42 * \return The caca graphical context or NULL if an error occurred. 43 43 */ 44 caca_t * caca_attach(cucul_ t * qq)44 caca_t * caca_attach(cucul_canvas_t * c) 45 45 { 46 46 caca_t *kk = malloc(sizeof(caca_t)); 47 47 48 kk-> qq = qq;48 kk->c = c; 49 49 50 50 if(caca_init_driver(kk)) … … 61 61 62 62 /* Attached! */ 63 kk-> qq->refcount++;63 kk->c->refcount++; 64 64 65 65 /* Graphics stuff */ … … 84 84 85 85 /* Mouse position */ 86 kk->mouse.x = kk-> qq->width / 2;87 kk->mouse.y = kk-> qq->height / 2;86 kk->mouse.x = kk->c->width / 2; 87 kk->mouse.y = kk->c->height / 2; 88 88 89 89 /* Resize events */ … … 104 104 { 105 105 kk->drv.end_graphics(kk); 106 kk-> qq->refcount--;106 kk->c->refcount--; 107 107 free(kk); 108 108 } -
libcaca/trunk/caca/caca.h
r799 r810 101 101 * \li \b CACA_EVENT_NONE: no other field is valid. 102 102 * 103 * \li \b CACA_EVENT_KEY_PRESS, \b CACA_EVENT_KEY_RELEASE: the \e data.key.c 103 * \li \b CACA_EVENT_KEY_PRESS, \b CACA_EVENT_KEY_RELEASE: the \e data.key.ch 104 104 * field is valid and contains either the ASCII value for the key, or 105 105 * an \e enum \e caca_key value. If the value is a printable ASCII … … 147 147 struct { unsigned int x, y, button; } mouse; 148 148 struct { unsigned int w, h; } resize; 149 struct { unsigned int c ; unsigned long int ucs4; char utf8[8]; } key;149 struct { unsigned int ch; unsigned long int ucs4; char utf8[8]; } key; 150 150 } data; 151 151 }; … … 204 204 * 205 205 * @{ */ 206 caca_t * caca_attach(cucul_ t *qq);207 void caca_detach(caca_t * kk);208 void caca_set_delay(caca_t * kk, unsigned int);209 void caca_display(caca_t * kk);210 unsigned int caca_get_rendertime(caca_t * kk);211 unsigned int caca_get_window_width(caca_t * kk);212 unsigned int caca_get_window_height(caca_t * kk);213 int caca_set_window_title(caca_t * kk, char const *);206 caca_t * caca_attach(cucul_canvas_t *); 207 void caca_detach(caca_t *); 208 void caca_set_delay(caca_t *, unsigned int); 209 void caca_display(caca_t *); 210 unsigned int caca_get_rendertime(caca_t *); 211 unsigned int caca_get_window_width(caca_t *); 212 unsigned int caca_get_window_height(caca_t *); 213 int caca_set_window_title(caca_t *, char const *); 214 214 /* @} */ 215 215 … … 220 220 * 221 221 * @{ */ 222 int caca_get_event(caca_t * kk, unsigned int, caca_event_t *, int);223 unsigned int caca_get_mouse_x(caca_t * kk);224 unsigned int caca_get_mouse_y(caca_t * kk);225 void caca_set_mouse(caca_t * kk, int);222 int caca_get_event(caca_t *, unsigned int, caca_event_t *, int); 223 unsigned int caca_get_mouse_x(caca_t *); 224 unsigned int caca_get_mouse_y(caca_t *); 225 void caca_set_mouse(caca_t *, int); 226 226 /* @} */ 227 227 -
libcaca/trunk/caca/caca_internals.h
r777 r810 94 94 { 95 95 /* A link to our cucul canvas */ 96 cucul_ t *qq;96 cucul_canvas_t *c; 97 97 98 98 /* Device-specific functions */ -
libcaca/trunk/caca/driver_conio.c
r777 r810 57 57 /* FIXME */ 58 58 # endif 59 _cucul_set_size(kk-> qq, kk->drv.p->ti.screenwidth,60 59 _cucul_set_size(kk->c, kk->drv.p->ti.screenwidth, 60 kk->drv.p->ti.screenheight); 61 61 return 0; 62 62 } … … 67 67 textcolor((enum COLORS)WHITE); 68 68 textbackground((enum COLORS)BLACK); 69 gotoxy(kk-> qq->width, kk->qq->height);69 gotoxy(kk->c->width, kk->c->height); 70 70 cputs("\r\n"); 71 71 _setcursortype(_NORMALCURSOR); … … 85 85 { 86 86 /* Fallback to a 6x10 font */ 87 return kk-> qq->width * 6;87 return kk->c->width * 6; 88 88 } 89 89 … … 91 91 { 92 92 /* Fallback to a 6x10 font */ 93 return kk-> qq->height * 10;93 return kk->c->height * 10; 94 94 } 95 95 … … 97 97 { 98 98 char *screen = kk->drv.p->screen; 99 uint32_t *attr = kk-> qq->attr;100 uint32_t *chars = kk-> qq->chars;99 uint32_t *attr = kk->c->attr; 100 uint32_t *chars = kk->c->chars; 101 101 int n; 102 102 103 for(n = kk-> qq->height * kk->qq->width; n--; )103 for(n = kk->c->height * kk->c->width; n--; ) 104 104 { 105 105 *screen++ = _cucul_utf32_to_cp437(*chars++); … … 116 116 { 117 117 /* We know nothing about our window */ 118 kk->resize.w = kk-> qq->width;119 kk->resize.h = kk-> qq->height;118 kk->resize.w = kk->c->width; 119 kk->resize.h = kk->c->height; 120 120 } 121 121 … … 134 134 135 135 ev->type = CACA_EVENT_KEY_PRESS; 136 ev->data.key.c = ch;136 ev->data.key.ch = ch; 137 137 ev->data.key.ucs4 = (uint32_t)ch; 138 138 ev->data.key.utf8[0] = ch; -
libcaca/trunk/caca/driver_gl.c
r799 r810 97 97 98 98 if(width && height) 99 _cucul_set_size(kk-> qq, width, height);99 _cucul_set_size(kk->c, width, height); 100 100 101 101 kk->drv.p->font_width = 9; 102 102 kk->drv.p->font_height = 15; 103 103 104 kk->drv.p->width = kk-> qq->width * kk->drv.p->font_width;105 kk->drv.p->height = kk-> qq->height * kk->drv.p->font_height;104 kk->drv.p->width = kk->c->width * kk->drv.p->font_width; 105 kk->drv.p->height = kk->c->height * kk->drv.p->font_height; 106 106 107 107 #ifdef HAVE_GLUTCLOSEFUNC … … 228 228 for(y = 0; y < kk->drv.p->height; y += kk->drv.p->font_height) 229 229 { 230 uint32_t *attr = kk-> qq->attr + line * kk->qq->width;230 uint32_t *attr = kk->c->attr + line * kk->c->width; 231 231 232 232 for(x = 0; x < kk->drv.p->width; x += kk->drv.p->font_width) … … 257 257 for(y = 0; y < kk->drv.p->height; y += kk->drv.p->font_height) 258 258 { 259 uint32_t *attr = kk-> qq->attr + line * kk->qq->width;260 uint32_t *chars = kk-> qq->chars + line * kk->qq->width;259 uint32_t *attr = kk->c->attr + line * kk->c->width; 260 uint32_t *chars = kk->c->chars + line * kk->c->width; 261 261 262 262 for(x = 0; x < kk->drv.p->width; x += kk->drv.p->font_width) … … 334 334 { 335 335 ev->type = CACA_EVENT_RESIZE; 336 ev->data.resize.w = kk-> qq->width;337 ev->data.resize.h = kk-> qq->height;336 ev->data.resize.w = kk->c->width; 337 ev->data.resize.h = kk->c->height; 338 338 return 1; 339 339 } … … 360 360 { 361 361 ev->type = CACA_EVENT_KEY_PRESS; 362 ev->data.key.c = kk->drv.p->key;362 ev->data.key.ch = kk->drv.p->key; 363 363 ev->data.key.ucs4 = (uint32_t)kk->drv.p->key; 364 364 ev->data.key.utf8[0] = kk->drv.p->key; … … 372 372 switch(kk->drv.p->special_key) 373 373 { 374 case GLUT_KEY_F1 : ev->data.key.c = CACA_KEY_F1; break;375 case GLUT_KEY_F2 : ev->data.key.c = CACA_KEY_F2; break;376 case GLUT_KEY_F3 : ev->data.key.c = CACA_KEY_F3; break;377 case GLUT_KEY_F4 : ev->data.key.c = CACA_KEY_F4; break;378 case GLUT_KEY_F5 : ev->data.key.c = CACA_KEY_F5; break;379 case GLUT_KEY_F6 : ev->data.key.c = CACA_KEY_F6; break;380 case GLUT_KEY_F7 : ev->data.key.c = CACA_KEY_F7; break;381 case GLUT_KEY_F8 : ev->data.key.c = CACA_KEY_F8; break;382 case GLUT_KEY_F9 : ev->data.key.c = CACA_KEY_F9; break;383 case GLUT_KEY_F10: ev->data.key.c = CACA_KEY_F10; break;384 case GLUT_KEY_F11: ev->data.key.c = CACA_KEY_F11; break;385 case GLUT_KEY_F12: ev->data.key.c = CACA_KEY_F12; break;386 case GLUT_KEY_LEFT : ev->data.key.c = CACA_KEY_LEFT; break;387 case GLUT_KEY_RIGHT: ev->data.key.c = CACA_KEY_RIGHT; break;388 case GLUT_KEY_UP : ev->data.key.c = CACA_KEY_UP; break;389 case GLUT_KEY_DOWN : ev->data.key.c = CACA_KEY_DOWN; break;374 case GLUT_KEY_F1 : ev->data.key.ch = CACA_KEY_F1; break; 375 case GLUT_KEY_F2 : ev->data.key.ch = CACA_KEY_F2; break; 376 case GLUT_KEY_F3 : ev->data.key.ch = CACA_KEY_F3; break; 377 case GLUT_KEY_F4 : ev->data.key.ch = CACA_KEY_F4; break; 378 case GLUT_KEY_F5 : ev->data.key.ch = CACA_KEY_F5; break; 379 case GLUT_KEY_F6 : ev->data.key.ch = CACA_KEY_F6; break; 380 case GLUT_KEY_F7 : ev->data.key.ch = CACA_KEY_F7; break; 381 case GLUT_KEY_F8 : ev->data.key.ch = CACA_KEY_F8; break; 382 case GLUT_KEY_F9 : ev->data.key.ch = CACA_KEY_F9; break; 383 case GLUT_KEY_F10: ev->data.key.ch = CACA_KEY_F10; break; 384 case GLUT_KEY_F11: ev->data.key.ch = CACA_KEY_F11; break; 385 case GLUT_KEY_F12: ev->data.key.ch = CACA_KEY_F12; break; 386 case GLUT_KEY_LEFT : ev->data.key.ch = CACA_KEY_LEFT; break; 387 case GLUT_KEY_RIGHT: ev->data.key.ch = CACA_KEY_RIGHT; break; 388 case GLUT_KEY_UP : ev->data.key.ch = CACA_KEY_UP; break; 389 case GLUT_KEY_DOWN : ev->data.key.ch = CACA_KEY_DOWN; break; 390 390 default: ev->type = CACA_EVENT_NONE; return 0; 391 391 } -
libcaca/trunk/caca/driver_ncurses.c
r777 r810 152 152 } 153 153 154 _cucul_set_size(kk-> qq, COLS, LINES);154 _cucul_set_size(kk->c, COLS, LINES); 155 155 156 156 return 0; … … 177 177 { 178 178 /* Fallback to a 6x10 font */ 179 return kk-> qq->width * 6;179 return kk->c->width * 6; 180 180 } 181 181 … … 183 183 { 184 184 /* Fallback to a 6x10 font */ 185 return kk-> qq->height * 10;185 return kk->c->height * 10; 186 186 } 187 187 … … 189 189 { 190 190 int x, y; 191 uint32_t *attr = kk-> qq->attr;192 uint32_t *chars = kk-> qq->chars;193 for(y = 0; y < (int)kk-> qq->height; y++)191 uint32_t *attr = kk->c->attr; 192 uint32_t *chars = kk->c->chars; 193 for(y = 0; y < (int)kk->c->height; y++) 194 194 { 195 195 move(y, 0); 196 for(x = kk-> qq->width; x--; )196 for(x = kk->c->width; x--; ) 197 197 { 198 198 attrset(kk->drv.p->attr[_cucul_argb32_to_ansi8(*attr++)]); … … 221 221 222 222 /* Fallback */ 223 kk->resize.w = kk-> qq->width;224 kk->resize.h = kk-> qq->height;223 kk->resize.w = kk->c->width; 224 kk->resize.h = kk->c->height; 225 225 } 226 226 … … 239 239 { 240 240 ev->type = CACA_EVENT_KEY_PRESS; 241 ev->data.key.c = intkey;241 ev->data.key.ch = intkey; 242 242 return 1; 243 243 } … … 397 397 switch(intkey) 398 398 { 399 case KEY_UP: ev->data.key.c = CACA_KEY_UP; break;400 case KEY_DOWN: ev->data.key.c = CACA_KEY_DOWN; break;401 case KEY_LEFT: ev->data.key.c = CACA_KEY_LEFT; break;402 case KEY_RIGHT: ev->data.key.c = CACA_KEY_RIGHT; break;403 404 case KEY_IC: ev->data.key.c = CACA_KEY_INSERT; break;405 case KEY_DC: ev->data.key.c = CACA_KEY_DELETE; break;406 case KEY_HOME: ev->data.key.c = CACA_KEY_HOME; break;407 case KEY_END: ev->data.key.c = CACA_KEY_END; break;408 case KEY_PPAGE: ev->data.key.c = CACA_KEY_PAGEUP; break;409 case KEY_NPAGE: ev->data.key.c = CACA_KEY_PAGEDOWN; break;410 411 case KEY_F(1): ev->data.key.c = CACA_KEY_F1; break;412 case KEY_F(2): ev->data.key.c = CACA_KEY_F2; break;413 case KEY_F(3): ev->data.key.c = CACA_KEY_F3; break;414 case KEY_F(4): ev->data.key.c = CACA_KEY_F4; break;415 case KEY_F(5): ev->data.key.c = CACA_KEY_F5; break;416 case KEY_F(6): ev->data.key.c = CACA_KEY_F6; break;417 case KEY_F(7): ev->data.key.c = CACA_KEY_F7; break;418 case KEY_F(8): ev->data.key.c = CACA_KEY_F8; break;419 case KEY_F(9): ev->data.key.c = CACA_KEY_F9; break;420 case KEY_F(10): ev->data.key.c = CACA_KEY_F10; break;421 case KEY_F(11): ev->data.key.c = CACA_KEY_F11; break;422 case KEY_F(12): ev->data.key.c = CACA_KEY_F12; break;399 case KEY_UP: ev->data.key.ch = CACA_KEY_UP; break; 400 case KEY_DOWN: ev->data.key.ch = CACA_KEY_DOWN; break; 401 case KEY_LEFT: ev->data.key.ch = CACA_KEY_LEFT; break; 402 case KEY_RIGHT: ev->data.key.ch = CACA_KEY_RIGHT; break; 403 404 case KEY_IC: ev->data.key.ch = CACA_KEY_INSERT; break; 405 case KEY_DC: ev->data.key.ch = CACA_KEY_DELETE; break; 406 case KEY_HOME: ev->data.key.ch = CACA_KEY_HOME; break; 407 case KEY_END: ev->data.key.ch = CACA_KEY_END; break; 408 case KEY_PPAGE: ev->data.key.ch = CACA_KEY_PAGEUP; break; 409 case KEY_NPAGE: ev->data.key.ch = CACA_KEY_PAGEDOWN; break; 410 411 case KEY_F(1): ev->data.key.ch = CACA_KEY_F1; break; 412 case KEY_F(2): ev->data.key.ch = CACA_KEY_F2; break; 413 case KEY_F(3): ev->data.key.ch = CACA_KEY_F3; break; 414 case KEY_F(4): ev->data.key.ch = CACA_KEY_F4; break; 415 case KEY_F(5): ev->data.key.ch = CACA_KEY_F5; break; 416 case KEY_F(6): ev->data.key.ch = CACA_KEY_F6; break; 417 case KEY_F(7): ev->data.key.ch = CACA_KEY_F7; break; 418 case KEY_F(8): ev->data.key.ch = CACA_KEY_F8; break; 419 case KEY_F(9): ev->data.key.ch = CACA_KEY_F9; break; 420 case KEY_F(10): ev->data.key.ch = CACA_KEY_F10; break; 421 case KEY_F(11): ev->data.key.ch = CACA_KEY_F11; break; 422 case KEY_F(12): ev->data.key.ch = CACA_KEY_F12; break; 423 423 424 424 default: ev->type = CACA_EVENT_NONE; return 0; -
libcaca/trunk/caca/driver_raw.c
r777 r810 54 54 static void raw_display(caca_t *kk) 55 55 { 56 uint32_t *attr = kk-> qq->attr;57 uint32_t *chars = kk-> qq->chars;56 uint32_t *attr = kk->c->attr; 57 uint32_t *chars = kk->c->chars; 58 58 uint32_t w, h; 59 59 unsigned int n; 60 60 61 w = kk-> qq->width;62 h = kk-> qq->height;61 w = kk->c->width; 62 h = kk->c->height; 63 63 64 64 fprintf(stdout, "CACA%c%c%c%c%c%c%c%c", … … 66 66 (h >> 24), (h >> 16) & 0xff, (h >> 8) & 0xff, h & 0xff); 67 67 68 for(n = kk-> qq->height * kk->qq->width; n--; )68 for(n = kk->c->height * kk->c->width; n--; ) 69 69 { 70 70 uint32_t c = *chars++; -
libcaca/trunk/caca/driver_slang.c
r777 r810 165 165 #endif 166 166 167 _cucul_set_size(kk-> qq, SLtt_Screen_Cols, SLtt_Screen_Rows);167 _cucul_set_size(kk->c, SLtt_Screen_Cols, SLtt_Screen_Rows); 168 168 169 169 return 0; … … 189 189 { 190 190 /* Fallback to a 6x10 font */ 191 return kk-> qq->width * 6;191 return kk->c->width * 6; 192 192 } 193 193 … … 195 195 { 196 196 /* Fallback to a 6x10 font */ 197 return kk-> qq->height * 10;197 return kk->c->height * 10; 198 198 } 199 199 … … 201 201 { 202 202 int x, y; 203 uint32_t *attr = kk-> qq->attr;204 uint32_t *chars = kk-> qq->chars;205 for(y = 0; y < (int)kk-> qq->height; y++)203 uint32_t *attr = kk->c->attr; 204 uint32_t *chars = kk->c->chars; 205 for(y = 0; y < (int)kk->c->height; y++) 206 206 { 207 207 SLsmg_gotorc(y, 0); 208 for(x = kk-> qq->width; x--; )208 for(x = kk->c->width; x--; ) 209 209 { 210 210 uint32_t c = *chars++; … … 249 249 kk->resize.h = SLtt_Screen_Rows; 250 250 251 if(kk->resize.w != kk-> qq->width || kk->resize.h != kk->qq->height)251 if(kk->resize.w != kk->c->width || kk->resize.h != kk->c->height) 252 252 SLsmg_reinit_smg(); 253 253 } … … 278 278 { 279 279 ev->type = CACA_EVENT_KEY_PRESS; 280 ev->data.key.c = intkey;280 ev->data.key.ch = intkey; 281 281 return 1; 282 282 } … … 308 308 switch(intkey) 309 309 { 310 case SL_KEY_UP: ev->data.key.c = CACA_KEY_UP; break;311 case SL_KEY_DOWN: ev->data.key.c = CACA_KEY_DOWN; break;312 case SL_KEY_LEFT: ev->data.key.c = CACA_KEY_LEFT; break;313 case SL_KEY_RIGHT: ev->data.key.c = CACA_KEY_RIGHT; break;314 315 case SL_KEY_IC: ev->data.key.c = CACA_KEY_INSERT; break;316 case SL_KEY_DELETE: ev->data.key.c = CACA_KEY_DELETE; break;317 case SL_KEY_HOME: ev->data.key.c = CACA_KEY_HOME; break;318 case SL_KEY_END: ev->data.key.c = CACA_KEY_END; break;319 case SL_KEY_PPAGE: ev->data.key.c = CACA_KEY_PAGEUP; break;320 case SL_KEY_NPAGE: ev->data.key.c = CACA_KEY_PAGEDOWN; break;321 322 case SL_KEY_F(1): ev->data.key.c = CACA_KEY_F1; break;323 case SL_KEY_F(2): ev->data.key.c = CACA_KEY_F2; break;324 case SL_KEY_F(3): ev->data.key.c = CACA_KEY_F3; break;325 case SL_KEY_F(4): ev->data.key.c = CACA_KEY_F4; break;326 case SL_KEY_F(5): ev->data.key.c = CACA_KEY_F5; break;327 case SL_KEY_F(6): ev->data.key.c = CACA_KEY_F6; break;328 case SL_KEY_F(7): ev->data.key.c = CACA_KEY_F7; break;329 case SL_KEY_F(8): ev->data.key.c = CACA_KEY_F8; break;330 case SL_KEY_F(9): ev->data.key.c = CACA_KEY_F9; break;331 case SL_KEY_F(10): ev->data.key.c = CACA_KEY_F10; break;332 case SL_KEY_F(11): ev->data.key.c = CACA_KEY_F11; break;333 case SL_KEY_F(12): ev->data.key.c = CACA_KEY_F12; break;310 case SL_KEY_UP: ev->data.key.ch = CACA_KEY_UP; break; 311 case SL_KEY_DOWN: ev->data.key.ch = CACA_KEY_DOWN; break; 312 case SL_KEY_LEFT: ev->data.key.ch = CACA_KEY_LEFT; break; 313 case SL_KEY_RIGHT: ev->data.key.ch = CACA_KEY_RIGHT; break; 314 315 case SL_KEY_IC: ev->data.key.ch = CACA_KEY_INSERT; break; 316 case SL_KEY_DELETE: ev->data.key.ch = CACA_KEY_DELETE; break; 317 case SL_KEY_HOME: ev->data.key.ch = CACA_KEY_HOME; break; 318 case SL_KEY_END: ev->data.key.ch = CACA_KEY_END; break; 319 case SL_KEY_PPAGE: ev->data.key.ch = CACA_KEY_PAGEUP; break; 320 case SL_KEY_NPAGE: ev->data.key.ch = CACA_KEY_PAGEDOWN; break; 321 322 case SL_KEY_F(1): ev->data.key.ch = CACA_KEY_F1; break; 323 case SL_KEY_F(2): ev->data.key.ch = CACA_KEY_F2; break; 324 case SL_KEY_F(3): ev->data.key.ch = CACA_KEY_F3; break; 325 case SL_KEY_F(4): ev->data.key.ch = CACA_KEY_F4; break; 326 case SL_KEY_F(5): ev->data.key.ch = CACA_KEY_F5; break; 327 case SL_KEY_F(6): ev->data.key.ch = CACA_KEY_F6; break; 328 case SL_KEY_F(7): ev->data.key.ch = CACA_KEY_F7; break; 329 case SL_KEY_F(8): ev->data.key.ch = CACA_KEY_F8; break; 330 case SL_KEY_F(9): ev->data.key.ch = CACA_KEY_F9; break; 331 case SL_KEY_F(10): ev->data.key.ch = CACA_KEY_F10; break; 332 case SL_KEY_F(11): ev->data.key.ch = CACA_KEY_F11; break; 333 case SL_KEY_F(12): ev->data.key.ch = CACA_KEY_F12; break; 334 334 335 335 default: ev->type = CACA_EVENT_NONE; return 0; -
libcaca/trunk/caca/driver_vga.c
r777 r810 75 75 76 76 /* We don't have much choice */ 77 _cucul_set_size(kk-> qq, 80, 25);77 _cucul_set_size(kk->c, 80, 25); 78 78 79 79 return 0; … … 115 115 { 116 116 char *screen = (char *)(intptr_t)0x000b8000; 117 uint32_t *attr = kk-> qq->attr;118 uint32_t *chars = kk-> qq->chars;117 uint32_t *attr = kk->c->attr; 118 uint32_t *chars = kk->c->chars; 119 119 int n; 120 120 121 for(n = kk-> qq->height * kk->qq->width; n--; )121 for(n = kk->c->height * kk->c->width; n--; ) 122 122 { 123 123 *screen++ = _cucul_utf32_to_cp437(*chars++); … … 129 129 { 130 130 /* We know nothing about our window */ 131 kk->resize.w = kk-> qq->width;132 kk->resize.h = kk-> qq->height;131 kk->resize.w = kk->c->width; 132 kk->resize.h = kk->c->height; 133 133 } 134 134 -
libcaca/trunk/caca/driver_win32.c
r777 r810 112 112 113 113 /* Set the new console size */ 114 size.X = kk-> qq->width;115 size.Y = kk-> qq->height;114 size.X = kk->c->width; 115 size.Y = kk->c->height; 116 116 SetConsoleScreenBufferSize(kk->drv.p->screen, size); 117 117 118 118 rect.Left = rect.Top = 0; 119 rect.Right = kk-> qq->width - 1;120 rect.Bottom = kk-> qq->height - 1;119 rect.Right = kk->c->width - 1; 120 rect.Bottom = kk->c->height - 1; 121 121 SetConsoleWindowInfo(kk->drv.p->screen, TRUE, &rect); 122 122 … … 125 125 return -1; 126 126 127 _cucul_set_size(kk-> qq, csbi.srWindow.Right - csbi.srWindow.Left + 1,128 127 _cucul_set_size(kk->c, csbi.srWindow.Right - csbi.srWindow.Left + 1, 128 csbi.srWindow.Bottom - csbi.srWindow.Top + 1); 129 129 130 130 SetConsoleMode(kk->drv.p->screen, 0); … … 137 137 SetConsoleActiveScreenBuffer(kk->drv.p->screen); 138 138 139 kk->drv.p->buffer = malloc(kk-> qq->width * kk->qq->height139 kk->drv.p->buffer = malloc(kk->c->width * kk->c->height 140 140 * sizeof(CHAR_INFO)); 141 141 if(kk->drv.p->buffer == NULL) … … 174 174 175 175 /* Fallback to a 6x10 font */ 176 return kk-> qq->width * 6;176 return kk->c->width * 6; 177 177 } 178 178 … … 182 182 183 183 /* Fallback to a 6x10 font */ 184 return kk-> qq->height * 10;184 return kk->c->height * 10; 185 185 } 186 186 … … 192 192 193 193 /* Render everything to our screen buffer */ 194 for(i = 0; i < kk-> qq->width * kk->qq->height; i++)194 for(i = 0; i < kk->c->width * kk->c->height; i++) 195 195 { 196 uint32_t c = kk-> qq->chars[i];196 uint32_t c = kk->c->chars[i]; 197 197 198 198 #if 0 … … 209 209 210 210 kk->drv.p->buffer[i].Attributes = 211 win32_fg_palette[_cucul_argb32_to_ansi4fg(kk-> qq->attr[i])]212 | win32_bg_palette[_cucul_argb32_to_ansi4bg(kk-> qq->attr[i])];211 win32_fg_palette[_cucul_argb32_to_ansi4fg(kk->c->attr[i])] 212 | win32_bg_palette[_cucul_argb32_to_ansi4bg(kk->c->attr[i])]; 213 213 } 214 214 215 215 /* Blit the screen buffer */ 216 size.X = kk-> qq->width;217 size.Y = kk-> qq->height;216 size.X = kk->c->width; 217 size.Y = kk->c->height; 218 218 pos.X = pos.Y = 0; 219 219 rect.Left = rect.Top = 0; 220 rect.Right = kk-> qq->width - 1;221 rect.Bottom = kk-> qq->height - 1;220 rect.Right = kk->c->width - 1; 221 rect.Bottom = kk->c->height - 1; 222 222 #if 0 223 223 WriteConsoleOutput(kk->drv.p->screen, kk->drv.p->buffer, size, pos, &rect); … … 230 230 { 231 231 /* FIXME: I don't know what to do here. */ 232 kk->resize.w = kk-> qq->width;233 kk->resize.h = kk-> qq->height;232 kk->resize.w = kk->c->width; 233 kk->resize.h = kk->c->height; 234 234 } 235 235 … … 257 257 if(rec.Event.KeyEvent.uChar.AsciiChar) 258 258 { 259 ev->data.key.c = rec.Event.KeyEvent.uChar.AsciiChar;260 ev->data.key.ucs4 = (uint32_t)ev->data.key.c ;261 ev->data.key.utf8[0] = ev->data.key.c ;259 ev->data.key.ch = rec.Event.KeyEvent.uChar.AsciiChar; 260 ev->data.key.ucs4 = (uint32_t)ev->data.key.ch; 261 ev->data.key.utf8[0] = ev->data.key.ch; 262 262 ev->data.key.utf8[1] = '\0'; 263 263 -
libcaca/trunk/caca/driver_x11.c
r800 r810 79 79 80 80 if(width && height) 81 _cucul_set_size(kk-> qq, width, height);81 _cucul_set_size(kk->c, width, height); 82 82 83 83 kk->drv.p->dpy = XOpenDisplay(NULL); … … 145 145 kk->drv.p->window = 146 146 XCreateWindow(kk->drv.p->dpy, DefaultRootWindow(kk->drv.p->dpy), 0, 0, 147 kk-> qq->width * kk->drv.p->font_width,148 kk-> qq->height * kk->drv.p->font_height,147 kk->c->width * kk->drv.p->font_width, 148 kk->c->height * kk->drv.p->font_height, 149 149 0, 0, InputOutput, 0, 150 150 CWBackingStore | CWBackPixel | CWEventMask, … … 193 193 194 194 kk->drv.p->pixmap = XCreatePixmap(kk->drv.p->dpy, kk->drv.p->window, 195 kk-> qq->width * kk->drv.p->font_width,196 kk-> qq->height * kk->drv.p->font_height,195 kk->c->width * kk->drv.p->font_width, 196 kk->c->height * kk->drv.p->font_height, 197 197 DefaultDepth(kk->drv.p->dpy, 198 198 DefaultScreen(kk->drv.p->dpy))); … … 229 229 static unsigned int x11_get_window_width(caca_t *kk) 230 230 { 231 return kk-> qq->width * kk->drv.p->font_width;231 return kk->c->width * kk->drv.p->font_width; 232 232 } 233 233 234 234 static unsigned int x11_get_window_height(caca_t *kk) 235 235 { 236 return kk-> qq->height * kk->drv.p->font_height;236 return kk->c->height * kk->drv.p->font_height; 237 237 } 238 238 … … 243 243 /* First draw the background colours. Splitting the process in two 244 244 * loops like this is actually slightly faster. */ 245 for(y = 0; y < kk-> qq->height; y++)246 { 247 for(x = 0; x < kk-> qq->width; x += len)248 { 249 uint32_t *attr = kk-> qq->attr + x + y * kk->qq->width;245 for(y = 0; y < kk->c->height; y++) 246 { 247 for(x = 0; x < kk->c->width; x += len) 248 { 249 uint32_t *attr = kk->c->attr + x + y * kk->c->width; 250 250 uint16_t bg = _cucul_argb32_to_rgb12bg(*attr); 251 251 252 252 len = 1; 253 while(x + len < kk-> qq->width253 while(x + len < kk->c->width 254 254 && _cucul_argb32_to_rgb12bg(attr[len]) == bg) 255 255 len++; … … 264 264 265 265 /* Then print the foreground characters */ 266 for(y = 0; y < kk-> qq->height; y++)266 for(y = 0; y < kk->c->height; y++) 267 267 { 268 268 unsigned int yoff = (y + 1) * kk->drv.p->font_height 269 269 - kk->drv.p->font_offset; 270 uint32_t *chars = kk-> qq->chars + y * kk->qq->width;271 272 for(x = 0; x < kk-> qq->width; x++, chars++)273 { 274 uint32_t *attr = kk-> qq->attr + x + y * kk->qq->width;270 uint32_t *chars = kk->c->chars + y * kk->c->width; 271 272 for(x = 0; x < kk->c->width; x++, chars++) 273 { 274 uint32_t *attr = kk->c->attr + x + y * kk->c->width; 275 275 276 276 /* Skip spaces */ … … 371 371 XCopyArea(kk->drv.p->dpy, kk->drv.p->pixmap, kk->drv.p->window, 372 372 kk->drv.p->gc, 0, 0, 373 kk-> qq->width * kk->drv.p->font_width,374 kk-> qq->height * kk->drv.p->font_height,373 kk->c->width * kk->drv.p->font_width, 374 kk->c->height * kk->drv.p->font_height, 375 375 0, 0); 376 376 XFlush(kk->drv.p->dpy); … … 409 409 XCopyArea(kk->drv.p->dpy, kk->drv.p->pixmap, 410 410 kk->drv.p->window, kk->drv.p->gc, 0, 0, 411 kk-> qq->width * kk->drv.p->font_width,412 kk-> qq->height * kk->drv.p->font_height, 0, 0);411 kk->c->width * kk->drv.p->font_width, 412 kk->c->height * kk->drv.p->font_height, 0, 0); 413 413 continue; 414 414 } … … 424 424 / kk->drv.p->font_height; 425 425 426 if(!w || !h || (w == kk-> qq->width && h == kk->qq->height))426 if(!w || !h || (w == kk->c->width && h == kk->c->height)) 427 427 continue; 428 428 … … 440 440 unsigned int newy = xevent.xmotion.y / kk->drv.p->font_height; 441 441 442 if(newx >= kk-> qq->width)443 newx = kk-> qq->width - 1;444 if(newy >= kk-> qq->height)445 newy = kk-> qq->height - 1;442 if(newx >= kk->c->width) 443 newx = kk->c->width - 1; 444 if(newy >= kk->c->height) 445 newy = kk->c->height - 1; 446 446 447 447 if(kk->mouse.x == newx && kk->mouse.y == newy) … … 482 482 if(XLookupString(&xevent.xkey, &key, 1, NULL, NULL)) 483 483 { 484 ev->data.key.c = key;484 ev->data.key.ch = key; 485 485 ev->data.key.ucs4 = key; 486 486 ev->data.key.utf8[0] = key; … … 492 492 switch(keysym) 493 493 { 494 case XK_F1: ev->data.key.c = CACA_KEY_F1; break;495 case XK_F2: ev->data.key.c = CACA_KEY_F2; break;496 case XK_F3: ev->data.key.c = CACA_KEY_F3; break;497 case XK_F4: ev->data.key.c = CACA_KEY_F4; break;498 case XK_F5: ev->data.key.c = CACA_KEY_F5; break;499 case XK_F6: ev->data.key.c = CACA_KEY_F6; break;500 case XK_F7: ev->data.key.c = CACA_KEY_F7; break;501 case XK_F8: ev->data.key.c = CACA_KEY_F8; break;502 case XK_F9: ev->data.key.c = CACA_KEY_F9; break;503 case XK_F10: ev->data.key.c = CACA_KEY_F10; break;504 case XK_F11: ev->data.key.c = CACA_KEY_F11; break;505 case XK_F12: ev->data.key.c = CACA_KEY_F12; break;506 case XK_F13: ev->data.key.c = CACA_KEY_F13; break;507 case XK_F14: ev->data.key.c = CACA_KEY_F14; break;508 case XK_F15: ev->data.key.c = CACA_KEY_F15; break;509 case XK_Left: ev->data.key.c = CACA_KEY_LEFT; break;510 case XK_Right: ev->data.key.c = CACA_KEY_RIGHT; break;511 case XK_Up: ev->data.key.c = CACA_KEY_UP; break;512 case XK_Down: ev->data.key.c = CACA_KEY_DOWN; break;494 case XK_F1: ev->data.key.ch = CACA_KEY_F1; break; 495 case XK_F2: ev->data.key.ch = CACA_KEY_F2; break; 496 case XK_F3: ev->data.key.ch = CACA_KEY_F3; break; 497 case XK_F4: ev->data.key.ch = CACA_KEY_F4; break; 498 case XK_F5: ev->data.key.ch = CACA_KEY_F5; break; 499 case XK_F6: ev->data.key.ch = CACA_KEY_F6; break; 500 case XK_F7: ev->data.key.ch = CACA_KEY_F7; break; 501 case XK_F8: ev->data.key.ch = CACA_KEY_F8; break; 502 case XK_F9: ev->data.key.ch = CACA_KEY_F9; break; 503 case XK_F10: ev->data.key.ch = CACA_KEY_F10; break; 504 case XK_F11: ev->data.key.ch = CACA_KEY_F11; break; 505 case XK_F12: ev->data.key.ch = CACA_KEY_F12; break; 506 case XK_F13: ev->data.key.ch = CACA_KEY_F13; break; 507 case XK_F14: ev->data.key.ch = CACA_KEY_F14; break; 508 case XK_F15: ev->data.key.ch = CACA_KEY_F15; break; 509 case XK_Left: ev->data.key.ch = CACA_KEY_LEFT; break; 510 case XK_Right: ev->data.key.ch = CACA_KEY_RIGHT; break; 511 case XK_Up: ev->data.key.ch = CACA_KEY_UP; break; 512 case XK_Down: ev->data.key.ch = CACA_KEY_DOWN; break; 513 513 514 514 default: ev->type = CACA_EVENT_NONE; return 0; -
libcaca/trunk/caca/event.c
r777 r810 114 114 unsigned int caca_get_mouse_x(caca_t *kk) 115 115 { 116 if(kk->mouse.x >= kk-> qq->width)117 kk->mouse.x = kk-> qq->width - 1;116 if(kk->mouse.x >= kk->c->width) 117 kk->mouse.x = kk->c->width - 1; 118 118 119 119 return kk->mouse.x; … … 132 132 unsigned int caca_get_mouse_y(caca_t *kk) 133 133 { 134 if(kk->mouse.y >= kk-> qq->height)135 kk->mouse.y = kk-> qq->height - 1;134 if(kk->mouse.y >= kk->c->height) 135 kk->mouse.y = kk->c->height - 1; 136 136 137 137 return kk->mouse.y; … … 155 155 _caca_handle_resize(kk); 156 156 ev->type = CACA_EVENT_RESIZE; 157 ev->data.resize.w = kk-> qq->width;158 ev->data.resize.h = kk-> qq->height;157 ev->data.resize.w = kk->c->width; 158 ev->data.resize.h = kk->c->height; 159 159 return 1; 160 160 } … … 192 192 if(ev->type == CACA_EVENT_KEY_PRESS 193 193 && kk->events.last_key_event.type 194 && ev->data.key.c == kk->events.last_key_event.data.key.c194 && ev->data.key.ch == kk->events.last_key_event.data.key.ch 195 195 && ev->data.key.ucs4 == kk->events.last_key_event.data.key.ucs4) 196 196 { -
libcaca/trunk/caca/graphics.c
r773 r810 173 173 174 174 /* Tell libcucul we changed size */ 175 if(kk->resize.w != kk-> qq->width || kk->resize.h != kk->qq->height)176 _cucul_set_size(kk-> qq, kk->resize.w, kk->resize.h);175 if(kk->resize.w != kk->c->width || kk->resize.h != kk->c->height) 176 _cucul_set_size(kk->c, kk->resize.w, kk->resize.h); 177 177 } 178 178
Note: See TracChangeset
for help on using the changeset viewer.