diff --git a/model.py b/model.py index 6dc42437..3bd30e69 100644 --- a/model.py +++ b/model.py @@ -78,11 +78,10 @@ class Model: config.OVERLAY_SMALL_LOG_SETTINGS["depth"], config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"], config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"], + config.OVERLAY_SETTINGS["opacity"], config.OVERLAY_SETTINGS["ui_scaling"], ) - self.overlay_image = OverlayImage( - config.OVERLAY_SETTINGS["opacity"], - ) + self.overlay_image = OverlayImage() self.pre_overlay_message = None self.th_overlay = None @@ -588,13 +587,13 @@ class Model: # return self.overlay_image.create_overlay_image_long(message_type, message, your_language, translation, target_language) def updateOverlay(self, img): - if self.overlay.initFlag is True: + if self.overlay.initialized is True: self.overlay.uiManager.uiUpdate(img) def startOverlay(self): - if self.overlay.initFlag is False: + if self.overlay.initialized is False: self.overlay.init() - if self.overlay.initFlag is True: + if self.overlay.initialized is True: self.th_overlay = threadFnc(self.overlay.startOverlay) self.th_overlay.daemon = True self.th_overlay.start() @@ -605,7 +604,7 @@ class Model: self.th_overlay = None def updateOverlayPosition(self): - if self.overlay.initFlag is True: + if self.overlay.initialized is True: pos = (config.OVERLAY_SMALL_LOG_SETTINGS["x_pos"], config.OVERLAY_SMALL_LOG_SETTINGS["y_pos"]) self.overlay.uiManager.setPosition(pos) depth = config.OVERLAY_SMALL_LOG_SETTINGS["depth"] @@ -613,7 +612,7 @@ class Model: self.overlay.uiManager.posUpdate() def updateOverlayTimes(self): - if self.overlay.initFlag is True: + if self.overlay.initialized is True: display_duration = config.OVERLAY_SMALL_LOG_SETTINGS["display_duration"] self.overlay.uiManager.setFadeTime(display_duration) fadeout_duration = config.OVERLAY_SMALL_LOG_SETTINGS["fadeout_duration"] @@ -621,21 +620,13 @@ class Model: self.overlay.uiManager.update() def updateOverlayImageOpacity(self): - if self.overlay.initFlag is True: + if self.overlay.initialized is True: opacity = config.OVERLAY_SETTINGS["opacity"] - self.overlay_image.setOpacity(opacity) - if self.pre_overlay_message is not None: - img = self.overlay_image.createOverlayImageShort( - self.pre_overlay_message["message"], - self.pre_overlay_message["your_language"], - self.pre_overlay_message["translation"], - self.pre_overlay_message["target_language"], - self.pre_overlay_message["ui_type"] - ) - self.overlay.uiManager.setImage(img) + self.overlay.uiManager.setTransparency(opacity) + self.overlay.uiManager.update() def updateOverlayImageUiScaling(self): - if self.overlay.initFlag is True: + if self.overlay.initialized is True: ui_scaling = config.OVERLAY_SETTINGS["ui_scaling"] self.overlay.uiManager.setUiScaling(ui_scaling) diff --git a/models/overlay/overlay.py b/models/overlay/overlay.py index fb23c5e6..7a31245c 100644 --- a/models/overlay/overlay.py +++ b/models/overlay/overlay.py @@ -105,11 +105,8 @@ class UIManager: if self.settings['Fade_interval'] != 0: self.evaluateTransparencyFade(self.overlayUI, self.lastUpdate, currTime) - def setImage(self, img): - self.overlayUI.setImage(img) - def uiUpdate(self, img): - self.setImage(img) + self.overlayUI.setImage(img) self.overlayUI.setTransparency(self.settings['Transparency']) self.lastUpdate = time.monotonic() @@ -140,16 +137,18 @@ class UIManager: def setUiScaling(self, ui_scaling): self.overlayUI.setUiScaling(ui_scaling) + def setTransparency(self, transparency): + self.settings["Transparency"] = transparency + class Overlay: - def __init__(self, x, y , depth, fade_time, fade_interval, ui_scaling): - self.initFlag = False + def __init__(self, x, y , depth, fade_time, fade_interval, transparency, ui_scaling): + self.initialized = False settings = { "Color": [1, 1, 1], - "Transparency": 1, + "Transparency": transparency, "Normalized_icon_X_position": x, "Normalized_icon_Y_position": y, "Icon_plane_depth": depth, - "Normalized_icon_width": 1, "Fade_time": fade_time, "Fade_interval": fade_interval, "Ui_scaling": ui_scaling, @@ -160,7 +159,7 @@ class Overlay: try: if checkSteamvrRunning() is True: openvr.init(openvr.VRApplication_Overlay) - self.initFlag = True + self.initialized = True except Exception as e: print("Could not initialise OpenVR") @@ -204,25 +203,25 @@ if __name__ == '__main__': overlay = Overlay() overlay_image = OverlayImage() - if overlay.initFlag is False: + if overlay.initialized is False: overlay.init() - if overlay.initFlag is True: + if overlay.initialized is True: t = threadFnc(overlay.startOverlay) t.start() time.sleep(1) img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", "Hello,World!Goodbye", "Japanese", ui_type="sakura") # img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", ui_type="sakura") - if overlay.initFlag is True: + if overlay.initialized is True: overlay.uiManager.uiUpdate(img) time.sleep(10) img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", "안녕하세요, 세계!안녕", "Korean") - if overlay.initFlag is True: + if overlay.initialized is True: overlay.uiManager.uiUpdate(img) time.sleep(10) img = overlay_image.createOverlayImageShort("こんにちは、世界!さようなら", "Japanese", "你好世界!再见", "Chinese Simplified") - if overlay.initFlag is True: + if overlay.initialized is True: overlay.uiManager.uiUpdate(img) time.sleep(10) \ No newline at end of file diff --git a/models/overlay/overlay_image.py b/models/overlay/overlay_image.py index c213883c..269be290 100644 --- a/models/overlay/overlay_image.py +++ b/models/overlay/overlay_image.py @@ -18,8 +18,8 @@ class OverlayImage: "Chinese Traditional": "NotoSansTC-Regular", } - def __init__(self, opacity): - self.opacity = int(opacity*255) + def __init__(self): + pass @staticmethod def concatenateImagesVertically(img1: Image, img2: Image) -> Image: @@ -138,9 +138,6 @@ class OverlayImage: # img = Image.alpha_composite(background, img) # return img - def setOpacity(self, opacity): - self.opacity = int(opacity*255) - def getUiSize(self): return { "width": 960, @@ -151,13 +148,13 @@ class OverlayImage: def getUiColors(self, ui_type): match ui_type: case "default": - background_color = (41, 42, 45, self.opacity) - background_outline_color = (41, 42, 45, self.opacity) - text_color = (223, 223, 223, self.opacity) + background_color = (41, 42, 45) + background_outline_color = (41, 42, 45) + text_color = (223, 223, 223) case "sakura": - background_color = (225, 40, 30, self.opacity) - background_outline_color = (255, 255, 255, self.opacity) - text_color = (223, 223, 223, self.opacity) + background_color = (225, 40, 30) + background_outline_color = (255, 255, 255) + text_color = (223, 223, 223) return { "background_color": background_color, "background_outline_color": background_outline_color,