11 return cap.open(filename);
17 if(
cap.open(
id, mode)) {
18 cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc(
'M',
'J',
'P',
'G'));
29 sprite =
window->createSprite(width, height, vert, frag);
31 sprite->enableExtendedUBO();
33 std::cout <<
">> MXCapture - CreateSprite for - [OK]\n";
36 std::cout <<
">> MXCapture = CreateSprite for MXCapture failed.\n";
40 bool MXCapture::reload(
size_t width,
size_t height,
const std::string &vert,
const std::string &frag) {
42 sprite->createEmptySprite(width, height,vert, frag);
43 sprite->enableExtendedUBO();
44 std::cout <<
">> MXCapture shader reloaded \n Vertex: [" << std::filesystem::path(vert).filename().string() <<
"] - Fragment: [" << std::filesystem::path(frag).filename().string() <<
"] \n";
47 std::cout <<
">> MXCapture failure to reload shader\n";
60 cv::cvtColor(
frame, rgba, cv::COLOR_BGR2RGBA);
61 sprite->updateTexture(rgba.ptr(), rgba.cols, rgba.rows, rgba.step);
67 sprite->drawSpriteRect(x, y, width, height);
76 cap.set(option, value);
80 return cap.get(option);
void close()
Close the video source.
double get(unsigned int option)
Query a VideoCapture property.
void set(unsigned int option, double value)
Set a VideoCapture property.
bool reload(const std::string &vert, const std::string &frag)
Replace the shader pair without reopening the source.
bool open(const std::string &filename)
Open a video file for capture.
cv::Mat frame
Most recent decoded frame.
gl::GLWindow * window
Parent GL window.
void draw(int x, int y, int width, int height)
Draw the most recently captured frame.
cv::VideoCapture cap
OpenCV capture device.
gl::GLSprite sprite
Rendering sprite.
bool read()
Grab and decode the next frame from the source.
bool createImage(gl::GLWindow *window, size_t width, size_t height, const std::string &vert, const std::string &frag)
Create the backing sprite/texture for displaying frames.
Primary Vulkan rendering window and device management class.
OpenCV video-capture integration for the Vulkan backend.