Subversion Repositories Kolibri OS

Rev

Rev 5676 | Rev 6672 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5676 Rev 5678
Line 5... Line 5...
5
#ifndef INCLUDE_KOLIBRI_H
5
#ifndef INCLUDE_KOLIBRI_H
6
#include "../lib/kolibri.h"
6
#include "../lib/kolibri.h"
7
#endif
7
#endif
Line 8... Line 8...
8
 
8
 
9
dword buf_data;
-
 
Line 10... Line 9...
10
dword zbuf_data;
9
dword buf_data;
11
 
10
 
12
 
-
 
13
struct DrawBufer {
11
 
Line 14... Line 12...
14
	int bufx, bufy, bufw, bufh;
12
struct DrawBufer {
15
	int zbufx, zbufy, zbufw, zbufh;
13
	int bufx, bufy, bufw, bufh;
16
	byte zoomf;
14
	byte zoom;
17
 
15
 
18
	void Init();
16
	void Init();
19
	void Show();
17
	void Show();
20
	void Fill();
18
	void Fill();
21
	void Skew();
19
	void Skew();
22
	void DrawBar();
-
 
23
	void PutPixel();
20
	void DrawBar();
Line 24... Line 21...
24
	void AlignCenter();
21
	void PutPixel();
25
	void AlignRight();
22
	void AlignCenter();
26
	void Zoom2x();
23
	void AlignRight();
27
};
24
};
28
 
25
 
29
void DrawBufer::Init(int i_bufx, i_bufy, i_bufw, i_bufh)
26
void DrawBufer::Init(int i_bufx, i_bufy, i_bufw, i_bufh)
30
{
27
{
31
	bufx = i_bufx;
28
	bufx = i_bufx;
32
	bufy = i_bufy;
29
	bufy = i_bufy;
33
	bufw = i_bufw; 
30
	bufw = i_bufw * zoom; 
34
	bufh = i_bufh;
-
 
35
	free(buf_data);
-
 
36
	buf_data = malloc(bufw * bufh * 4 + 8);
-
 
37
	ESDWORD[buf_data] = bufw;
-
 
38
	ESDWORD[buf_data+4] = bufh;
-
 
39
 
-
 
40
	if (zoomf != 1)
-
 
41
	{
-
 
42
		zbufx = bufx;
-
 
43
		zbufy = bufy;
-
 
44
		zbufw = bufw * zoomf;
-
 
45
		zbufh = bufh * zoomf;
-
 
46
		free(zbuf_data);
31
	bufh = i_bufh * zoom;
Line 47... Line 32...
47
		zbuf_data = malloc(zbufw * zbufh * 4 + 8);
32
	free(buf_data);
48
		ESDWORD[zbuf_data] = zbufw;
33
	buf_data = malloc(bufw * bufh * 4 + 8);
49
		ESDWORD[zbuf_data+4] = zbufh;
34
	ESDWORD[buf_data] = bufw;
Line 107... Line 92...
107
			ESDWORD[buf_data+8+i] >< ESDWORD[buf_data+8+l];
92
			ESDWORD[buf_data+8+i] >< ESDWORD[buf_data+8+l];
108
		}
93
		}
109
	}
94
	}
110
}
95
}
Line 111... Line 96...
111
 
96
 
112
 
97
/*
113
void DrawBufer::Zoom2x()
98
void DrawBufer::Zoom2x()
114
{
99
{
115
	int i, s;
100
	int i, s;
Line 116... Line 101...
116
	dword point_x, max_i, zline_w, s_inc;
101
	dword point_x, max_i, zline_w, s_inc;
117
 
102
 
118
	point_x = 0;
103
	point_x = 0;
119
	max_i = bufw * bufh * 4 + buf_data+8;
104
	max_i = bufw * bufh * 4 + buf_data+8;
Line 120... Line 105...
120
	s_inc = zoomf * 4;
105
	s_inc = zoom * 4;
121
	zline_w = zbufw * 4;
106
	zline_w = zbufw * 4;
122
 
107
 
123
	for (i=buf_data+8, s=zbuf_data+8; i
108
	for (i=buf_data+8, s=zbuf_data+8; i
124
		ESDWORD[s] = ESDWORD[i];
109
		ESDWORD[s] = ESDWORD[i];
125
		ESDWORD[s+4] = ESDWORD[i];
110
		ESDWORD[s+4] = ESDWORD[i];
126
		ESDWORD[s+zline_w] = ESDWORD[i];
111
		ESDWORD[s+zline_w] = ESDWORD[i];
127
		ESDWORD[s+zline_w+4] = ESDWORD[i];
112
		ESDWORD[s+zline_w+4] = ESDWORD[i];
128
		if (zoomf==3)
113
		if (zoom==3)
129
		{
114
		{
130
			ESDWORD[s+8] = ESDWORD[i];
115
			ESDWORD[s+8] = ESDWORD[i];
Line 135... Line 120...
135
		}
120
		}
Line 136... Line 121...
136
 
121
 
137
		point_x++;
122
		point_x++;
138
		if (point_x >= bufw) 
123
		if (point_x >= bufw) 
139
		{
124
		{
140
			s += zoomf - 1 * zline_w;
125
			s += zoom - 1 * zline_w;
141
			point_x = 0;
126
			point_x = 0;
142
		}
127
		}
143
	}
128
	}
-
 
129
}
Line 144... Line 130...
144
}
130
*/
145
 
131
 
146
 
-
 
147
void DrawBufer::Show()
-
 
148
{
132
 
149
	if (zoomf == 1)
133
void DrawBufer::Show()
150
	{
-
 
151
		PutPaletteImage(buf_data+8, bufw, bufh, bufx, bufy, 32, 0);
-
 
152
	}
-
 
153
	else
-
 
154
	{
-
 
155
		Zoom2x();
-
 
Line 156... Line 134...
156
		PutPaletteImage(zbuf_data+8, zbufw, zbufh, zbufx, zbufy, 32, 0);
134
{
157
	}		
135
	PutPaletteImage(buf_data+8, bufw, bufh, bufx, bufy, 32, 0);