mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-05 16:00:06 +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)
|
||||
|
||||
|
||||
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):
|
||||
self.video_driver.osc_client.send_message("/detour/set_speed_position", amount)
|
||||
|
||||
@@ -719,6 +723,7 @@ class Actions(object):
|
||||
print('killing process')
|
||||
self.openframeworks_process.kill()
|
||||
self.openframeworks_process = None
|
||||
subprocess.call(['killall', 'c_o_n_j_u_r'])
|
||||
|
||||
def try_pull_code_and_reset(self):
|
||||
#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)
|
||||
|
||||
def update_conjur_player_type(self, value):
|
||||
print(value)
|
||||
tree = ET.parse(self.PATH_TO_CONJUR_DATA)
|
||||
tag = tree.find("playerType")
|
||||
tag.text = str(value)
|
||||
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):
|
||||
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] = ']'
|
||||
position = int(math.floor(float(position) /
|
||||
float(size) * (max - 1)) + 1)
|
||||
banner_list[position] = '*'
|
||||
if 0 <= position and position < len(banner_list):
|
||||
banner_list[position] = '*'
|
||||
|
||||
return ''.join(banner_list)
|
||||
|
||||
|
||||
@@ -170,6 +170,14 @@
|
||||
],
|
||||
"value": "enabled"
|
||||
},
|
||||
"X3_AS_SPEED": {
|
||||
"action": null,
|
||||
"options": [
|
||||
"enabled",
|
||||
"disabled"
|
||||
],
|
||||
"value": "disabled"
|
||||
},
|
||||
"SHADER_PARAM": {
|
||||
"action": null,
|
||||
"options": [
|
||||
@@ -194,6 +202,14 @@
|
||||
],
|
||||
"value": "disabled"
|
||||
},
|
||||
"DELAY_MODE": {
|
||||
"action": "set_detour_delay_mode",
|
||||
"options": [
|
||||
"enabled",
|
||||
"disabled"
|
||||
],
|
||||
"value": "disabled"
|
||||
},
|
||||
"SHADER_POSITION": {
|
||||
"action": null,
|
||||
"options": [
|
||||
|
||||
@@ -121,6 +121,9 @@ class Shaders(object):
|
||||
return current + change
|
||||
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user