qshader

QShader - Shaders support for 2D PyQt Games.


Keywords
pyqt, qt, shaders, games, 2d, game-development, python, qshader
License
MIT
Install
pip install qshader==1.1.0

Documentation

📦 QShaderV1-ALPHA. 💫

Powerful shading support for PyQt5. [pip install qshader].

#thread QTimer 10

#pre_define hue 0

#import PyQt5.QtGui QColor

#begin_shader
Color1 = QColor.fromHsv(hue, 50, 200)
Color2 = QColor.fromHsv((hue + 30) % @@HUE_MAX, 50, 220)
Color3 = QColor.fromHsv((hue + 60) % @@HUE_MAX, 50, 240)

if @@UNDER_MOUSE:
    Gradient = f"qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 {Color1.name()}, stop:{@@MOUSE_POSITION_WIDGET.x() / $$parent.width()} {Color2.name()}, stop:1 {Color3.name()})"

else:
    Gradient = f"qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 {Color1.name()}, stop:0.5 {Color2.name()}, stop:1 {Color3.name()})"

$$style(f"background: {Gradient}; color: white; border: 0px solid; border-radius: 1px; font-size: 18px; padding: 15px;")

$$effect(BloomEffect, 100, QColor.fromRgb(Color1.red(), Color2.green(), Color3.blue(), @@RGB_MAX))

hue = (hue + 1) % @@HUE_MAX
#end_shader
#thread QTimer 10

#pre_define hue 0

#import PyQt5.QtGui QColor

#begin_shader
color = QColor.fromHsv(hue, @@RGB_MAX, @@RGB_MAX)

$$style(f'background-color: {color.name()}; color: black; border: 0px; font-size: 20px; padding: 30px;')

$$effect(BloomEffect, 250, color)

$$parent.setText(color.name())

hue = (hue + (2 if @@UNDER_MOUSE else 1)) % @@HUE_MAX
#end_shader

WARNING: QShader is in ALPHA state, please be patient and report for all bugs.

QShader Documentation. QTS Documentation.


QShader V1.1.0-ALPHA.