22#ifndef MADS_CORE_BUFFER_H
23#define MADS_CORE_BUFFER_H
25#include "mads/core/general.h"
26#include "mads/core/font.h"
30#define MAX_PEEL_VALUE 80
32#define BUFFER_PRESERVE -1
33#define BUFFER_PRESERVE_RAM -2
34#define BUFFER_ATTEMPT_CONVENTIONAL -8
36#define BUFFER_PRESERVED_CONVENTIONAL -1
37#define BUFFER_NOT_PRESERVED -3
38#define BUFFER_PRESERVED_DISK -10
41extern int buffer_restore_keep_flag;
42extern word pattern_control_value;
43extern int auto_pattern;
50extern bool buffer_init(
Buffer *buf, word x, word y);
56extern bool buffer_init_name(
Buffer *buf, word x, word y,
const char *block_name);
63extern bool buffer_free(
Buffer *buf);
69extern bool buffer_fill(
Buffer &target,
byte value);
83 int ul_x,
int ul_y,
int size_x,
int size_y);
92extern bool buffer_rect_fill(
Buffer &target,
93 int ul_x,
int ul_y,
int size_x,
int size_y,
byte value);
105extern bool buffer_rect_copy_2(
const Buffer &from,
Buffer &unto,
106 int from_x,
int from_y,
107 int unto_x,
int unto_y,
108 int size_x,
int size_y);
118extern byte buffer_get_pixel(
const Buffer &buf, word x, word y);
124extern void buffer_hline(
Buffer &buf, word x1, word x2, word y,
byte color);
130extern void buffer_vline(
Buffer &buf, word x, word y1, word y2,
byte color);
135extern void buffer_draw_box(
Buffer &buf, word x1, word y1, word x2, word y2,
byte color);
140extern void buffer_hline_xor(
Buffer &buf,
int x1,
int x2,
int y);
145extern void buffer_vline_xor(
Buffer &buf,
int x,
int y1,
int y2);
150extern void buffer_draw_crosshair(
Buffer &buf,
int x,
int y);
155extern void buffer_draw_box_xor(
Buffer &buf,
int x1,
int y1,
int x2,
int y2);
163extern bool buffer_get_delta_bounds(
Buffer &buf1,
Buffer buf2,
164 byte newcol, word *xl, word *xh, word *yl, word *yh);
173extern byte *buffer_pointer(
Buffer *buf,
int x,
int y);
174extern const byte *buffer_pointer(
const Buffer *buf,
int x,
int y);
176extern bool buffer_conform(
Buffer *buffer,
int *x,
int *y,
191extern int buffer_inter_merge_2(
Buffer from,
Buffer unto,
192 int from_x,
int from_y,
int unto_x,
int unto_y,
int size_x,
int size_y);
199extern void buffer_line(
Buffer target,
int x1,
int y1,
int x2,
int y2,
208extern void buffer_line_xor(
Buffer target,
int x1,
int y1,
int x2,
int y2);
220extern int buffer_legal(
const Buffer &walk,
int orig_wrap,
int x1,
int y1,
int x2,
int y2);
222extern word buffer_rect_fill_pattern(
Buffer target,
int ul_x,
int ul_y,
int size_x,
int size_y,
223 int base_x,
int base_y,
int base_xs,
byte value1,
byte value2,
224 word start_accum, word note_line);
233extern bool buffer_rect_fill_swap(
Buffer target,
int ul_x,
int ul_y,
234 int size_x,
int size_y,
byte value1,
byte value2);
236extern void buffer_peel_horiz(
Buffer *target,
int peel);
238extern void buffer_peel_vert(
Buffer *target,
int peel,
239 byte *work_memory,
long work_size);
241extern int buffer_to_disk(
Buffer *source,
int x,
int y,
int xs,
int ys);
242extern void buffer_from_disk(
Buffer *source,
int buffer_id,
int x,
int y,
int xs,
int ys);
244extern int buffer_preserve(
Buffer *source,
int flags,
245 int source_ems_handle,
int x,
int y,
int xs,
int ys);
246extern void buffer_restore(
Buffer *source,
int preserve_handle,
247 int target_ems_handle,
int x,
int y,
int xs,
int ys);
249extern bool buffer_rect_translate(
Buffer from,
Buffer unto,
250 int from_x,
int from_y,
int unto_x,
int unto_y,
251 int size_x,
int size_y,
byte *table);
253extern bool buffer_scan(
Buffer *buffer,
int magic,
254 int base_x,
int base_y,
int size_x,
int size_y);
256extern bool buffer_compare(
Buffer *buffer0,
Buffer *buffer1,
257 int base_x,
int base_y,
int base_x2,
int base_y2,
int size_x,
int size_y);
Definition: display_client.h:113
void buffer_put_pixel(Buffer *buf, int32 x, int32 y, byte c)