mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-05 16:00:06 +01:00
working on camera into of
This commit is contained in:
@@ -197,7 +197,9 @@ class Display(object):
|
||||
|
||||
def _get_status_for_player(self):
|
||||
now_slot, now_status, now_alpha, next_slot, next_status, next_alpha = self.video_driver.get_player_info_for_status()
|
||||
|
||||
capture_status = self._generate_capture_status()
|
||||
|
||||
preview_alpha = self.capture.get_preview_alpha()
|
||||
|
||||
self._set_colour_from_alpha(now_alpha, preview_alpha, next_alpha)
|
||||
|
||||
10
shader_experiments/default.vert
Normal file
10
shader_experiments/default.vert
Normal file
@@ -0,0 +1,10 @@
|
||||
attribute vec4 position;
|
||||
attribute vec2 texcoord;
|
||||
uniform mat4 modelViewProjectionMatrix;
|
||||
|
||||
varying vec2 texcoord0;
|
||||
|
||||
void main() {
|
||||
gl_Position = modelViewProjectionMatrix * position;
|
||||
texcoord0 = texcoord;
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
// copied from http://glslsandbox.com/e#47821.0
|
||||
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
#extension GL_OES_standard_derivatives : enable
|
||||
|
||||
uniform float u_time;
|
||||
uniform vec2 u_mouse;
|
||||
uniform vec2 u_resolution;
|
||||
|
||||
void main( void ) {
|
||||
|
||||
vec2 position = ( gl_FragCoord.xy / u_resolution.xy ) + u_mouse / 4.0;
|
||||
|
||||
float color = 0.0;
|
||||
color += sin( position.x * cos( u_time / 15.0 ) * 80.0 ) + cos( position.y * cos( u_time / 15.0 ) * 10.0 );
|
||||
color += sin( position.y * sin( u_time / 10.0 ) * 40.0 ) + cos( position.x * sin( u_time / 25.0 ) * 40.0 );
|
||||
color += sin( position.x * sin( u_time / 5.0 ) * 10.0 ) + sin( position.y * sin( u_time / 35.0 ) * 80.0 );
|
||||
color *= sin( u_time / 10.0 ) * 0.8;
|
||||
|
||||
gl_FragColor = vec4( vec3( color, color * 0.5, sin( color + u_time / 3.0 ) * 0.75 ), 1.0 );
|
||||
}
|
||||
16
shader_experiments/green_lights.frag
Normal file
16
shader_experiments/green_lights.frag
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
varying vec2 texcoord0;
|
||||
uniform sampler2D tex0;
|
||||
uniform vec2 u_resolution;
|
||||
uniform float u_time;
|
||||
|
||||
void main() {
|
||||
vec2 pos = gl_FragCoord.xy;
|
||||
vec4 texColor = texture2D(tex0, texcoord0);
|
||||
|
||||
texColor.r *= (sin(0.05*pos.x - cos(u_time)) + cos(0.05*pos.x/(0.1 + abs(cos(u_time/5.0)))));
|
||||
texColor.r *= (sin(0.05*pos.y - cos(u_time/5.0)) + cos(0.05*pos.y/(0.1 + abs(cos(u_time/5.0)))));
|
||||
|
||||
gl_FragColor = vec4(texColor.b, texColor.r, texColor.g, texColor.a);
|
||||
}
|
||||
|
||||
11
shader_experiments/invert_effect.frag
Normal file
11
shader_experiments/invert_effect.frag
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
varying vec2 texcoord0;
|
||||
uniform sampler2D tex0;
|
||||
uniform vec2 u_resolution;
|
||||
uniform float u_time;
|
||||
|
||||
void main() {
|
||||
vec4 texColour = texture2D(tex0, texcoord0);
|
||||
gl_FragColor = vec4(1.0-texColour.r,1.0-texColour.g,1.0-texColour.b,texColour.a);
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
from tkinter import *
|
||||
from pythonosc import osc_message_builder
|
||||
from pythonosc import udp_client
|
||||
from pythonosc import dispatcher
|
||||
from pythonosc import osc_server
|
||||
import argparse
|
||||
import threading
|
||||
print('starting osc_example')
|
||||
|
||||
root = Tk()
|
||||
|
||||
def key(event):
|
||||
print("key pressed is {}".format(event.char))
|
||||
|
||||
if event.char == 'q':
|
||||
print('quiting program')
|
||||
root.destroy()
|
||||
elif event.char == 'a':
|
||||
print('loading video')
|
||||
send_osc_message("/player/a/load", "/home/pi/Videos/internal_storage/480-from-adobe.mp4")
|
||||
elif event.char == 's':
|
||||
print('playing video')
|
||||
send_osc_message("/player/a/play", True)
|
||||
elif event.char == 'd':
|
||||
print('pausing video')
|
||||
send_osc_message("/player/a/play", False)
|
||||
elif event.char == 'f':
|
||||
print('making video partly transparent')
|
||||
send_osc_message("/player/a/alpha", 200)
|
||||
elif event.char == 'g':
|
||||
print('quiting video')
|
||||
send_osc_message("/player/a/quit", True)
|
||||
elif event.char == 'h':
|
||||
print('seeking video')
|
||||
send_osc_message("/player/a/position", 0.5)
|
||||
elif event.char == 'j':
|
||||
print('requesting video position')
|
||||
send_osc_message("/player/a/get_position", True)
|
||||
|
||||
|
||||
def send_osc_message(address, value):
|
||||
client.send_message(address, value)
|
||||
|
||||
def set_position(unused_addr, args, player_name):
|
||||
print("the position of the player {} is {}".format(args, player_name))
|
||||
|
||||
def set_status(unused_addr, args, player_name):
|
||||
print("the status of the player {} is {}".format(args, player_name))
|
||||
|
||||
### setting up the client
|
||||
client_parser = argparse.ArgumentParser()
|
||||
client_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
||||
client_parser.add_argument("--port", type=int, default=8000, help="the port")
|
||||
|
||||
client_args = client_parser.parse_args()
|
||||
|
||||
client = udp_client.SimpleUDPClient(client_args.ip, client_args.port)
|
||||
|
||||
### setting up the server
|
||||
server_parser = argparse.ArgumentParser()
|
||||
server_parser.add_argument("--ip", default="127.0.0.1", help="the ip")
|
||||
server_parser.add_argument("--port", type=int, default=7000, help="the port")
|
||||
|
||||
server_args = server_parser.parse_args()
|
||||
|
||||
dispatcher = dispatcher.Dispatcher()
|
||||
dispatcher.map("/player/a/position", set_position, "a")
|
||||
dispatcher.map("/player/b/position", set_position, "b")
|
||||
dispatcher.map("/player/c/position", set_position, "c")
|
||||
dispatcher.map("/player/a/status", set_status, "a")
|
||||
dispatcher.map("/player/b/status", set_status, "b")
|
||||
dispatcher.map("/player/c/status", set_status, "c")
|
||||
|
||||
server = osc_server.ThreadingOSCUDPServer((server_args.ip, server_args.port), dispatcher)
|
||||
server_thread = threading.Thread(target=server.serve_forever)
|
||||
server_thread.start()
|
||||
### setting up tk etc
|
||||
frame = Frame(root, width=100, height=100)
|
||||
frame.bind("<KeyPress>", key)
|
||||
frame.pack()
|
||||
|
||||
frame.focus_set()
|
||||
root.mainloop()
|
||||
|
||||
|
||||
9
shader_experiments/red_sine.frag
Normal file
9
shader_experiments/red_sine.frag
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifdef GL_ES
|
||||
precision mediump float;
|
||||
#endif
|
||||
|
||||
uniform float u_time;
|
||||
|
||||
void main() {
|
||||
gl_FragColor = vec4(sin(u_time),0.0,0.0,1.0);
|
||||
}
|
||||
@@ -176,8 +176,16 @@ class Capture(object):
|
||||
return self.device.frame.timestamp / 1000000
|
||||
|
||||
def get_preview_alpha(self):
|
||||
if self.is_previewing:
|
||||
return self.device.preview.alpha
|
||||
if self.is_previewing and self.device is not None:
|
||||
try:
|
||||
return self.device.preview.alpha
|
||||
except Exception as e:
|
||||
print(e)
|
||||
if hasattr(e, 'message'):
|
||||
error_info = e.message
|
||||
else:
|
||||
error_info = e
|
||||
self.message_handler.set_message('ERROR',error_info)
|
||||
else:
|
||||
return 0
|
||||
|
||||
|
||||
@@ -136,7 +136,8 @@ class VideoDriver(object):
|
||||
self.next_player.reload(self.get_next_layer_value())
|
||||
|
||||
def exit_last_player_after_delay(self):
|
||||
self.root.after(100, self.last_player.exit)
|
||||
self.last_player.exit()
|
||||
#self.root.after(100, self.last_player.exit)
|
||||
|
||||
def receive_position(self, unused_addr, player_name, args):
|
||||
print("the position of player {} is set to {}".format(player_name,args))
|
||||
|
||||
Reference in New Issue
Block a user