[Bf-extensions-cvs] [6feb9c53] master: Magic UV: replace deprecated bgl module
Germano Cavalcante
noreply at git.blender.org
Fri Sep 9 23:34:50 CEST 2022
Commit: 6feb9c532d7b0850579be084ddce5016ce5b7e08
Author: Germano Cavalcante
Date: Fri Sep 9 18:28:12 2022 -0300
Branches: master
https://developer.blender.org/rBA6feb9c532d7b0850579be084ddce5016ce5b7e08
Magic UV: replace deprecated bgl module
Part of T80730
===================================================================
M magic_uv/__init__.py
D magic_uv/lib/__init__.py
D magic_uv/lib/bglx.py
M magic_uv/op/__init__.py
M magic_uv/op/texture_projection.py
M magic_uv/op/uv_bounding_box.py
M magic_uv/op/uv_inspection.py
M magic_uv/op/uv_sculpt.py
===================================================================
diff --git a/magic_uv/__init__.py b/magic_uv/__init__.py
index fe2fe0ae..c79f09ff 100644
--- a/magic_uv/__init__.py
+++ b/magic_uv/__init__.py
@@ -12,8 +12,8 @@ bl_info = {
"Keith (Wahooney) Boshoff, McBuff, MaxRobinot, "
"Alexander Milovsky, Dusan Stevanovic, MatthiasThDs, "
"theCryingMan, PratikBorhade302",
- "version": (6, 6, 0),
- "blender": (2, 80, 0),
+ "version": (6, 7, 0),
+ "blender": (3, 4, 0),
"location": "See Add-ons Preferences",
"description": "UV Toolset. See Add-ons Preferences for details",
"warning": "",
diff --git a/magic_uv/lib/__init__.py b/magic_uv/lib/__init__.py
deleted file mode 100644
index 12838e0d..00000000
--- a/magic_uv/lib/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-__author__ = "Nutti <nutti.metro at gmail.com>"
-__status__ = "production"
-__version__ = "6.6"
-__date__ = "22 Apr 2022"
-
-if "bpy" in locals():
- import importlib
- importlib.reload(bglx)
-else:
- from . import bglx
-
-import bpy
diff --git a/magic_uv/lib/bglx.py b/magic_uv/lib/bglx.py
deleted file mode 100644
index c1f696ab..00000000
--- a/magic_uv/lib/bglx.py
+++ /dev/null
@@ -1,288 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-from threading import Lock
-
-import bgl
-from bgl import Buffer as Buffer
-import gpu
-from gpu_extras.batch import batch_for_shader
-
-GL_LINES = 0
-GL_LINE_STRIP = 1
-GL_LINE_LOOP = 2
-GL_TRIANGLES = 5
-GL_TRIANGLE_FAN = 6
-GL_QUADS = 4
-
-class InternalData:
- __inst = None
- __lock = Lock()
-
- def __init__(self):
- raise NotImplementedError("Not allowed to call constructor")
-
- @classmethod
- def __internal_new(cls):
- inst = super().__new__(cls)
- inst.color = [1.0, 1.0, 1.0, 1.0]
- inst.line_width = 1.0
-
- return inst
-
- @classmethod
- def get_instance(cls):
- if not cls.__inst:
- with cls.__lock:
- if not cls.__inst:
- cls.__inst = cls.__internal_new()
-
- return cls.__inst
-
- def init(self):
- self.clear()
-
- def set_prim_mode(self, mode):
- self.prim_mode = mode
-
- def set_dims(self, dims):
- self.dims = dims
-
- def add_vert(self, v):
- self.verts.append(v)
-
- def add_tex_coord(self, uv):
- self.tex_coords.append(uv)
-
- def set_color(self, c):
- self.color = c
-
- def set_line_width(self, width):
- self.line_width = width
-
- def clear(self):
- self.prim_mode = None
- self.verts = []
- self.dims = None
- self.tex_coords = []
-
- def get_verts(self):
- return self.verts
-
- def get_dims(self):
- return self.dims
-
- def get_prim_mode(self):
- return self.prim_mode
-
- def get_color(self):
- return self.color
-
- def get_line_width(self):
- return self.line_width
-
- def get_tex_coords(self):
- return self.tex_coords
-
-
-def glLineWidth(width):
- inst = InternalData.get_instance()
- inst.set_line_width(width)
-
-
-def glColor3f(r, g, b):
- inst = InternalData.get_instance()
- inst.set_color([r, g, b, 1.0])
-
-
-def glColor4f(r, g, b, a):
- inst = InternalData.get_instance()
- inst.set_color([r, g, b, a])
-
-
-def glRecti(x0, y0, x1, y1):
- glBegin(GL_QUADS)
- glVertex2f(x0, y0)
- glVertex2f(x0, y1)
- glVertex2f(x1, y1)
- glVertex2f(x1, y0)
- glEnd()
-
-
-def glBegin(mode):
- inst = InternalData.get_instance()
- inst.init()
- inst.set_prim_mode(mode)
-
-
-def _get_transparency_shader():
- vertex_shader = '''
- uniform mat4 modelViewMatrix;
- uniform mat4 projectionMatrix;
-
- in vec2 pos;
- in vec2 texCoord;
- out vec2 uvInterp;
-
- void main()
- {
- uvInterp = texCoord;
- gl_Position = projectionMatrix * modelViewMatrix * vec4(pos.xy, 0.0, 1.0);
- gl_Position.z = 1.0;
- }
- '''
-
- fragment_shader = '''
- uniform sampler2D image;
- uniform vec4 color;
-
- in vec2 uvInterp;
- out vec4 fragColor;
-
- void main()
- {
- fragColor = texture(image, uvInterp);
- fragColor.a = color.a;
- }
- '''
-
- return vertex_shader, fragment_shader
-
-
-def glEnd():
- inst = InternalData.get_instance()
-
- color = inst.get_color()
- coords = inst.get_verts()
- tex_coords = inst.get_tex_coords()
- if inst.get_dims() == 2:
- if len(tex_coords) == 0:
- shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
- else:
- #shader = gpu.shader.from_builtin('2D_IMAGE')
- vert_shader, frag_shader = _get_transparency_shader()
- shader = gpu.types.GPUShader(vert_shader, frag_shader)
- elif inst.get_dims() == 3:
- if len(tex_coords) == 0:
- shader = gpu.shader.from_builtin('3D_UNIFORM_COLOR')
- else:
- raise NotImplemented("Texture is not supported in get_dims() == 3")
- else:
- raise NotImplemented("get_dims() != 2")
-
- if len(tex_coords) == 0:
- data = {
- "pos": coords,
- }
- else:
- data = {
- "pos": coords,
- "texCoord": tex_coords
- }
-
- if inst.get_prim_mode() == GL_LINES:
- indices = []
- for i in range(0, len(coords), 2):
- indices.append([i, i + 1])
- batch = batch_for_shader(shader, 'LINES', data, indices=indices)
-
- elif inst.get_prim_mode() == GL_LINE_STRIP:
- batch = batch_for_shader(shader, 'LINE_STRIP', data)
-
-
- elif inst.get_prim_mode() == GL_LINE_LOOP:
- data["pos"].append(data["pos"][0])
- batch = batch_for_shader(shader, 'LINE_STRIP', data)
-
- elif inst.get_prim_mode() == GL_TRIANGLES:
- indices = []
- for i in range(0, len(coords), 3):
- indices.append([i, i + 1, i + 2])
- batch = batch_for_shader(shader, 'TRIS', data, indices=indices)
-
- elif inst.get_prim_mode() == GL_TRIANGLE_FAN:
- indices = []
- for i in range(1, len(coords) - 1):
- indices.append([0, i, i + 1])
- batch = batch_for_shader(shader, 'TRIS', data, indices=indices)
-
- elif inst.get_prim_mode() == GL_QUADS:
- indices = []
- for i in range(0, len(coords), 4):
- indices.extend([[i, i + 1, i + 2], [i + 2, i + 3, i]])
- batch = batch_for_shader(shader, 'TRIS', data, indices=indices)
- else:
- raise NotImplemented("get_prim_mode() != (GL_LINES|GL_TRIANGLES|GL_QUADS)")
-
- shader.bind()
- if len(tex_coords) != 0:
- shader.uniform_float("modelViewMatrix", gpu.matrix.get_model_view_matrix())
- shader.uniform_float("projectionMatrix", gpu.matrix.get_projection_matrix())
- shader.uniform_int("image", 0)
- shader.uniform_float("color", color)
- batch.draw(shader)
-
- inst.clear()
-
-
-def glVertex2f(x, y):
- inst = InternalData.get_instance()
- inst.add_vert([x, y])
- inst.set_dims(2)
-
-
-def glVertex3f(x, y, z):
- inst = InternalData.get_instance()
- inst.add_vert([x, y, z])
- inst.set_dims(3)
-
-
-def glTexCoord2f(u, v):
- inst = InternalData.get_instance()
- inst.add_tex_coord([u, v])
-
-
-GL_BLEND = bgl.GL_BLEND
-GL_LINE_SMOOTH = bgl.GL_LINE_SMOOTH
-GL_INT = bgl.GL_INT
-GL_SCISSOR_BOX = bgl.GL_SCISSOR_BOX
-GL_TEXTURE_2D = bgl.GL_TEXTURE_2D
-GL_TEXTURE0 = bgl.GL_TEXTURE0
-GL_DEPTH_TEST = bgl.GL_DEPTH_TEST
-
-GL_TEXTURE_MIN_FILTER = 0
-GL_TEXTURE_MAG_FILTER = 0
-GL_LINEAR = 0
-GL_TEXTURE_ENV = 0
-GL_TEXTURE_ENV_MODE = 0
-GL_MODULATE = 0
-
-def glEnable(cap):
- bgl.glEnable(cap)
-
-
-def glDisable(cap):
- bgl.glDisable(cap)
-
-
-def glScissor(x, y, width, height):
- bgl.glScissor(x, y, width, height)
-
-
-def glGetIntegerv(pname, params):
- bgl.glGetIntegerv(pname, params)
-
-
-def glActiveTexture(texture):
- bgl.glActiveTexture(texture)
-
-
-def glBindTexture(target, texture):
- bgl.glBindTexture(target, texture)
-
-
-def glTexParameteri(target, pname, param):
- pass
-
-
-def glTexEnvi(target, pname, param):
- pass
diff --git a/magic_uv/op/__init__.py b/magic_uv/op/__init__.py
index 0c6d91e2..e2104743 100644
--- a/magic_uv/op/__init__.py
+++ b/magic_uv/op/__init__.py
@@ -2,7 +2,7 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "6.6"
+__version__ = "6.7"
__date__ = "22 Apr 2022"
if "bpy" in locals():
diff --git a/magic_uv/op/texture_projection.py b/magic_uv/op/texture_projection.py
index 92566981..721d8261 100644
--- a/magic_uv/op/texture_projection.py
+++ b/magic_uv/op/texture_projection.py
@@ -2,7 +2,7 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "6.6"
+__version__ = "6.7"
__date__ = "22 Apr 2022"
from collections import namedtuple
@@ -24,11 +24,8 @@ from ..utils.bl_class_registry import BlClassRegistry
from ..utils.property_class_registry import PropertyClassRegistry
from ..utils import compatibility as compat
-if compat.check_version(2, 80, 0) >= 0:
- from ..lib import bglx as bgl
-else:
- import bgl
-
+import gpu
+from gpu_extras.batch import batch_for_shader
_Rect = namedtuple('Rect', 'x0 y0 x1 y1')
_Rect2 = namedtuple('Rect2', 'x y width height')
@@ -334,35 +331,19 @@ class MUV_OT_TextureProjection(bpy.types.Operator):
]
# OpenGL configuration
- if compat.check_version(2, 80, 0) >= 0:
- bgl.glEnable(bgl.GL_BLEND)
- bgl.glEnable(bgl.GL_TEXTURE_2D)
- bgl.glActiveTexture(bgl.GL_TEXTURE0)
- if img.bindcode:
- bind = img.bindcode
- bgl.glBindTexture(bgl.GL_TEXTURE_2D, bind)
- else:
- bgl.glEnable(bgl.GL_BLEND)
- bgl.glEnable(bgl.GL_TEXTURE_2D)
- if img.bindcode:
- bind = img.bindcode[0]
- bgl.glBindTexture(bgl.GL_TEXTURE_2D, bind)
- bgl.glTexParameteri(bgl.GL_TEXTURE_2D,
- bgl.GL_TEXTURE_MIN_FILTER, bgl.GL_LINEAR)
- bgl.glTexParameteri(bgl.GL_TEXTURE_2D,
- bgl.GL_TEXTURE_MAG_FILTER, bgl.GL_LIN
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list