GrafX2 2.9.3227
The ultimate 256-color painting program
operatio.c File Reference
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include "const.h"
#include "struct.h"
#include "global.h"
#include "misc.h"
#include "osdep.h"
#include "engine.h"
#include "graph.h"
#include "operatio.h"
#include "buttons.h"
#include "pages.h"
#include "errors.h"
#include "screen.h"
#include "brush.h"
#include "windows.h"
#include "input.h"
#include "special.h"
#include "tiles.h"
#include "keyboard.h"
+ Include dependency graph for operatio.c:

Functions

void Start_operation_stack (word new_operation)
 Do some housekeeping before starting work on a operation. More...
 
void Init_start_operation (void)
 
void Operation_push (short value)
 Put a value on Operation_stack. More...
 
void Operation_pop (short *value)
 Take a value off Operation_stack. More...
 
short Distance (short x1, short y1, short x2, short y2)
 
void Display_coords_rel_or_abs (short start_x, short start_y)
 
void Freehand_mode1_1_0 (void)
 
void Freehand_mode1_1_2 (void)
 
void Freehand_mode12_0_2 (void)
 
void Freehand_mode1_2_0 (void)
 
void Freehand_mode1_2_2 (void)
 
void Freehand_mode2_1_0 (void)
 
void Freehand_mode2_1_2 (void)
 
void Freehand_mode2_2_0 (void)
 
void Freehand_mode2_2_2 (void)
 
void Freehand_mode3_1_0 (void)
 
void Freehand_Mode3_2_0 (void)
 
void Freehand_mode3_0_1 (void)
 
void Line_12_0 (void)
 
void Line_12_5 (void)
 
void Line_0_5 (void)
 
void K_line_12_0 (void)
 
void K_line_12_6 (void)
 
void K_line_0_6 (void)
 
void K_line_12_7 (void)
 
void Rectangle_12_0 (void)
 
void Rectangle_12_5 (void)
 
void Empty_rectangle_0_5 (void)
 
void Filled_rectangle_0_5 (void)
 
void Circle_12_0 (void)
 
void Circle_12_5 (void)
 
void Empty_circle_0_5 (void)
 
void Filled_circle_0_5 (void)
 
void Ellipse_12_0 (void)
 
void Ellipse_12_5 (void)
 
void Empty_ellipse_0_5 (void)
 
void Filled_ellipse_0_5 (void)
 
void Fill_1_0 (void)
 
void Fill_2_0 (void)
 
void Replace_1_0 (void)
 
void Replace_2_0 (void)
 
void Draw_curve_cross (short x_pos, short y_pos)
 
void Curve_34_points_1_0 (void)
 
void Curve_34_points_2_0 (void)
 
void Curve_34_points_1_5 (void)
 
void Curve_34_points_2_5 (void)
 
void Curve_4_points_0_5 (void)
 
void Curve_4_points_1_9 (void)
 
void Curve_4_points_2_9 (void)
 
void Compute_3_point_curve (short x1, short y1, short x4, short y4, short *x2, short *y2, short *x3, short *y3)
 
void Curve_3_points_0_5 (void)
 
void Curve_drag (void)
 
void Curve_finalize (void)
 
void Curve_3_points_0_11 (void)
 
void Curve_3_points_12_11 (void)
 
void Airbrush_1_0 (void)
 
void Airbrush_2_0 (void)
 
void Airbrush_12_2 (void)
 
void Airbrush_0_2 (void)
 
void Polygon_12_0 (void)
 
void Polygon_12_9 (void)
 
void Polyfill_12_0 (void)
 
void Polyfill_0_8 (void)
 
void Polyfill_12_8 (void)
 
void Polyfill_12_9 (void)
 
void Polyform_12_0 (void)
 
void Polyform_12_8 (void)
 
void Polyform_0_8 (void)
 
void Filled_polyform_12_0 (void)
 
void Filled_polyform_12_8 (void)
 
void Filled_polyform_0_8 (void)
 
void Filled_contour_0_8 (void)
 
void Scroll_12_0 (void)
 
void Scroll_12_5 (void)
 
void Scroll_0_5 (void)
 
void Grad_circle_12_0 (void)
 
void Grad_circle_12_6 (void)
 
void Grad_circle_0_6 (void)
 
void Grad_circle_12_8 (void)
 
void Grad_circle_or_ellipse_0_8 (void)
 
void Grad_ellipse_12_0 (void)
 
void Grad_ellipse_12_6 (void)
 
void Grad_ellipse_0_6 (void)
 
void Grad_ellipse_12_8 (void)
 
void Grad_rectangle_12_0 (void)
 
void Grad_rectangle_12_5 (void)
 
void Draw_xor_rect (short start_x, short start_y, short end_x, short end_y)
 
void Grad_rectangle_0_5 (void)
 
void Grad_rectangle_0_7 (void)
 
void Grad_rectangle_12_7 (void)
 
void Grad_rectangle_12_9 (void)
 
void Grad_rectangle_0_9 (void)
 
void Centered_lines_12_0 (void)
 
void Centered_lines_12_3 (void)
 
void Centered_lines_0_3 (void)
 
void Centered_lines_12_7 (void)
 
void Centered_lines_0_7 (void)
 
void Pan_view_0_0 (void)
 
void Pan_view_12_0 (void)
 
void Pan_view_12_2 (void)
 
void Pan_view_0_2 (void)
 

Variables

dword Airbrush_next_time
 Time (in SDL ticks) when the next airbrush drawing should be done. More...
 
static enum OPERATIONS Operation_before_pan
 
byte Paintbrush_shape_before_operation
 
byte Paintbrush_hidden_before_scroll
 
byte Cursor_hidden_before_curve
 
byte Cursor_hidden_before_scroll
 

Function Documentation

◆ Start_operation_stack()

◆ Init_start_operation()

◆ Operation_push()

void Operation_push ( short  value)

Put a value on Operation_stack.

References Operation_stack, and Operation_stack_size.

Referenced by Airbrush_12_2(), Airbrush_1_0(), Airbrush_2_0(), Brush_12_0(), Brush_12_5(), Centered_lines_0_3(), Centered_lines_0_7(), Centered_lines_12_0(), Centered_lines_12_3(), Centered_lines_12_7(), Circle_12_0(), Circle_12_5(), Colorpicker_12_0(), Curve_34_points_1_0(), Curve_34_points_1_5(), Curve_34_points_2_0(), Curve_34_points_2_5(), Curve_3_points_0_5(), Curve_4_points_0_5(), Curve_4_points_1_9(), Curve_drag(), Distort_brush_1_0(), Distort_brush_1_8(), Distort_brush_1_9(), Ellipse_12_0(), Ellipse_12_5(), Filled_polyform_0_8(), Filled_polyform_12_0(), Filled_polyform_12_8(), Freehand_mode1_1_0(), Freehand_mode1_1_2(), Freehand_mode1_2_0(), Freehand_mode1_2_2(), Freehand_mode2_1_0(), Freehand_mode2_1_2(), Freehand_mode2_2_0(), Freehand_mode2_2_2(), Freehand_mode3_1_0(), Freehand_Mode3_2_0(), Grad_circle_0_6(), Grad_circle_12_0(), Grad_circle_12_6(), Grad_circle_or_ellipse_0_8(), Grad_ellipse_0_6(), Grad_ellipse_12_0(), Grad_ellipse_12_6(), Grad_rectangle_0_5(), Grad_rectangle_0_7(), Grad_rectangle_12_0(), Grad_rectangle_12_5(), Grad_rectangle_12_7(), Grad_rectangle_12_9(), K_line_0_6(), K_line_12_0(), K_line_12_6(), K_line_12_7(), Line_12_0(), Line_12_5(), Pan_view_12_0(), Pan_view_12_2(), Polybrush_12_8(), Polyfill_0_8(), Polyfill_12_0(), Polyfill_12_8(), Polyfill_12_9(), Polyform_0_8(), Polyform_12_0(), Polyform_12_8(), Polygon_12_0(), Polygon_12_9(), Rectangle_12_0(), Rectangle_12_5(), Rightclick_colorpick(), Rotate_brush_0_5(), Rotate_brush_12_0(), Rotate_brush_1_5(), Scroll_12_0(), Scroll_12_5(), Stretch_brush_0_7(), Stretch_brush_12_0(), and Stretch_brush_1_7().

◆ Operation_pop()

void Operation_pop ( short *  value)

Take a value off Operation_stack.

References Operation_stack, and Operation_stack_size.

Referenced by Airbrush_12_2(), Brush_0_5(), Brush_12_5(), Centered_lines_0_3(), Centered_lines_0_7(), Centered_lines_12_3(), Centered_lines_12_7(), Circle_12_5(), Colorpicker_0_1(), Curve_34_points_1_5(), Curve_34_points_2_5(), Curve_3_points_0_5(), Curve_4_points_0_5(), Curve_4_points_1_9(), Curve_4_points_2_9(), Curve_drag(), Curve_finalize(), Distort_brush_0_9(), Distort_brush_1_8(), Distort_brush_1_9(), Distort_brush_2_8(), Ellipse_12_5(), Empty_circle_0_5(), Empty_ellipse_0_5(), Empty_rectangle_0_5(), Filled_circle_0_5(), Filled_contour_0_8(), Filled_ellipse_0_5(), Filled_polyform_0_8(), Filled_polyform_12_8(), Filled_rectangle_0_5(), Freehand_mode1_1_2(), Freehand_mode1_2_2(), Freehand_mode2_1_2(), Freehand_mode2_2_2(), Grad_circle_0_6(), Grad_circle_12_6(), Grad_circle_12_8(), Grad_circle_or_ellipse_0_8(), Grad_ellipse_0_6(), Grad_ellipse_12_6(), Grad_ellipse_12_8(), Grad_rectangle_0_5(), Grad_rectangle_0_9(), Grad_rectangle_12_5(), Grad_rectangle_12_7(), Grad_rectangle_12_9(), K_line_0_6(), K_line_12_6(), K_line_12_7(), Line_0_5(), Line_12_5(), Pan_view_0_2(), Pan_view_12_2(), Polybrush_12_8(), Polyfill_0_8(), Polyfill_12_8(), Polyfill_12_9(), Polyform_0_8(), Polyform_12_8(), Polygon_12_9(), Rectangle_12_5(), Rightclick_colorpick_0_1(), Rotate_brush_0_5(), Rotate_brush_1_5(), Rotate_brush_2_5(), Scroll_0_5(), Scroll_12_5(), Stretch_brush_0_7(), Stretch_brush_1_7(), and Stretch_brush_2_7().

◆ Distance()

short Distance ( short  x1,
short  y1,
short  x2,
short  y2 
)

◆ Display_coords_rel_or_abs()

◆ Freehand_mode1_1_0()

◆ Freehand_mode1_1_2()

◆ Freehand_mode12_0_2()

void Freehand_mode12_0_2 ( void  )

◆ Freehand_mode1_2_0()

◆ Freehand_mode1_2_2()

◆ Freehand_mode2_1_0()

◆ Freehand_mode2_1_2()

◆ Freehand_mode2_2_0()

◆ Freehand_mode2_2_2()

◆ Freehand_mode3_1_0()

◆ Freehand_Mode3_2_0()

◆ Freehand_mode3_0_1()

void Freehand_mode3_0_1 ( void  )

◆ Line_12_0()

◆ Line_12_5()

◆ Line_0_5()

◆ K_line_12_0()

◆ K_line_12_6()

◆ K_line_0_6()

◆ K_line_12_7()

◆ Rectangle_12_0()

◆ Rectangle_12_5()

◆ Empty_rectangle_0_5()

◆ Filled_rectangle_0_5()

◆ Circle_12_0()

◆ Circle_12_5()

◆ Empty_circle_0_5()

◆ Filled_circle_0_5()

◆ Ellipse_12_0()

◆ Ellipse_12_5()

◆ Empty_ellipse_0_5()

◆ Filled_ellipse_0_5()

◆ Fill_1_0()

◆ Fill_2_0()

◆ Replace_1_0()

◆ Replace_2_0()

◆ Draw_curve_cross()

◆ Curve_34_points_1_0()

◆ Curve_34_points_2_0()

◆ Curve_34_points_1_5()

◆ Curve_34_points_2_5()

◆ Curve_4_points_0_5()

◆ Curve_4_points_1_9()

◆ Curve_4_points_2_9()

◆ Compute_3_point_curve()

void Compute_3_point_curve ( short  x1,
short  y1,
short  x4,
short  y4,
short *  x2,
short *  y2,
short *  x3,
short *  y3 
)

◆ Curve_3_points_0_5()

◆ Curve_drag()

◆ Curve_finalize()

◆ Curve_3_points_0_11()

void Curve_3_points_0_11 ( void  )

◆ Curve_3_points_12_11()

void Curve_3_points_12_11 ( void  )

◆ Airbrush_1_0()

◆ Airbrush_2_0()

◆ Airbrush_12_2()

◆ Airbrush_0_2()

void Airbrush_0_2 ( void  )

◆ Polygon_12_0()

◆ Polygon_12_9()

◆ Polyfill_12_0()

◆ Polyfill_0_8()

◆ Polyfill_12_8()

◆ Polyfill_12_9()

◆ Polyform_12_0()

◆ Polyform_12_8()

◆ Polyform_0_8()

◆ Filled_polyform_12_0()

◆ Filled_polyform_12_8()

◆ Filled_polyform_0_8()

◆ Filled_contour_0_8()

◆ Scroll_12_0()

◆ Scroll_12_5()

◆ Scroll_0_5()

◆ Grad_circle_12_0()

◆ Grad_circle_12_6()

◆ Grad_circle_0_6()

◆ Grad_circle_12_8()

◆ Grad_circle_or_ellipse_0_8()

void Grad_circle_or_ellipse_0_8 ( void  )

◆ Grad_ellipse_12_0()

◆ Grad_ellipse_12_6()

◆ Grad_ellipse_0_6()

◆ Grad_ellipse_12_8()

◆ Grad_rectangle_12_0()

◆ Grad_rectangle_12_5()

◆ Draw_xor_rect()

◆ Grad_rectangle_0_5()

◆ Grad_rectangle_0_7()

void Grad_rectangle_0_7 ( void  )

◆ Grad_rectangle_12_7()

void Grad_rectangle_12_7 ( void  )

◆ Grad_rectangle_12_9()

◆ Grad_rectangle_0_9()

◆ Centered_lines_12_0()

◆ Centered_lines_12_3()

void Centered_lines_12_3 ( void  )

◆ Centered_lines_0_3()

◆ Centered_lines_12_7()

◆ Centered_lines_0_7()

◆ Pan_view_0_0()

◆ Pan_view_12_0()

void Pan_view_12_0 ( void  )

◆ Pan_view_12_2()

◆ Pan_view_0_2()

Variable Documentation

◆ Airbrush_next_time

dword Airbrush_next_time

Time (in SDL ticks) when the next airbrush drawing should be done.

Also used for discontinuous freehand drawing.

Referenced by Airbrush_12_2(), Airbrush_1_0(), Airbrush_2_0(), Freehand_mode2_1_0(), Freehand_mode2_1_2(), Freehand_mode2_2_0(), and Freehand_mode2_2_2().

◆ Operation_before_pan

enum OPERATIONS Operation_before_pan
static

◆ Paintbrush_shape_before_operation

◆ Paintbrush_hidden_before_scroll

◆ Cursor_hidden_before_curve

byte Cursor_hidden_before_curve

◆ Cursor_hidden_before_scroll

byte Cursor_hidden_before_scroll

Referenced by Scroll_0_5(), and Scroll_12_0().