summaryrefslogtreecommitdiffstats
path: root/common.h
diff options
context:
space:
mode:
authorRichard Grenville <[email protected]>2014-09-07 18:58:09 +0800
committerRichard Grenville <[email protected]>2014-09-07 18:58:09 +0800
commite3717f4f7bf3a0a0a015337454f1e381a6e0278f (patch)
tree154628c6c6fc92922281573b424f076b1ff784f5 /common.h
parent886cdca8a59d0ce17d380560490ea06b9f089aa3 (diff)
downloadtdebase-e3717f4f7bf3a0a0a015337454f1e381a6e0278f.tar.gz
tdebase-e3717f4f7bf3a0a0a015337454f1e381a6e0278f.zip
Misc #204: Add glx_take_screenshot() & others
- Add glx_take_screenshot() for taking a screenshot. With ImageMagick the output data could be viewed in this way: display -size [SCREEN-WIDTH]x[SCREEN-HEIGHT] -depth 8 -flip rgb:[PATH] (#204) - Add D-Bus command `opts_get string:paint_on_overlay_id` to get X Composite overlay window ID. (#204) - Code cleanup.
Diffstat (limited to 'common.h')
-rw-r--r--common.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/common.h b/common.h
index f9b5d9453..0aa4f18b8 100644
--- a/common.h
+++ b/common.h
@@ -2208,6 +2208,9 @@ glx_render_(session_t *ps, const glx_texture_t *ptex,
void
glx_swap_copysubbuffermesa(session_t *ps, XserverRegion reg);
+unsigned char *
+glx_take_screenshot(session_t *ps, int *out_length);
+
#ifdef CONFIG_VSYNC_OPENGL_GLSL
GLuint
glx_create_shader(GLenum shader_type, const char *shader_str);
@@ -2485,6 +2488,28 @@ c2_matchd(session_t *ps, win *w, const c2_lptr_t *condlst,
#endif
/**
+ * @brief Dump the given data to a file.
+ */
+static inline bool
+write_binary_data(const char *path, const unsigned char *data, int length) {
+ if (!data)
+ return false;
+ FILE *f = fopen(path, "wb");
+ if (!f) {
+ printf_errf("(\"%s\"): Failed to open file for writing.", path);
+ return false;
+ }
+ int wrote_len = fwrite(data, sizeof(unsigned char), length, f);
+ fclose(f);
+ if (wrote_len != length) {
+ printf_errf("(\"%s\"): Failed to write all blocks: %d / %d", path,
+ wrote_len, length);
+ return false;
+ }
+ return true;
+}
+
+/**
* @brief Dump raw bytes in HEX format.
*
* @param data pointer to raw data