Rev 7155 | Rev 7190 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7155 | Rev 7156 | ||
---|---|---|---|
1 | struct _image |
1 | struct _image |
2 | { |
2 | { |
3 | - | ||
4 | unsigned rows, columns; |
3 | unsigned rows, columns; |
5 | dword mas[32*32]; |
4 | dword mas[32*32]; |
6 | dword img; |
5 | dword img; |
7 | void create(); |
6 | void create(); |
8 | void set_pixel(); |
7 | void set_pixel(); |
- | 8 | void set_image(); |
|
9 | dword get_pixel(); |
9 | dword get_pixel(); |
10 | dword get_image(); |
10 | dword get_image(); |
11 | void move(); |
11 | void move(); |
12 | }; |
12 | }; |
13 | 13 | ||
14 | void _image::create(int _rows, _columns) |
14 | void _image::create(int _rows, _columns) |
15 | { |
15 | { |
16 | int i; |
16 | int i; |
17 | rows = _rows; |
17 | rows = _rows; |
18 | columns = _columns; |
18 | columns = _columns; |
19 | for (i = 0; i < columns*rows; i++) mas[i]=0xBFCAD2; |
19 | for (i = 0; i < columns*rows; i++) mas[i]=0xBFCAD2; |
20 | } |
20 | } |
21 | 21 | ||
22 | void _image::set_pixel(int _r, _c, _color) |
22 | void _image::set_pixel(int _r, _c, _color) |
23 | { |
23 | { |
24 | mas[columns*_r + _c] = _color; |
24 | mas[columns*_r + _c] = _color; |
25 | } |
25 | } |
26 | 26 | ||
27 | dword _image::get_pixel(int _r, _c) |
27 | dword _image::get_pixel(int _r, _c) |
28 | { |
28 | { |
29 | return mas[columns*_r + _c]; |
29 | return mas[columns*_r + _c]; |
30 | } |
30 | } |
- | 31 | ||
- | 32 | void _image::set_image(dword _inbuf) |
|
- | 33 | { |
|
- | 34 | dword i; |
|
- | 35 | for (i = 0; i < columns*rows; i++;) |
|
- | 36 | { |
|
- | 37 | mas[i] = ESDWORD[i*4+_inbuf] & 0x00FFFFFF; |
|
- | 38 | } |
|
- | 39 | } |
|
31 | 40 | ||
32 | dword _image::get_image() |
41 | dword _image::get_image() |
33 | { |
42 | { |
34 | int r=0, c=0; |
43 | int r=0, c=0; |
35 | dword i; |
44 | dword i; |
36 | 45 | ||
37 | free(img); |
46 | free(img); |
38 | i = img = malloc(rows*columns*3); |
47 | i = img = malloc(rows*columns*3); |
39 | 48 | ||
40 | for (r = 0; r < rows; r++) |
49 | for (r = 0; r < rows; r++) |
41 | { |
- | |
42 | for (c = 0; c < columns; c++) |
50 | for (c = 0; c < columns; c++) |
43 | { |
51 | { |
44 | rgb.DwordToRgb(get_pixel(r,c)); |
52 | rgb.DwordToRgb(get_pixel(r,c)); |
45 | ESBYTE[i] = rgb.b; |
53 | ESBYTE[i] = rgb.b; |
46 | ESBYTE[i+1] = rgb.g; |
54 | ESBYTE[i+1] = rgb.g; |
47 | ESBYTE[i+2] = rgb.r; |
55 | ESBYTE[i+2] = rgb.r; |
48 | i += 3; |
56 | i += 3; |
49 | } |
57 | } |
50 | } |
- | |
51 | return img; |
58 | return img; |
52 | } |
59 | } |
53 | 60 | ||
54 | enum { |
61 | enum { |
55 | MOVE_LEFT, |
62 | MOVE_LEFT, |
56 | MOVE_RIGHT, |
63 | MOVE_RIGHT, |
57 | MOVE_UP, |
64 | MOVE_UP, |
58 | MOVE_DOWN, |
65 | MOVE_DOWN, |
59 | FLIP_VER, |
66 | FLIP_VER, |
60 | FLIP_HOR, |
67 | FLIP_HOR, |
61 | ROTE |
68 | ROTE |
62 | }; |
69 | }; |
63 | void _image::move(int _direction) |
70 | void _image::move(int _direction) |
64 | { |
71 | { |
65 | int r, c; |
72 | int r, c; |
66 | dword first_element_data; |
73 | dword first_element_data; |
67 | 74 | ||
68 | switch(_direction) |
75 | switch(_direction) |
69 | { |
76 | { |
70 | case MOVE_LEFT: |
77 | case MOVE_LEFT: |
71 | for (r = 0; r < rows; r++) |
78 | for (r = 0; r < rows; r++) |
72 | { |
79 | { |
73 | first_element_data = get_pixel(r, 0); |
80 | first_element_data = get_pixel(r, 0); |
74 | for (c = 0; c < columns-1; c++) set_pixel(r, c, get_pixel(r, c+1)); |
81 | for (c = 0; c < columns-1; c++) set_pixel(r, c, get_pixel(r, c+1)); |
75 | set_pixel(r, columns-1, first_element_data); |
82 | set_pixel(r, columns-1, first_element_data); |
76 | } |
83 | } |
77 | break; |
84 | break; |
78 | case MOVE_RIGHT: |
85 | case MOVE_RIGHT: |
79 | for (r = 0; r < rows; r++) |
86 | for (r = 0; r < rows; r++) |
80 | { |
87 | { |
81 | first_element_data = get_pixel(r, columns-1); |
88 | first_element_data = get_pixel(r, columns-1); |
82 | for (c = columns-1; c > 0; c--) set_pixel(r, c, get_pixel(r, c-1)); |
89 | for (c = columns-1; c > 0; c--) set_pixel(r, c, get_pixel(r, c-1)); |
83 | set_pixel(r, 0, first_element_data); |
90 | set_pixel(r, 0, first_element_data); |
84 | } |
91 | } |
85 | break; |
92 | break; |
86 | case MOVE_UP: |
93 | case MOVE_UP: |
87 | for (c = 0; c < columns; c++) |
94 | for (c = 0; c < columns; c++) |
88 | { |
95 | { |
89 | first_element_data = get_pixel(0, c); |
96 | first_element_data = get_pixel(0, c); |
90 | for (r = 0; r < rows-1; r++) set_pixel(r, c, get_pixel(r+1, c)); |
97 | for (r = 0; r < rows-1; r++) set_pixel(r, c, get_pixel(r+1, c)); |
91 | set_pixel(rows-1, c, first_element_data); |
98 | set_pixel(rows-1, c, first_element_data); |
92 | } |
99 | } |
93 | break; |
100 | break; |
94 | case MOVE_DOWN: |
101 | case MOVE_DOWN: |
95 | for (c = 0; c < columns; c++) |
102 | for (c = 0; c < columns; c++) |
96 | { |
103 | { |
97 | first_element_data = get_pixel(rows-1, c); |
104 | first_element_data = get_pixel(rows-1, c); |
98 | for (r = rows-1; r > 0; r--) set_pixel(r, c, get_pixel(r-1, c)); |
105 | for (r = rows-1; r > 0; r--) set_pixel(r, c, get_pixel(r-1, c)); |
99 | set_pixel(0, c, first_element_data); |
106 | set_pixel(0, c, first_element_data); |
100 | } |
107 | } |
101 | break; |
108 | break; |
102 | case FLIP_HOR: |
109 | case FLIP_HOR: |
103 | for (r = 0; r < rows; r++) |
110 | for (r = 0; r < rows; r++) |
104 | { |
- | |
105 | for (c = 0; c < columns/2; c++) { |
111 | for (c = 0; c < columns/2; c++) { |
106 | first_element_data = get_pixel(r, c); |
112 | first_element_data = get_pixel(r, c); |
107 | set_pixel(r, c, get_pixel(r, columns-c-1)); |
113 | set_pixel(r, c, get_pixel(r, columns-c-1)); |
108 | set_pixel(r, columns-c-1, first_element_data); |
114 | set_pixel(r, columns-c-1, first_element_data); |
109 | } |
115 | } |
110 | } |
- | |
111 | break; |
116 | break; |
112 | case FLIP_VER: |
117 | case FLIP_VER: |
113 | for (c = 0; c < columns; c++) |
118 | for (c = 0; c < columns; c++) |
114 | { |
- | |
115 | for (r = 0; r < rows/2; r++) { |
119 | for (r = 0; r < rows/2; r++) { |
116 | first_element_data = get_pixel(r, c); |
120 | first_element_data = get_pixel(r, c); |
117 | set_pixel(r, c, get_pixel(rows-r-1, c)); |
121 | set_pixel(r, c, get_pixel(rows-r-1, c)); |
118 | set_pixel(rows-r-1, c, first_element_data); |
122 | set_pixel(rows-r-1, c, first_element_data); |
119 | } |
123 | } |
120 | } |
- | |
121 | break; |
124 | break; |
122 | } |
125 | } |
123 | }>>>>>>>>>>>>> |
126 | }>>>>>>>>>>>>>> |