diff options
Diffstat (limited to 'recordmydesktop/src')
| -rw-r--r-- | recordmydesktop/src/rmd_get_frame.c | 91 | 
1 files changed, 43 insertions, 48 deletions
diff --git a/recordmydesktop/src/rmd_get_frame.c b/recordmydesktop/src/rmd_get_frame.c index 1666193..3074ef3 100644 --- a/recordmydesktop/src/rmd_get_frame.c +++ b/recordmydesktop/src/rmd_get_frame.c @@ -83,53 +83,49 @@          (xrect)->height=(brwin)->rrect.height;\  } -#define MARK_BUFFER_AREA_C( data,\ -                            x_tm,\ -                            y_tm,\ -                            width_tm,\ -                            height_tm,\ -                            buffer_width,\ -                            __bit_depth__) {\ -    int k,i;\ -    register u_int##__bit_depth__##_t\ -        *datapi=\ -            ((u_int##__bit_depth__##_t *)data)+y_tm*buffer_width+x_tm;\ -    for(k=0;k<height_tm;k++) {\ -        for(i=0;i<width_tm;i++) {\ -            *datapi+=1;\ -            datapi++;\ -        }\ -        datapi+=buffer_width-width_tm;\ -    }\ +#define MARK_BUFFER_AREA_C(	data,							\ +				x_tm,							\ +				y_tm,							\ +				width_tm,						\ +				height_tm,						\ +				buffer_width,						\ +				__depth__) {						\ +											\ +	register u_int##__depth__##_t *datapi = 					\ +			((u_int##__depth__##_t *)data) + y_tm *buffer_width + x_tm;	\ +											\ +	for(int k = 0; k < height_tm; k++) {						\ +		for(int i = 0; i < width_tm; i++) {					\ +			*datapi += 1;							\ +			datapi++;							\ +		}									\ +		datapi += buffer_width - width_tm;					\ +	}										\  } -#define MARK_BUFFER_AREA(   data,\ -                            x_tm,\ -                            y_tm,\ -                            width_tm,\ -                            height_tm,\ -                            buffer_width,\ -                            __bit_depth__) {\ -    if ((__bit_depth__==24)||(__bit_depth__==32)) {\ -        MARK_BUFFER_AREA_C( data,\ -                            x_tm,\ -                            y_tm,\ -                            width_tm,\ -                            height_tm,\ -                            buffer_width,\ -                            32)\ -    }\ -    else {\ -        MARK_BUFFER_AREA_C( data,\ -                            x_tm,\ -                            y_tm,\ -                            width_tm,\ -                            height_tm,\ -                            buffer_width,\ -                            16)\ -    }\ -}\ - +static void mark_buffer_area(	unsigned char *data, +				int x_tm, int y_tm, +				int width_tm, int height_tm, +				int buffer_width, int depth) { + +	if ((depth == 24) || (depth == 32)) { +		MARK_BUFFER_AREA_C(	data, +					x_tm, +					y_tm, +					width_tm, +					height_tm, +					buffer_width, +					32); +	} else { +		MARK_BUFFER_AREA_C(	data, +					x_tm, +					y_tm, +					width_tm, +					height_tm, +					buffer_width, +					16); +	} +}  //besides taking the first screenshot, this functions primary purpose is to   //initialize the structures and memory. @@ -432,8 +428,7 @@ void *rmdGetFrame(ProgData *pdata) {  								(img_sel)?((unsigned char*)image->data):  								((unsigned char*)image_back->data); -					/* FIXME TODO: why is this a macro? */ -					MARK_BUFFER_AREA( +					mark_buffer_area(  						back_buff,  						mouse_pos_temp.x - temp_brwin.rrect.x + pdata->enc_data->x_offset,  						mouse_pos_temp.y - temp_brwin.rrect.y + pdata->enc_data->y_offset, @@ -569,7 +564,7 @@ void *rmdGetFrame(ProgData *pdata) {  					unsigned char *front_buff = (!img_sel)?((unsigned char*)image->data):  								((unsigned char*)image_back->data); -					MARK_BUFFER_AREA( +					mark_buffer_area(  						front_buff,  						mouse_pos_temp.x - temp_brwin.rrect.x + pdata->enc_data->x_offset,  						mouse_pos_temp.y - temp_brwin.rrect.y + pdata->enc_data->y_offset,  | 
