From fb9deccb78f3ece4884da0e4ed3da316ec324a2d Mon Sep 17 00:00:00 2001 From: Bob Somers Date: Sun, 20 Mar 2011 03:11:19 -0700 Subject: [PATCH] Added ability to take screenshots, since it's basically impossible to take one normally and get it sync'd right. --- Makefile | 2 +- left_screenshot.tga | Bin 0 -> 1440018 bytes right_screenshot.tga | Bin 0 -> 1440018 bytes src/main.cpp | 70 ++++++++++++++++++++++++++++++++++++++----- src/screenshot.cpp | 69 ++++++++++++++++++++++++++++++++++++++++++ src/screenshot.h | 16 ++++++++++ 6 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 left_screenshot.tga create mode 100644 right_screenshot.tga create mode 100644 src/screenshot.cpp create mode 100644 src/screenshot.h diff --git a/Makefile b/Makefile index caf5626..ce04ed9 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -SRC = src/main.cpp src/scene.cpp +SRC = src/main.cpp src/scene.cpp src/screenshot.cpp OBJ = $(SRC:.cpp=.o) OUT = 3dvgl diff --git a/left_screenshot.tga b/left_screenshot.tga new file mode 100644 index 0000000000000000000000000000000000000000..7395c80fbfbf15505f13e5f7ce87951139b09403 GIT binary patch literal 1440018 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�UyN0VweI6iA1^T9@fm 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 O5P$##AOL~O3H$@GG3}ZF literal 0 HcmV?d00001 diff --git a/right_screenshot.tga b/right_screenshot.tga new file mode 100644 index 0000000000000000000000000000000000000000..318602e3d404f6c88e3b5e0ca88b159ad362732f GIT binary patch literal 1440018 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 literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index b73cc9c..a0ba2ff 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,6 +9,7 @@ extern "C" { #include "scene.h" #include "stereo_helper.h" +#include "screenshot.h" // global width and height of the window int GW = 800; @@ -20,18 +21,40 @@ struct nvstusb_context *nv_ctx = NULL; // 3D camera from stereo helper StereoHelper::Camera cam; +// forces a particular eye to be displayed (for debugging) +// 0 = normal swapping, 1 = left always, 2 = right always +int force_eye = 0; + +// controls whether or not the pulsar is rotating +bool rotation = true; + void draw(int eye) { - static float rotation = 0.0f; + static float angle = 0.0f; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + int show = 0; + switch (force_eye) { + case 0: + show = eye; + break; + + case 1: + show = 1; + break; + + case 2: + show = 0; + break; + } + // do the camera projection - StereoHelper::ProjectCamera(cam, (float)GW / GH, eye); + StereoHelper::ProjectCamera(cam, (float)GW / GH, show); // draw Paul Bourke's test scene "pulsar" - rotation += 1.0f; + if (rotation) angle += 1.0f; PaulBourke::MakeLighting(); - PaulBourke::MakeGeometry(rotation); + PaulBourke::MakeGeometry(angle); } void idle() { @@ -51,9 +74,24 @@ void idle() { struct nvstusb_keys k; nvstusb_get_keys(nv_ctx, &k); - if (k.toggled3D) printf("TOGGLE!\n"); - if (k.deltaWheel != 0) printf("DELTA WHEEL %d\n", k.deltaWheel); - if (k.pressedDeltaWheel != 0) printf("PRESSED DELTA WHEEL %d\n", k.pressedDeltaWheel); + // the 3D button on the IR emitter controls toggling the rotation on and + // off + if (k.toggled3D) { + rotation = !rotation; + printf("Toggled rotation.\n"); + } + + // the wheel on the back adjusts the focal length of the camera (and + // interoccular distance, since we want to maintain IOD = 1/30th of the + // focal length) + if (k.deltaWheel != 0) { + cam.focal += k.deltaWheel; + cam.iod = cam.focal / 30.0f; + printf("Set camera focal length to %f.\n", cam.focal); + } + + // you can also use k.pressedDeltaWheel, which reports the amount the wheel + // moves while the 3D button is pressed } void keyboard(unsigned char key, int x, int y) { @@ -70,6 +108,23 @@ void keyboard(unsigned char key, int x, int y) { cam.type = StereoHelper::TOE_IN; printf("Using toe-in stereo camera.\n"); } + break; + + case 'f': case 'F': // force eye + force_eye = (force_eye + 1) % 3; + if (force_eye == 0) { + printf("Swapping eyes normally.\n"); + } else if (force_eye == 1) { + printf("Forcing left eye always.\n"); + } else { + printf("Forcing right eye always.\n"); + } + break; + + case 's': case 'S': // take screenshot + Screenshot::Screenshot(0, 0, GW, GH, "screenshot.tga"); + printf("Wrote frame buffer to screenshot.tga.\n"); + break; } } @@ -112,6 +167,7 @@ int main(int argc, char *argv[]) { glShadeModel(GL_SMOOTH); glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE); + Screenshot::Init(); // set up our 3D camera (see stereohelper.h for more documentation) cam.type = StereoHelper::PARALLEL_AXIS_ASYMMETRIC; diff --git a/src/screenshot.cpp b/src/screenshot.cpp new file mode 100644 index 0000000..46250b3 --- /dev/null +++ b/src/screenshot.cpp @@ -0,0 +1,69 @@ +#include +#include +#include +#include + +#include "screenshot.h" + +void Screenshot::Init() { + // byte alignment + glPixelStorei(GL_PACK_ALIGNMENT, 1); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); +} + +void Screenshot::Screenshot(int x, int y, int w, int h, const char *filename) { + // read from the front buffer + glReadBuffer(GL_FRONT); + + // grab the pixel data + uint8_t buffer[w * h * (3 * sizeof(uint8_t))]; + glReadPixels(x, y, w, h, GL_RGB, GL_UNSIGNED_BYTE, buffer); + + // open the file for writing + FILE *fp = fopen(filename, "wb"); + if (fp == NULL) { + perror("Failed to open screenshot file for writing!"); + exit(EXIT_FAILURE); + } + + // write 24-bit uncompressed targa header + // thanks to Paul Bourke (http://local.wasp.uwa.edu.au/~pbourke/dataformats/tga/) + putc(0, fp); + putc(0, fp); + putc(2, fp); // type is uncompressed RGB + putc(0, fp); + putc(0, fp); + putc(0, fp); + putc(0, fp); + putc(0, fp); + putc(0, fp); // x origin, low byte + putc(0, fp); // x origin, high byte + putc(0, fp); // y origin, low byte + putc(0, fp); // y origin, high byte + putc(w & 0xff, fp); // width, low byte + putc((w & 0xff00) >> 8, fp); // width, high byte + putc(h & 0xff, fp); // height, low byte + putc((h & 0xff00) >> 8, fp); // height, high byte + putc(24, fp); // 24-bit color depth + putc(0, fp); + + // write the image data + for (int j = 0; j < h; j++) { + for (int i = 0; i < w; i++) { + // calculate the offset into the buffer + int offset = (i + j * w) * (3 * sizeof(uint8_t)); + + // copy out the bytes + uint8_t r = buffer[offset + 0]; + uint8_t g = buffer[offset + 1]; + uint8_t b = buffer[offset + 2]; + + // write out the bytes in BGR order + putc(b, fp); + putc(g, fp); + putc(r, fp); + } + } + + fclose(fp); +} diff --git a/src/screenshot.h b/src/screenshot.h new file mode 100644 index 0000000..4e22836 --- /dev/null +++ b/src/screenshot.h @@ -0,0 +1,16 @@ +#ifndef __SCREENSHOT_H__ +#define __SCREENSHOT_H__ + +namespace Screenshot { + + // Sets OpenGL state such that we can take screenshots later. + void Init(); + + // Writes the framebuffer to a targa file with the specified filename. + // Region is from (x, y) in the bottom left to (x + w, y + h) in the top + // right. + void Screenshot(int x, int y, int w, int h, const char *filename); + +} + +#endif // __SCREENSHOT_H__