]> git.tdb.fi Git - gldbg.git/blob - source/grabber.h
Add gldQueryViewport and gldReadPixels calls
[gldbg.git] / source / grabber.h
1 /* $Id$
2
3 This file is part of gldbg
4 Copyright © 2011  Mikko Rasa, Mikkosoft Productions
5 Distributed under the GPL
6 */
7
8 #ifndef GRABBERBASE_H_
9 #define GRABBERBASE_H_
10
11 #include <string>
12 #include "gldecoder.h"
13 #include "tool.h"
14
15 class Grabber: public RegisteredTool<Grabber>
16 {
17 private:
18         GlDbg &gldbg;
19         GlDecoder *decoder;
20         int viewport[4];
21         unsigned frame_num;
22         unsigned grab_num;
23         int pending_grab;
24         int autograb;
25
26         static unsigned short break_funcs[];
27
28 public:
29         Grabber(GlDbg &);
30 private:
31         void flavor_init();
32
33 public:
34         virtual void decode(const char *, unsigned);
35         virtual void process_started();
36         virtual void process_stopped(int);
37 private:
38         void cmd_grab(const std::string &);
39         void cmd_autograb(const std::string &);
40
41         void grab();
42         int write_png(const std::string &, unsigned, unsigned, void *);
43         void next_frame();
44
45         static void glViewport(void *, int, int, int, int);
46         static void glGetIntegerv(void *, GLenum, int *);
47         static void glReadPixels(void *, int, int, int, int, GLenum, GLenum, void *);
48         static void gldBreak(void *, unsigned short, unsigned char);
49 };
50
51 #endif