add delay, shader speed and some new shaders

This commit is contained in:
langolierz
2019-08-30 15:18:03 +00:00
parent 74f54f99cf
commit 2ccbc8bf07
6 changed files with 100 additions and 3 deletions

View File

@@ -0,0 +1,67 @@
varying vec2 tcoord; //
uniform sampler2D tex; // texture one
uniform sampler2D tex2; // texture two
uniform vec2 tres; // size of texture (screen)
uniform vec4 fparams; // 4 floats coming in
uniform ivec4 iparams; // 4 ints coming in
uniform float ftime; // 0.0 to 1.0
uniform int itime; // increases when ftime hits 1.0
//f0:key luma:
//f1:key range:
//f2:edge opacity:
float f0 = mix(0.0, 1.0, fparams[0]);
float f1 = mix(0.0, 0.5, fparams[1]);
float f2 = mix(0.0, 1.0, fparams[2]);
//---------------------------------------------------------------------------------------------------
vec3 rgb2hsv(vec3 c)
{
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
}
vec3 hsv2rgb(vec3 c)
{
vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
void main() {
vec3 outc;
vec4 base = texture2D(tex, tcoord.xy);
vec4 blend = texture2D(tex2, tcoord.xy);
vec3 hsv = rgb2hsv(base.rgb);
if( (hsv.z > (f0-f1)) && (hsv.z < (f0+f1)) ){
if(hsv.z-(f0-f1) < f2){
outc = mix(base.rgb,blend.rgb,(hsv.z-(f0-f1))/f2);
} else if((f0+f1)-hsv.z < f2){
outc = mix(base.rgb,blend.rgb,((f0+f1)-hsv.z)/f2);
} else {
outc = blend.rgb;
}
} else {
outc = base.rgb;
}
gl_FragColor=vec4(outc,1.0);
}

View File

@@ -352,6 +352,10 @@ class Actions(object):
self.video_driver.osc_client.send_message("/detour/switch_to_detour_number", number) self.video_driver.osc_client.send_message("/detour/switch_to_detour_number", number)
def set_detour_delay_mode(self, state):
self.video_driver.osc_client.send_message("/detour/set_delay_mode", state == 'enabled')
self.data.update_conjur_delay_mode(state == 'enabled')
def set_detour_speed_position_continuous(self, amount): def set_detour_speed_position_continuous(self, amount):
self.video_driver.osc_client.send_message("/detour/set_speed_position", amount) self.video_driver.osc_client.send_message("/detour/set_speed_position", amount)
@@ -719,6 +723,7 @@ class Actions(object):
print('killing process') print('killing process')
self.openframeworks_process.kill() self.openframeworks_process.kill()
self.openframeworks_process = None self.openframeworks_process = None
subprocess.call(['killall', 'c_o_n_j_u_r'])
def try_pull_code_and_reset(self): def try_pull_code_and_reset(self):
#self.message_handler.set_message('INFO', 'checkin fo updates pls wait') #self.message_handler.set_message('INFO', 'checkin fo updates pls wait')

View File

@@ -87,11 +87,16 @@ class Data(object):
tree.write(self.PATH_TO_CONJUR_DATA) tree.write(self.PATH_TO_CONJUR_DATA)
def update_conjur_player_type(self, value): def update_conjur_player_type(self, value):
print(value)
tree = ET.parse(self.PATH_TO_CONJUR_DATA) tree = ET.parse(self.PATH_TO_CONJUR_DATA)
tag = tree.find("playerType") tag = tree.find("playerType")
tag.text = str(value) tag.text = str(value)
tree.write(self.PATH_TO_CONJUR_DATA) tree.write(self.PATH_TO_CONJUR_DATA)
def update_conjur_delay_mode(self, value):
tree = ET.parse(self.PATH_TO_CONJUR_DATA)
tag = tree.find("delayMode")
tag.text = str(int(value))
tree.write(self.PATH_TO_CONJUR_DATA)
def get_setting_and_folder_from_name(self, setting_name): def get_setting_and_folder_from_name(self, setting_name):
for folder_key , folder_item in self.settings.items(): for folder_key , folder_item in self.settings.items():

View File

@@ -338,7 +338,8 @@ round(param_row + column_offset + (param_num+1)*param_length, 2))
banner_list[end] = ']' banner_list[end] = ']'
position = int(math.floor(float(position) / position = int(math.floor(float(position) /
float(size) * (max - 1)) + 1) float(size) * (max - 1)) + 1)
banner_list[position] = '*' if 0 <= position and position < len(banner_list):
banner_list[position] = '*'
return ''.join(banner_list) return ''.join(banner_list)

View File

@@ -170,6 +170,14 @@
], ],
"value": "enabled" "value": "enabled"
}, },
"X3_AS_SPEED": {
"action": null,
"options": [
"enabled",
"disabled"
],
"value": "disabled"
},
"SHADER_PARAM": { "SHADER_PARAM": {
"action": null, "action": null,
"options": [ "options": [
@@ -194,6 +202,14 @@
], ],
"value": "disabled" "value": "disabled"
}, },
"DELAY_MODE": {
"action": "set_detour_delay_mode",
"options": [
"enabled",
"disabled"
],
"value": "disabled"
},
"SHADER_POSITION": { "SHADER_POSITION": {
"action": null, "action": null,
"options": [ "options": [

View File

@@ -121,6 +121,9 @@ class Shaders(object):
return current + change return current + change
def set_param_to_amount(self, param, amount): def set_param_to_amount(self, param, amount):
self.osc_client.send_message("/shader/param", [param, amount] ) if self.data.settings['shader']['X3_AS_SPEED']['value'] == 'enabled' and param == 3:
self.osc_client.send_message("/shader/speed", [param, amount] )
else:
self.osc_client.send_message("/shader/param", [param, amount] )
self.selected_param_values[param] = amount self.selected_param_values[param] = amount