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