# wglMakeCurrent failed in MakeCurrent() happens every time the window is called to render

**URL:** https://discourse.vtk.org/t/wglmakecurrent-failed-in-makecurrent-happens-every-time-the-window-is-called-to-render/14143
**Category:** Support
**Created:** [June 29, 2024, 11:18pm UTC](https://discourse.vtk.org/t/wglmakecurrent-failed-in-makecurrent-happens-every-time-the-window-is-called-to-render/14143 "2024-06-29T23:18:05Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Jakes\_Marais](https://discourse.vtk.org/user_avatar/discourse.vtk.org/jakes_marais/32/7582_2.png) [@Jakes\_Marais](https://discourse.vtk.org/u/Jakes_Marais)
#### Post date: [June 29, 2024, 11:18pm UTC](https://discourse.vtk.org/t/wglmakecurrent-failed-in-makecurrent-happens-every-time-the-window-is-called-to-render/14143/1 "2024-06-29T23:18:05Z")

</div>

import vtk  
from PyQt5 import QtWidgets  
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton  
from PyQt5.QtCore import pyqtSignal, QObject  
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor # type: ignore

# import os

# os.environ[‘MESA\_GL\_VERSION\_OVERRIDE’] = ‘3.3’

class Communicate(QObject):  
orientation\_signal = pyqtSignal(list)

class MainWindow(QMainWindow):  
def **init** (self, parent=None):  
super(MainWindow, self). **init** (parent)  
self.comm = Communicate()  
#self.comm.orientation\_signal.connect(self.apply\_orientations)

```
    # Set up the main window
    self.setWindowTitle('Live Simulation')
    self.frame = QWidget()
    self.vl = QVBoxLayout()
    self.vtkWidget = QVTKRenderWindowInteractor(self.frame)
    self.vl.addWidget(self.vtkWidget)

    self.zero_yaw_button = QPushButton("Calibrate Direction")
    self.zero_yaw_button.clicked.connect(self.set_yaw_zero_direction)
    self.vl.addWidget(self.zero_yaw_button)

    # Renderer and render window setup
    self.renderer = vtk.vtkRenderer()
    self.vtkWidget.GetRenderWindow().AddRenderer(self.renderer)
    self.interactor = self.vtkWidget.GetRenderWindow().GetInteractor()

    self.style = vtk.vtkInteractorStyleTrackballCamera()
    self.interactor.SetInteractorStyle(self.style)

    # Load the tool and tooth
    self.tool = self.load_stl("3D_GUI_test/hp.stl", (1, 0, 0))
    self.tooth = self.load_stl("3D_GUI_test/Flossable_Teeth_-_Mandible.stl", (0, 0, 1))
    self.tooth.SetPosition(0, 0, 0)
    self.renderer.AddActor(self.tool)
    self.renderer.AddActor(self.tooth)
    self.renderer.SetBackground(1, 1, 1)
    self.renderer.ResetCamera()
    self.camera = self.renderer.GetActiveCamera()
    self.camera.SetPosition(95.94370844261519, 116.70196856544167, 45.06343624793749)
    self.camera.SetFocalPoint(168.4618377685547, 110.82939910888672, 11.044604063034058)
    self.camera.SetViewUp(0.4276590806389098, 0.053961019016033104, 0.9023280551849385)
    self.camera.SetDistance(80.3159205648567)

    self.pivot_point = (150.7989392026424, 110.90430094394753, 12.482846069096375)
    self.transform = vtk.vtkTransform()
    self.transform.Translate(self.pivot_point)
    self.tool.SetUserTransform(self.transform)

    self.tool.GetProperty().SetOpacity(0.25)

    self.frame.setLayout(self.vl)
    self.setCentralWidget(self.frame)

    self.interactor.Initialize()

    self.yaw_zero_hp_offset = 0
    self.yaw_zero_jaw_offset = 0
    self.jaw_roll_offset = 0
    self.jaw_pitch_offset = 0

    # Initialize current_orientations with a default value
    self.current_orientations = [0, 0, 0, 0, 0, 0]

def set_yaw_zero_direction(self):
    # This method is called when the button is pressed to set the current yaw as zero direction
    current_yaw_hp = float(self.current_orientations[2])
    current_yaw_jaw = float(self.current_orientations[5])

    self.yaw_zero_hp_offset = 90 - current_yaw_hp
    self.yaw_zero_jaw_offset = 270 - current_yaw_jaw
    self.jaw_roll_offset = float(self.current_orientations[3])
    self.jaw_pitch_offset = float(self.current_orientations[4])

def load_stl(self, filename, color):
    reader = vtk.vtkSTLReader()
    reader.SetFileName(filename)
    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(reader.GetOutputPort())
    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    actor.GetProperty().SetColor(color)
    return actor

def apply_orientations(self, orientations):
    # Store the current orientations for reference
    self.current_orientations = orientations

    # Compute the relative orientation of the tool with respect to the tooth
    relative_roll = float(orientations[3]) - self.jaw_roll_offset - float(orientations[0])
    relative_pitch = float(orientations[4]) - self.jaw_pitch_offset - float(orientations[1])
    jaw_yaw = float(orientations[5]) + self.yaw_zero_jaw_offset
    hp_yaw = float(orientations[2]) + self.yaw_zero_hp_offset

    relative_yaw = jaw_yaw - hp_yaw
    print(f'hp: {orientations[2]}, jaw: {orientations[5]}, relative yaw: {relative_yaw}')

    # Apply the relative orientation to the tool
    self.tool.SetOrientation(relative_roll - 180, relative_pitch, hp_yaw)
    self.vtkWidget.GetRenderWindow().Render()

```

Here is the code, and every time apply\_orientations is called from another loop it throws that error 7 times and nothing comes up.
