Cleanup: GPU: Move XOR logic op to gpu_state.c
This commit is contained in:
parent
3481f6eaf2
commit
436d38bb54
|
@ -373,8 +373,7 @@ static void draw_stabilization_border(
|
|||
|
||||
/* Exclusive OR allows to get orig value when second operand is 0,
|
||||
* and negative of orig value when second operand is 1. */
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
glLogicOp(GL_XOR);
|
||||
GPU_logic_op_xor_set(true);
|
||||
|
||||
GPU_matrix_push();
|
||||
GPU_matrix_translate_2f(x, y);
|
||||
|
@ -399,7 +398,7 @@ static void draw_stabilization_border(
|
|||
|
||||
GPU_matrix_pop();
|
||||
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
GPU_logic_op_xor_set(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -790,15 +789,14 @@ static void draw_marker_areas(SpaceClip *sc,
|
|||
immUniform1f("dash_width", 6.0f);
|
||||
immUniform1f("dash_factor", 0.5f);
|
||||
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
glLogicOp(GL_XOR);
|
||||
GPU_logic_op_xor_set(true);
|
||||
|
||||
immBegin(GPU_PRIM_LINES, 2);
|
||||
immVertex2fv(shdr_pos, pos);
|
||||
immVertex2fv(shdr_pos, marker_pos);
|
||||
immEnd();
|
||||
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
GPU_logic_op_xor_set(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -447,15 +447,16 @@ void ED_imbuf_sample_draw(const bContext *C, ARegion *region, void *arg_info)
|
|||
(float[2]){event->x - region->winrct.xmin, event->y - region->winrct.ymin},
|
||||
(float)(info->sample_size / 2.0f) * sima->zoom);
|
||||
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
glLogicOp(GL_XOR);
|
||||
GPU_logic_op_xor_set(true);
|
||||
|
||||
GPU_line_width(1.0f);
|
||||
imm_draw_box_wire_2d(pos,
|
||||
(float)sample_rect_fl.xmin,
|
||||
(float)sample_rect_fl.ymin,
|
||||
(float)sample_rect_fl.xmax,
|
||||
(float)sample_rect_fl.ymax);
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
|
||||
GPU_logic_op_xor_set(false);
|
||||
|
||||
immUnbindProgram();
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ void GPU_viewport_size_get_i(int coords[4]);
|
|||
void GPU_flush(void);
|
||||
void GPU_finish(void);
|
||||
|
||||
void GPU_logic_op_invert_set(bool enable);
|
||||
void GPU_logic_op_xor_set(bool enable);
|
||||
|
||||
/* Attribute push & pop. */
|
||||
typedef enum eGPUAttrMask {
|
||||
|
|
|
@ -181,14 +181,13 @@ void GPU_finish(void)
|
|||
glFinish();
|
||||
}
|
||||
|
||||
void GPU_logic_op_invert_set(bool enable)
|
||||
void GPU_logic_op_xor_set(bool enable)
|
||||
{
|
||||
if (enable) {
|
||||
glLogicOp(GL_INVERT);
|
||||
glLogicOp(GL_XOR);
|
||||
glEnable(GL_COLOR_LOGIC_OP);
|
||||
}
|
||||
else {
|
||||
glLogicOp(GL_COPY);
|
||||
glDisable(GL_COLOR_LOGIC_OP);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue