# HG changeset patch # User Eleni Maria Stea # Date 1383601162 -7200 # Node ID 226073258785c21411873c8a5f1f2a8964f75aad # Parent d2158a527488f6bd747dafcee6fd7128135dcfd1 quick backup: display video, draw tesselated quads diff -r d2158a527488 -r 226073258785 src/frame.cc --- a/src/frame.cc Mon Nov 04 21:53:21 2013 +0200 +++ b/src/frame.cc Mon Nov 04 23:39:22 2013 +0200 @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -37,23 +38,28 @@ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA, video_buf.size().width, video_buf.size().height, - 0, GL_BGRA, GL_UNSIGNED_BYTE, &video_buf); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, KINECT_VIDEO_WIDTH, KINECT_VIDEO_HEIGHT, + 0, GL_BGR, GL_UNSIGNED_BYTE, 0); glBindTexture(GL_TEXTURE_2D, depth_tex); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA, depth_buf.size().width, depth_buf.size().height, - 0, GL_BGRA, GL_UNSIGNED_BYTE, &depth_buf); - + glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, KINECT_DEPTH_WIDTH, KINECT_DEPTH_HEIGHT, + 0, GL_LUMINANCE, GL_UNSIGNED_BYTE, 0); } void Frame::process() { - if(has_video && has_depth) - printf("Depth and Rgb\n"); + if(has_video) { + glBindTexture(GL_TEXTURE_2D, video_tex); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, KINECT_VIDEO_WIDTH, KINECT_VIDEO_HEIGHT, GL_BGR, GL_UNSIGNED_BYTE, video_buf.data); + //glBindTexture(GL_TEXTURE_2D, depth_tex); + //subi; + } + if(has_video && has_depth) {//pot + } } void video_cb(freenect_device *kin_dev, void *video, uint32_t time) @@ -107,8 +113,6 @@ cv::threshold(mask, mask, 254, 255, 3); cv::inpaint(frame->depth_buf, mask, frame->depth_buf, 1, cv::INPAINT_NS); */ - cv::imshow("foo", frame->depth_buf); - cv::waitKey(30); has_depth = true; } diff -r d2158a527488 -r 226073258785 src/main.cc --- a/src/main.cc Mon Nov 04 21:53:21 2013 +0200 +++ b/src/main.cc Mon Nov 04 23:39:22 2013 +0200 @@ -1,11 +1,12 @@ #include #include + +#include #include -#include - #include "kinect.h" #include "frame.h" +#include "tesquad.h" freenect_context *kin_ctx; freenect_device *kin_dev; @@ -45,7 +46,7 @@ glutIdleFunc(idle); glClearColor(1, 1, 1, 1); - frame = new Frame(); + frame = new Frame; atexit(cleanup); glutMainLoop(); @@ -66,9 +67,19 @@ fprintf(stderr, "Failed to process events.\n"); exit(0); } + assert(glGetError() == GL_NO_ERROR); frame->process(); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, frame->video_tex); + assert(glGetError() == GL_NO_ERROR); + draw_tess_quad(-1, -1, 0.6, 0.6, 1, 1); +// glBindTexture(GL_TEXTURE_2D, frame->depth_tex); +// draw_tes.. + glDisable(GL_TEXTURE_2D); + glutSwapBuffers(); + assert(glGetError() == GL_NO_ERROR); } static void reshape(int w, int h)