Changeset 198
- Timestamp:
- Nov 17, 2003, 5:11:34 PM (19 years ago)
- Location:
- libcaca/trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/examples/Makefile.am
r193 r198 14 14 endif 15 15 16 bin_PROGRAMS = demo spritedit16 noinst_PROGRAMS = demo spritedit 17 17 18 18 demo_SOURCES = demo.c -
libcaca/trunk/src/Makefile.am
r185 r198 19 19 $(NULL) 20 20 21 include_HEADERS = caca.h 22 -
libcaca/trunk/src/blit.c
r195 r198 86 86 void caca_blit(int x1, int y1, int x2, int y2, void *pixels, int w, int h) 87 87 { 88 static int white_colors[] = {CACA_COLOR_DARKGRAY, CACA_COLOR_LIGHTGRAY, CACA_COLOR_WHITE}; 88 89 static int light_colors[] = {CACA_COLOR_LIGHTMAGENTA, CACA_COLOR_LIGHTRED, CACA_COLOR_YELLOW, CACA_COLOR_LIGHTGREEN, CACA_COLOR_LIGHTCYAN, CACA_COLOR_LIGHTBLUE, CACA_COLOR_LIGHTMAGENTA}; 89 90 static int dark_colors[] = {CACA_COLOR_MAGENTA, CACA_COLOR_RED, CACA_COLOR_BROWN, CACA_COLOR_GREEN, CACA_COLOR_CYAN, CACA_COLOR_BLUE, CACA_COLOR_MAGENTA}; … … 101 102 } 102 103 103 pitch = (3 * w + 3) / 4 * 4; 104 //pitch = (3 * w + 3) / 4 * 4; 105 pitch = 4 * w; 104 106 105 107 for(y = y1 > 0 ? y1 : 0; y <= y2 && y <= (int)caca_get_height(); y++) … … 113 115 int fromx = w * (x - x1) / (x2 - x1 + 1); 114 116 int fromy = h * (y - y1) / (y2 - y1 + 1); 115 int r = ((unsigned char *)pixels)[3 * fromx + pitch * fromy]; 116 int g = ((unsigned char *)pixels)[3 * fromx + 1 + pitch * fromy]; 117 int b = ((unsigned char *)pixels)[3 * fromx + 2 + pitch * fromy]; 117 //int r = ((unsigned char *)pixels)[3 * fromx + pitch * fromy]; 118 //int g = ((unsigned char *)pixels)[3 * fromx + 1 + pitch * fromy]; 119 //int b = ((unsigned char *)pixels)[3 * fromx + 2 + pitch * fromy]; 120 int b = ((unsigned char *)pixels)[4 * fromx + pitch * fromy]; 121 int g = ((unsigned char *)pixels)[4 * fromx + 1 + pitch * fromy]; 122 int r = ((unsigned char *)pixels)[4 * fromx + 2 + pitch * fromy]; 118 123 int hue, sat, val; 119 124 … … 147 152 else 148 153 { 149 caca_set_color( CACA_COLOR_LIGHTGRAY);154 caca_set_color(white_colors[max * 3 / 256]); 150 155 } 151 156 -
libcaca/trunk/src/caca.h
r195 r198 64 64 65 65 /* 66 * Keys 67 */ 68 enum caca_key 69 { 70 CACA_KEY_UP = 273, 71 CACA_KEY_DOWN = 274, 72 CACA_KEY_LEFT = 275, 73 CACA_KEY_RIGHT = 276, 74 75 CACA_KEY_F1 = 282, 76 CACA_KEY_F2 = 283, 77 CACA_KEY_F3 = 284, 78 CACA_KEY_F4 = 285, 79 CACA_KEY_F5 = 286, 80 CACA_KEY_F6 = 287, 81 CACA_KEY_F7 = 288, 82 CACA_KEY_F8 = 289, 83 CACA_KEY_F9 = 290, 84 CACA_KEY_F10 = 291, 85 CACA_KEY_F11 = 292, 86 CACA_KEY_F12 = 293, 87 CACA_KEY_F13 = 294, 88 CACA_KEY_F14 = 295, 89 CACA_KEY_F15 = 296 90 }; 91 92 /* 66 93 * Types 67 94 */ … … 81 108 void caca_end(void); 82 109 83 charcaca_get_key(void);110 int caca_get_key(void); 84 111 85 112 void caca_set_color(enum caca_color); -
libcaca/trunk/src/io.c
r192 r198 37 37 #include "caca_internals.h" 38 38 39 char caca_get_key(void) 39 static unsigned char back[5] = {0, 0, 0, 0, 0}; 40 41 static void _push_key(unsigned char key) 42 { 43 back[4] = back[3]; 44 back[3] = back[2]; 45 back[2] = back[1]; 46 back[1] = back[0]; 47 back[0] = key; 48 } 49 50 static unsigned char _pop_key(void) 51 { 52 unsigned char key = back[0]; 53 back[0] = back[1]; 54 back[1] = back[2]; 55 back[2] = back[3]; 56 back[3] = back[4]; 57 return key; 58 } 59 60 static unsigned char _read_key(void) 40 61 { 41 62 #if defined(USE_SLANG) 42 63 return SLang_input_pending(0) ? SLang_getkey() : 0; 43 44 64 #elif defined(USE_NCURSES) 45 char key = getch(); 46 return key != ERR ? key : 0; 47 65 unsigned char key = getch(); 66 return (key == ERR) ? 0 : key; 48 67 #elif defined(USE_CONIO) 49 68 return _conio_kbhit() ? getch() : 0; 50 51 69 #endif 52 70 } 53 71 72 int caca_get_key(void) 73 { 74 unsigned char key[5]; 75 76 /* If there were legacy keys, pop them */ 77 key[0] = _pop_key(); 78 if(key[0]) 79 return key[0]; 80 81 key[0] = _read_key(); 82 if(key[0] != 0x1b) 83 return key[0]; 84 85 key[1] = _read_key(); 86 if(!key[1]) 87 return key[0]; 88 89 key[2] = _read_key(); 90 if(!key[2]) 91 { 92 _push_key(key[1]); 93 return key[0]; 94 } 95 96 if(key[1] == 0x4f) 97 { 98 switch(key[2]) 99 { 100 case 0x50: return CACA_KEY_F1; 101 case 0x51: return CACA_KEY_F2; 102 case 0x52: return CACA_KEY_F3; 103 case 0x53: return CACA_KEY_F4; 104 } 105 } 106 else if(key[1] == 0x5b) 107 { 108 switch(key[2]) 109 { 110 case 0x41: return CACA_KEY_UP; 111 case 0x42: return CACA_KEY_DOWN; 112 case 0x43: return CACA_KEY_LEFT; 113 case 0x44: return CACA_KEY_RIGHT; 114 } 115 116 key[3] = _read_key(); 117 key[4] = _read_key(); 118 119 if(key[2] == 0x31 && key[4] == 0x7e) 120 switch(key[3]) 121 { 122 case 0x35: return CACA_KEY_F5; 123 case 0x37: return CACA_KEY_F6; 124 case 0x38: return CACA_KEY_F7; 125 case 0x39: return CACA_KEY_F8; 126 } 127 128 if(key[2] == 0x32 && key[4] == 0x7e) 129 switch(key[3]) 130 { 131 case 0x30: return CACA_KEY_F9; 132 case 0x31: return CACA_KEY_F10; 133 case 0x33: return CACA_KEY_F11; 134 case 0x34: return CACA_KEY_F12; 135 } 136 137 _push_key(key[4]); 138 _push_key(key[3]); 139 } 140 141 /* Unknown escape sequence: return 0 */ 142 _push_key(key[2]); 143 _push_key(key[1]); 144 return key[0]; 145 } 146
Note: See TracChangeset
for help on using the changeset viewer.