Record black screen instead of crash when compositor + window is not supported at the moment
This commit is contained in:
parent
b8f643a7e1
commit
ff8fa9f0f7
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
window=$(xdotool selectwindow)
|
|
||||||
active_sink="$(pactl get-default-sink).monitor"
|
|
||||||
mkdir -p "$HOME/Videos"
|
|
||||||
video="$HOME/Videos/$(date +"Video_%Y-%m-%d_%H-%M-%S.mp4")"
|
|
||||||
gpu-screen-recorder -w "$window" -c mp4 -f 60 -a "${active_sink}.monitor" -o "$video"
|
|
||||||
notify-send "GPU Screen Recorder" "Saved video to $video"
|
|
14
src/main.cpp
14
src/main.cpp
@ -242,16 +242,22 @@ static bool recreate_window_pixmap(Display *dpy, Window window_id,
|
|||||||
// glEnable(GL_BLEND);
|
// glEnable(GL_BLEND);
|
||||||
// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
// glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
|
|
||||||
|
pixmap.texture_width = attr.width;
|
||||||
|
pixmap.texture_height = attr.height;
|
||||||
|
|
||||||
glXBindTexImageEXT(dpy, pixmap.glx_pixmap, GLX_FRONT_EXT, NULL);
|
glXBindTexImageEXT(dpy, pixmap.glx_pixmap, GLX_FRONT_EXT, NULL);
|
||||||
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH,
|
|
||||||
&pixmap.texture_width);
|
|
||||||
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT,
|
|
||||||
&pixmap.texture_height);
|
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
|
||||||
GL_NEAREST); // GL_LINEAR );
|
GL_NEAREST); // GL_LINEAR );
|
||||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
|
||||||
GL_NEAREST); // GL_LINEAR);//GL_LINEAR_MIPMAP_LINEAR );
|
GL_NEAREST); // GL_LINEAR);//GL_LINEAR_MIPMAP_LINEAR );
|
||||||
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
//glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
|
|
||||||
|
GLint gl_texture_width = 0;
|
||||||
|
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &gl_texture_width);
|
||||||
|
if(gl_texture_width == 0) {
|
||||||
|
fprintf(stderr, "Warning: failed to get texture size. You are probably running an unsupported compositor and recording the selected window doesn't work at the moment. A black window will be displayed instead\n");
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(stderr, "texture width: %d, height: %d\n", pixmap.texture_width,
|
fprintf(stderr, "texture width: %d, height: %d\n", pixmap.texture_width,
|
||||||
pixmap.texture_height);
|
pixmap.texture_height);
|
||||||
|
|
||||||
|
9
toggle-recording-selected.sh
Executable file
9
toggle-recording-selected.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
killall -INT gpu-screen-recorder && notify-send -u low 'GPU Screen Recorder' 'Stopped recording' && exit 0;
|
||||||
|
window=$(xdotool selectwindow)
|
||||||
|
active_sink="$(pactl get-default-sink).monitor"
|
||||||
|
mkdir -p "$HOME/Videos"
|
||||||
|
video="$HOME/Videos/$(date +"Video_%Y-%m-%d_%H-%M-%S.mp4")"
|
||||||
|
notify-send -u low 'GPU Screen Recorder' "Started recording video to $video"
|
||||||
|
gpu-screen-recorder -w "$window" -c mp4 -f 60 -a "$active_sink" -o "$video"
|
Loading…
Reference in New Issue
Block a user