Python bgl.glEnable() Examples
The following are 30
code examples of bgl.glEnable().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
bgl
, or try the search function
.
Example #1
Source File: edit_mesh.py From coa_tools with GNU General Public License v3.0 | 7 votes |
def draw_callback_text(self): obj = bpy.context.active_object ### draw text for edge length detection if self.shift and self.point_type == "EDGE": p1 = obj.matrix_world * self.verts_edges_data[0] p2 = obj.matrix_world * self.verts_edges_data[1] length = (p1-p2).magnitude font_id = 0 line = str(round(length,2)) bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(1,1,1,1) blf.position(font_id, self.mouse_2d_x-15, self.mouse_2d_y+30, 0) blf.size(font_id, 20, 72) blf.draw(font_id, line) if self.mode == "EDIT_MESH": draw_edit_mode(self,bpy.context,color=[1.0, 0.39, 0.41, 1.0],text="Edit Mesh Mode",offset=-20) elif self.mode == "DRAW_BONE_SHAPE": draw_edit_mode(self,bpy.context,color=[1.0, 0.39, 0.41, 1.0],text="Draw Bone Shape",offset=-20)
Example #2
Source File: skeleton_ui_draw.py From object_alignment with GNU General Public License v3.0 | 6 votes |
def draw3d_polyline(points, color, thickness, view_loc, view_ortho, stipple=False, zfar=0.997): if not points: return if stipple: bgl.glLineStipple(4, 0x5555) #play with this later bgl.glEnable(bgl.GL_LINE_STIPPLE) bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(*color) bgl.glLineWidth(thickness) set_depthrange(0.0, zfar, points, view_loc, view_ortho) bgl.glBegin(bgl.GL_LINE_STRIP) for coord in points: bgl.glVertex3f(*coord) bgl.glEnd() bgl.glLineWidth(1) if stipple: bgl.glDisable(bgl.GL_LINE_STIPPLE) bgl.glEnable(bgl.GL_BLEND) # back to uninterrupted lines
Example #3
Source File: operator_modal_draw.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def draw_callback_px(self, context): print("mouse points", len(self.mouse_path)) font_id = 0 # XXX, need to find out how best to get this. # draw some text blf.position(font_id, 15, 30, 0) blf.size(font_id, 20, 72) blf.draw(font_id, "Hello Word " + str(len(self.mouse_path))) # 50% alpha, 2 pixel width line bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 0.5) bgl.glLineWidth(2) bgl.glBegin(bgl.GL_LINE_STRIP) for x, y in self.mouse_path: bgl.glVertex2i(x, y) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0)
Example #4
Source File: archipack_gl.py From archipack with GNU General Public License v3.0 | 6 votes |
def draw(self, context, render=False): self.render = render bgl.glPushAttrib(bgl.GL_ENABLE_BIT) bgl.glEnable(bgl.GL_BLEND) if render: # enable anti-alias on polygons bgl.glEnable(bgl.GL_POLYGON_SMOOTH) bgl.glColor4f(*self.colour) pts = [ self.position_2d_from_coord(context, pt, render) for pt in self.pts_3d ] p0 = pts[0] p1 = pts[1] bgl.glRectf(p0.x, p0.y, p1.x, p1.y) self._end()
Example #5
Source File: mi_curve_stretch.py From mifthtools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def draw_text_2d(self, context): cur_stretch_settings = context.scene.mi_cur_stretch_settings rh = context.region.height rw = context.region.width font_id = 0 font_size = 30 #Set font color bgl.glEnable(bgl.GL_BLEND) #bgl.glColor(1, 0.75, 0.1, 1) blf.color(0, 1, 0.75, 0.1, 1) bgl.glLineWidth(2) #Draw text blf.position(font_id, rw - 400, 210 - font_size, 0) blf.size(font_id, font_size, 72) blf.draw(font_id, str(cur_stretch_settings.points_number)) # restore opengl defaults bgl.glLineWidth(1) blf.color(0, 0.0, 0.0, 0.0, 1.0) bgl.glDisable(bgl.GL_BLEND) #bgl.glColor(0, 0.0, 0.0, 0.0, 1.0)
Example #6
Source File: archipack_gl.py From archipack with GNU General Public License v3.0 | 6 votes |
def draw(self, context, render=False): """ render flag when rendering """ # print("draw_polygon") self.render = render bgl.glPushAttrib(bgl.GL_ENABLE_BIT) bgl.glEnable(bgl.GL_BLEND) if render: # enable anti-alias on polygons bgl.glEnable(bgl.GL_POLYGON_SMOOTH) bgl.glColor4f(*self.colour) bgl.glBegin(bgl.GL_POLYGON) for pt in self.pts: p = self.position_2d_from_coord(context, pt, render) bgl.glVertex2f(p.x, p.y) self._end()
Example #7
Source File: operator_modal_draw.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def draw_callback_px(self, context): print("mouse points", len(self.mouse_path)) font_id = 0 # XXX, need to find out how best to get this. # draw some text blf.position(font_id, 15, 30, 0) blf.size(font_id, 20, 72) blf.draw(font_id, "Hello Word " + str(len(self.mouse_path))) # 50% alpha, 2 pixel width line bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 0.5) bgl.glLineWidth(2) bgl.glBegin(bgl.GL_LINE_STRIP) for x, y in self.mouse_path: bgl.glVertex2i(x, y) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0)
Example #8
Source File: archipack_gl.py From archipack with GNU General Public License v3.0 | 6 votes |
def draw(self, context, render=False): """ render flag when rendering """ # print("draw_line %s" % (type(self).__name__)) bgl.glPushAttrib(bgl.GL_ENABLE_BIT) if self.style == bgl.GL_LINE_STIPPLE: bgl.glLineStipple(1, 0x9999) bgl.glEnable(self.style) bgl.glEnable(bgl.GL_BLEND) if render: # enable anti-alias on lines bgl.glEnable(bgl.GL_LINE_SMOOTH) bgl.glColor4f(*self.colour) bgl.glLineWidth(self.width) if self.closed: bgl.glBegin(bgl.GL_LINE_LOOP) else: bgl.glBegin(bgl.GL_LINE_STRIP) for pt in self.pts: p = self.position_2d_from_coord(context, pt, render) bgl.glVertex2f(p.x, p.y) self._end()
Example #9
Source File: skeleton_ui_draw.py From object_alignment with GNU General Public License v3.0 | 6 votes |
def draw_circle(self, world_loc, radius, inner_ratio, color_outside, color_inside): bgl.glDepthRange(0, 0.9999) # squeeze depth just a bit bgl.glEnable(bgl.GL_BLEND) bgl.glDepthMask(bgl.GL_FALSE) # do not overwrite depth bgl.glEnable(bgl.GL_DEPTH_TEST) bgl.glDepthFunc(bgl.GL_LEQUAL) # draw in front of geometry circleShader.enable() self.drawing.point_size(2.0 * radius) circleShader['uMVPMatrix'] = self.drawing.get_view_matrix_buffer() circleShader['uInOut'] = inner_ratio bgl.glBegin(bgl.GL_POINTS) circleShader['vOutColor'] = color_outside circleShader['vInColor'] = color_inside bgl.glVertex3f(*world_loc) bgl.glEnd() circleShader.disable() bgl.glDepthFunc(bgl.GL_LEQUAL) bgl.glDepthRange(0.0, 1.0) bgl.glDepthMask(bgl.GL_TRUE)
Example #10
Source File: ops.py From Screencast-Keys with GNU General Public License v3.0 | 6 votes |
def draw_line(p1, p2, color, shadow=False, shadow_color=None): bgl.glEnable(bgl.GL_BLEND) bgl.glEnable(bgl.GL_LINE_SMOOTH) # Draw shadow. if shadow: bgl.glLineWidth(3.0) bgl.glColor4f(*shadow_color, 1.0) bgl.glBegin(bgl.GL_LINES) bgl.glVertex2f(*p1) bgl.glVertex2f(*p2) bgl.glEnd() # Draw line. bgl.glLineWidth(1.5 if shadow else 1.0) bgl.glColor3f(*color) bgl.glBegin(bgl.GL_LINES) bgl.glVertex2f(*p1) bgl.glVertex2f(*p2) bgl.glEnd() bgl.glLineWidth(1.0) bgl.glDisable(bgl.GL_LINE_SMOOTH)
Example #11
Source File: ui.py From addon_common with GNU General Public License v3.0 | 6 votes |
def draw_darken(self): bgl.glPushAttrib(bgl.GL_ALL_ATTRIB_BITS) bgl.glMatrixMode(bgl.GL_PROJECTION) bgl.glPushMatrix() bgl.glLoadIdentity() bgl.glColor4f(0,0,0,0.25) # TODO: use window background color?? bgl.glEnable(bgl.GL_BLEND) bgl.glDisable(bgl.GL_DEPTH_TEST) bgl.glBegin(bgl.GL_QUADS) # TODO: not use immediate mode bgl.glVertex2f(-1, -1) bgl.glVertex2f( 1, -1) bgl.glVertex2f( 1, 1) bgl.glVertex2f(-1, 1) bgl.glEnd() bgl.glPopMatrix() bgl.glPopAttrib()
Example #12
Source File: muv_uvbb_ops.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def __draw_ctrl_point(self, context, pos): """ Draw control point """ cp_size = context.scene.muv_uvbb_cp_size offset = cp_size / 2 verts = [ [pos.x - offset, pos.y - offset], [pos.x - offset, pos.y + offset], [pos.x + offset, pos.y + offset], [pos.x + offset, pos.y - offset] ] bgl.glEnable(bgl.GL_BLEND) bgl.glBegin(bgl.GL_QUADS) bgl.glColor4f(1.0, 1.0, 1.0, 1.0) for (x, y) in verts: bgl.glVertex2f(x, y) bgl.glEnd()
Example #13
Source File: mi_curve_test.py From mifthtools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mi_curve_draw_3d_polyline(points, p_size, p_col, x_ray): bgl.glEnable(bgl.GL_BLEND) bgl.glLineWidth(1) if x_ray is True: bgl.glDisable(bgl.GL_DEPTH_TEST) bgl.glPointSize(p_size) # bgl.glBegin(bgl.GL_LINE_LOOP) bgl.glBegin(bgl.GL_LINE_STRIP) bgl.glColor4f(p_col[0], p_col[1], p_col[2], p_col[3]) # bgl.glBegin(bgl.GL_POLYGON) for point in points: bgl.glVertex3f(point[0], point[1], point[2]) if x_ray is True: bgl.glEnable(bgl.GL_DEPTH_TEST) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0)
Example #14
Source File: drawing.py From addon_common with GNU General Public License v3.0 | 6 votes |
def text_draw2D(self, text, pos:Point2D, color, dropshadow=None, fontsize=None, fontid=None): if fontsize: size_prev = self.set_font_size(fontsize, fontid=fontid) lines = str(text).splitlines() l,t = round(pos[0]),round(pos[1]) lh = self.line_height lb = self.line_base if dropshadow: self.text_draw2D(text, (l+1,t-1), dropshadow, fontsize=fontsize) bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(*color) for line in lines: th = self.get_text_height(line) fm.draw(line, xyz=(l, t-lb, 0), fontid=fontid) # blf.position(self.font_id, l, t - lb, 0) # blf.draw(self.font_id, line) t -= lh if fontsize: self.set_font_size(size_prev, fontid=fontid)
Example #15
Source File: ui.py From addon_common with GNU General Public License v3.0 | 6 votes |
def _draw(self): self.buffer_image() if not self.buffered: return cx,cy = (self.pos.x + self.size.x / 2, self.pos.y - self.size.y / 2) iw,ih = self.get_image_width(),self.get_image_height() il,it = cx-iw/2, cy+ih/2 bgl.glColor4f(1,1,1,1) bgl.glEnable(bgl.GL_BLEND) bgl.glEnable(bgl.GL_TEXTURE_2D) bgl.glBindTexture(bgl.GL_TEXTURE_2D, self.texture_id) bgl.glBegin(bgl.GL_QUADS) bgl.glTexCoord2f(0,0); bgl.glVertex2f(il,it) bgl.glTexCoord2f(0,1); bgl.glVertex2f(il,it-ih) bgl.glTexCoord2f(1,1); bgl.glVertex2f(il+iw,it-ih) bgl.glTexCoord2f(1,0); bgl.glVertex2f(il+iw,it) bgl.glEnd() bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0)
Example #16
Source File: ui.py From addon_common with GNU General Public License v3.0 | 6 votes |
def _draw(self): l,t = self.pos w,h = self.size if debug_draw: bgl.glEnable(bgl.GL_BLEND) bgl.glBegin(bgl.GL_QUADS) bgl.glColor4f(0,1,1,0.5) bgl.glVertex2f(l, t) bgl.glVertex2f(l, t - h) bgl.glVertex2f(l + w, t - h) bgl.glVertex2f(l + w, t) bgl.glEnd() if self.background: bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(*self.background) bgl.glBegin(bgl.GL_QUADS) bgl.glVertex2f(l, t) bgl.glVertex2f(l+w, t) bgl.glVertex2f(l+w, t-h) bgl.glVertex2f(l, t-h) bgl.glEnd()
Example #17
Source File: mi_curve_test.py From mifthtools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mi_draw_2d_point(point_x, point_y, p_size=4, p_col=(1.0,1.0,1.0,1.0)): bgl.glEnable(bgl.GL_BLEND) #bgl.glColor4f(1.0, 1.0, 1.0, 0.5) #bgl.glLineWidth(2) bgl.glPointSize(p_size) # bgl.glBegin(bgl.GL_LINE_LOOP) bgl.glBegin(bgl.GL_POINTS) # bgl.glBegin(bgl.GL_POLYGON) bgl.glColor4f(p_col[0], p_col[1], p_col[2], p_col[3]) bgl.glVertex2f(point_x, point_y) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0) # TODO MOVE TO UTILITIES
Example #18
Source File: mi_curve_test.py From mifthtools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mi_curve_draw_3d_polyline(points, p_size, p_col, x_ray): bgl.glEnable(bgl.GL_BLEND) bgl.glLineWidth(1) if x_ray is True: bgl.glDisable(bgl.GL_DEPTH_TEST) bgl.glPointSize(p_size) # bgl.glBegin(bgl.GL_LINE_LOOP) bgl.glBegin(bgl.GL_LINE_STRIP) bgl.glColor4f(p_col[0], p_col[1], p_col[2], p_col[3]) # bgl.glBegin(bgl.GL_POLYGON) for point in points: bgl.glVertex3f(point[0], point[1], point[2]) if x_ray is True: bgl.glEnable(bgl.GL_DEPTH_TEST) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0)
Example #19
Source File: cookiecutter_ui.py From addon_common with GNU General Public License v3.0 | 6 votes |
def ui_start(self): def preview(): self._draw_pre3d() def postview(): self._draw_post3d() def postpixel(): bgl.glEnable(bgl.GL_MULTISAMPLE) bgl.glEnable(bgl.GL_BLEND) bgl.glEnable(bgl.GL_POINT_SMOOTH) self._draw_post2d() try: self.wm.draw_postpixel(self.context) except Exception as e: print('Caught exception while trying to draw window UI') debugger.print_exception() print(e) self._handle_preview = self._space.draw_handler_add(preview, tuple(), 'WINDOW', 'PRE_VIEW') self._handle_postview = self._space.draw_handler_add(postview, tuple(), 'WINDOW', 'POST_VIEW') self._handle_postpixel = self._space.draw_handler_add(postpixel, tuple(), 'WINDOW', 'POST_PIXEL') self._area.tag_redraw()
Example #20
Source File: mi_widget_curve.py From mifthtools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def draw_3d_polyline(points, p_size, p_col, x_ray): bgl.glEnable(bgl.GL_BLEND) bgl.glLineWidth(1) if x_ray is True: bgl.glDisable(bgl.GL_DEPTH_TEST) bgl.glPointSize(p_size) # bgl.glBegin(bgl.GL_LINE_LOOP) bgl.glBegin(bgl.GL_LINE_STRIP) bgl.glColor4f(p_col[0], p_col[1], p_col[2], p_col[3]) # bgl.glBegin(bgl.GL_POLYGON) for point in points: bgl.glVertex3f(point[0], point[1], point[2]) if x_ray is True: bgl.glEnable(bgl.GL_DEPTH_TEST) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0)
Example #21
Source File: image_background_transform.py From image-background-transform with GNU General Public License v2.0 | 6 votes |
def draw_callback_px(self, context): """From blender's operator_modal_draw.py modal operator template""" if self.do_draw: bgl.glEnable(bgl.GL_BLEND) bgl.glEnable(bgl.GL_LINE_STIPPLE) bgl.glColor4f(0.0, 0.0, 0.0, 1.0) bgl.glLineWidth(1) bgl.glBegin(bgl.GL_LINE_STRIP) bgl.glVertex2i(int(self.draw_start.x), int(self.draw_start.y)) bgl.glVertex2i(int(self.draw_end.x), int(self.draw_end.y)) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glDisable(bgl.GL_LINE_STIPPLE) bgl.glColor4f(0.0, 0.0, 0.0, 1.0)
Example #22
Source File: mi_curve_test.py From mifthtools with BSD 3-Clause "New" or "Revised" License | 6 votes |
def mi_draw_2d_point(point_x, point_y, p_size=4, p_col=(1.0,1.0,1.0,1.0)): bgl.glEnable(bgl.GL_BLEND) #bgl.glColor4f(1.0, 1.0, 1.0, 0.5) #bgl.glLineWidth(2) bgl.glPointSize(p_size) # bgl.glBegin(bgl.GL_LINE_LOOP) bgl.glBegin(bgl.GL_POINTS) # bgl.glBegin(bgl.GL_POLYGON) bgl.glColor4f(p_col[0], p_col[1], p_col[2], p_col[3]) bgl.glVertex2f(point_x, point_y) bgl.glEnd() # restore opengl defaults bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND) bgl.glColor4f(0.0, 0.0, 0.0, 1.0) # TODO MOVE TO UTILITIES
Example #23
Source File: opengl.py From BlenderPro with GNU General Public License v3.0 | 6 votes |
def draw_outline_or_region(mode, points, color): ''' draws and outline or region mode: either bgl.GL_POLYGON or bgl.GL_LINE_LOOP color: will need to be set beforehand using theme colors. eg bgl.glColor4f(self.ri, self.gi, self.bi, self.ai) return: None ''' bgl.glColor4f(color[0],color[1],color[2],color[3]) if mode == 'GL_LINE_LOOP': bgl.glBegin(bgl.GL_LINE_LOOP) else: bgl.glEnable(bgl.GL_BLEND) bgl.glBegin(bgl.GL_POLYGON) # start with corner right-bottom for i in range(0,len(points)): bgl.glVertex2f(points[i][0],points[i][1]) bgl.glEnd()
Example #24
Source File: bmesh_render.py From addon_common with GNU General Public License v3.0 | 5 votes |
def glEnableStipple(enable=True): if enable: bgl.glLineStipple(4, 0x5555) bgl.glEnable(bgl.GL_LINE_STIPPLE) else: bgl.glDisable(bgl.GL_LINE_STIPPLE) # def glEnableBackfaceCulling(enable=True): # if enable: # bgl.glDisable(bgl.GL_CULL_FACE) # bgl.glDepthFunc(bgl.GL_GEQUAL) # else: # bgl.glDepthFunc(bgl.GL_LEQUAL) # bgl.glEnable(bgl.GL_CULL_FACE)
Example #25
Source File: skeleton_ui_draw.py From object_alignment with GNU General Public License v3.0 | 5 votes |
def draw2d_polyline(points, color, thickness, stipple=False): if stipple: bgl.glLineStipple(4, 0x5555) #play with this later bgl.glEnable(bgl.GL_LINE_STIPPLE) bgl.glEnable(bgl.GL_BLEND) bgl.glColor4f(*color) bgl.glLineWidth(thickness) bgl.glBegin(bgl.GL_LINE_STRIP) for coord in points: bgl.glVertex2f(*coord) bgl.glEnd() bgl.glLineWidth(1) if stipple: bgl.glDisable(bgl.GL_LINE_STIPPLE) bgl.glEnable(bgl.GL_BLEND) # back to uninterupted lines
Example #26
Source File: bmesh_render.py From addon_common with GNU General Public License v3.0 | 5 votes |
def glSetDefaultOptions(opts=None): bgl.glEnable(bgl.GL_MULTISAMPLE) bgl.glEnable(bgl.GL_BLEND) bgl.glDisable(bgl.GL_LIGHTING) bgl.glEnable(bgl.GL_DEPTH_TEST) bgl.glEnable(bgl.GL_POINT_SMOOTH) bgl.glEnable(bgl.GL_LINE_SMOOTH) bgl.glHint(bgl.GL_LINE_SMOOTH_HINT, bgl.GL_NICEST)
Example #27
Source File: drawing.py From addon_common with GNU General Public License v3.0 | 5 votes |
def enable_stipple(self): bgl.glLineStipple(4, 0x5555) bgl.glEnable(bgl.GL_LINE_STIPPLE)
Example #28
Source File: display.py From phobos with BSD 3-Clause "New" or "Revised" License | 5 votes |
def draw_2dpolygon(points, linecolor=None, fillcolor=None, distance=0.2, linewidth=1): """ Args: points: linecolor: (Default value = None) fillcolor: (Default value = None) distance: (Default value = 0.2) linewidth: (Default value = 1) Returns: """ # background bgl.glEnable(bgl.GL_BLEND) bgl.glLineWidth(linewidth) if fillcolor: bgl.glColor4f(*fillcolor) bgl.glBegin(bgl.GL_POLYGON) for p in points: bgl.glVertex3f(*p, distance) bgl.glEnd() # frame if linecolor: bgl.glColor4f(*linecolor) bgl.glBegin(bgl.GL_LINE_STRIP) for p in points: bgl.glVertex3f(*p, distance) bgl.glVertex3f(*points[0], distance) bgl.glEnd() bgl.glLineWidth(1) bgl.glDisable(bgl.GL_BLEND)
Example #29
Source File: shaders.py From addon_common with GNU General Public License v3.0 | 5 votes |
def circleShaderStart(shader): bgl.glDisable(bgl.GL_POINT_SMOOTH) bgl.glEnable(bgl.GL_POINT_SPRITE)
Example #30
Source File: drawing.py From addon_common with GNU General Public License v3.0 | 5 votes |
def start(context): assert not ScissorStack.started rgn = context.region ScissorStack.context = context ScissorStack.box = (rgn.x, rgn.y, rgn.width, rgn.height) bgl.glGetIntegerv(bgl.GL_SCISSOR_BOX, ScissorStack.buf) ScissorStack.scissor_enabled = (bgl.glIsEnabled(bgl.GL_SCISSOR_TEST) == bgl.GL_TRUE) ScissorStack.stack = [tuple(ScissorStack.buf)] ScissorStack.started = True if not ScissorStack.scissor_enabled: bgl.glEnable(bgl.GL_SCISSOR_TEST)