mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-06 00:10:07 +01:00
add delay, shader speed and some new shaders
This commit is contained in:
67
Shaders/2-input/mix_lumaKey.frag
Normal file
67
Shaders/2-input/mix_lumaKey.frag
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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')
|
||||||
|
|||||||
@@ -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():
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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": [
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user