#include <assert.h>
#include <stdint.h>
+#include "os_path.hpp"
#include "image.hpp"
#include "glproc.hpp"
#include "glsize.hpp"
-#if !defined(_WIN32) && !defined(__APPLE__)
+#if !defined(TRACE_EGL) && !defined(_WIN32) && !defined(__APPLE__)
#include <X11/Xproto.h>
/**
* Get the contents of the current drawable into an image.
*/
-static Image::Image *
+static image::Image *
getDrawableImage(void) {
-#if defined(_WIN32)
+#if defined(TRACE_EGL)
+
+ // TODO
+ return NULL;
+
+#elif defined(_WIN32)
HDC hDC = __wglGetCurrentDC();
if (!hDC) {
return NULL;
}
- Image::Image *image = NULL;
+ image::Image *image = NULL;
if (ximage->depth == 24 &&
ximage->bits_per_pixel == 32 &&
ximage->green_mask == 0x0000ff00 &&
ximage->blue_mask == 0x000000ff) {
- image = new Image::Image(w, h, 4);
+ image = new image::Image(w, h, 4);
if (image) {
const uint32_t *src = (const uint32_t *)ximage->data;
uint32_t *dst = (uint32_t*) image->start();
- for (int y = 0; y < h; ++y) {
- for (int x = 0; x < w; ++x) {
+ for (unsigned y = 0; y < h; ++y) {
+ for (unsigned x = 0; x < w; ++x) {
uint32_t bgra = src[x];
uint32_t rgba = (bgra & 0xff00ff00)
| ((bgra >> 16) & 0xff)
}
}
} else {
- OS::DebugMessage("apitrace: unexpected XImage: "
+ os::log("apitrace: unexpected XImage: "
"bits_per_pixel = %i, "
"depth = %i, "
"red_mask = 0x%08lx, "
++frame_no;
if (snapshot_prefix) {
- Image::Image *src = getDrawableImage();
+ image::Image *src = getDrawableImage();
if (src) {
- char filename[PATH_MAX];
- snprintf(filename, sizeof filename, "%s%010u.png", snapshot_prefix, call_no);
+ os::Path filename = os::Path::format("%s%010u.png", snapshot_prefix, call_no);
if (src->writePNG(filename)) {
- OS::DebugMessage("apitrace: wrote %s\n", filename);
+ os::log("apitrace: wrote %s\n", filename.str());
}
delete src;