Some hints on how to fix errors/bugs with the MAR demo project: 1.: I get a "missing symbol GL_BGR_EXT" compile error: Apparently, the OS X OpenGL header does not support the GL_BGR_EXT color format, therefore this symbol is unknown. The quick and dirty solution is to manually define this symbol and add a #define GL_BGR_EXT 0x80e0 at the top of the C++ file. This should work fine in most cases. The more beautiful solution is to use OpenCV and convert the BGR (blue, green, red) color image from the webcam to RGB (red, green, blue), which is natively supported by OpenGL. You can use the cvCvtColor(buffer, buffer, CV_BGR2RGB); function for this. Then change the draw call (line 75) to: glDrawPixels(camera_width, camera_height, GL_RGB, GL_UNSIGNED_BYTE, bkgnd); 2.: I see an image from the webcam but it seems distorted/interlaced: Probably, your webcam driver does not support 640x480 as output resolution. Try experimenting with different resolutions, for instace 1280x720 pixels. const int camera_width = 1280; const int camera_height = 720; and/or add to the initVideoStream() function: cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280); cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);