mirror of
https://github.com/cyberboy666/r_e_c_u_r.git
synced 2025-12-11 10:50:03 +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):
|
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()
|
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()
|
capture_status = self._generate_capture_status()
|
||||||
|
|
||||||
preview_alpha = self.capture.get_preview_alpha()
|
preview_alpha = self.capture.get_preview_alpha()
|
||||||
|
|
||||||
self._set_colour_from_alpha(now_alpha, preview_alpha, next_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
|
return self.device.frame.timestamp / 1000000
|
||||||
|
|
||||||
def get_preview_alpha(self):
|
def get_preview_alpha(self):
|
||||||
if self.is_previewing:
|
if self.is_previewing and self.device is not None:
|
||||||
return self.device.preview.alpha
|
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:
|
else:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
@@ -136,7 +136,8 @@ class VideoDriver(object):
|
|||||||
self.next_player.reload(self.get_next_layer_value())
|
self.next_player.reload(self.get_next_layer_value())
|
||||||
|
|
||||||
def exit_last_player_after_delay(self):
|
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):
|
def receive_position(self, unused_addr, player_name, args):
|
||||||
print("the position of player {} is set to {}".format(player_name,args))
|
print("the position of player {} is set to {}".format(player_name,args))
|
||||||
|
|||||||
Reference in New Issue
Block a user