Subversion Repositories Kolibri OS

Rev

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

Rev 6698 Rev 6724
Line 23... Line 23...
23
	void AlignRight();
23
	void AlignRight();
24
};
24
};
Line 25... Line 25...
25
 
25
 
26
bool DrawBufer::Init(int i_bufx, i_bufy, i_bufw, i_bufh)
26
bool DrawBufer::Init(int i_bufx, i_bufy, i_bufw, i_bufh)
-
 
27
{
-
 
28
	dword alloc_size, free_ram_size;
27
{
29
	char error_str[256];
28
	if (!zoom) zoom = 1;
30
	if (!zoom) zoom = 1;
29
	bufx = i_bufx;
31
	bufx = i_bufx;
30
	bufy = i_bufy;
32
	bufy = i_bufy;
31
	bufw = i_bufw * zoom; 
33
	bufw = i_bufw * zoom; 
32
	bufh = i_bufh * zoom;
34
	bufh = i_bufh * zoom;
-
 
35
	free(buf_data);
-
 
36
	$mov eax, 18
-
 
37
	$mov ebx, 16
-
 
38
	$int 0x40
33
	free(buf_data);
39
	free_ram_size = EAX * 1024;
-
 
40
	alloc_size = bufw * bufh * 4 + 8;
-
 
41
	if (alloc_size >= free_ram_size) {
-
 
42
		sprintf(#error_str,
-
 
43
"'DrawBufer needs more memory than currenly available.
-
 
44
Application could be unstable.
-
 
45
 
-
 
46
Requested size: %i Kb. 
-
 
47
Free RAM: %i Kb' -E", alloc_size/1024, free_ram_size/1024);
-
 
48
		notify(#error_str);
-
 
49
	}
34
	buf_data = malloc(bufw * bufh * 4 + 8);
50
	buf_data = malloc(alloc_size);
35
	//debugval("buf_data",buf_data);
51
	//debugval("buf_data",buf_data);
36
	if (!buf_data) return false;
52
	if (!buf_data) return false;
37
	ESDWORD[buf_data] = bufw;
53
	ESDWORD[buf_data] = bufw;
38
	ESDWORD[buf_data+4] = bufh;
54
	ESDWORD[buf_data+4] = bufh;