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; |