GNU Radio's TEST Package
glfw_sink_c_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2013-2014 Sylvain Munaut <tnt@246tNt.com>
4  *
5  * This is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3, or (at your option)
8  * any later version.
9  *
10  * This software is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this software; see the file COPYING. If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 
22 #ifndef INCLUDED_GR_FOSPHOR_GLFW_SINK_C_IMPL_H
23 #define INCLUDED_GR_FOSPHOR_GLFW_SINK_C_IMPL_H
24 
26 
27 #include "base_sink_c_impl.h"
28 
29 struct GLFWwindow;
30 
31 namespace gr {
32  namespace fosphor {
33 
34  /*!
35  * \brief GLFW version of fosphor sink (implementation)
36  * \ingroup fosphor
37  */
39  {
40  private:
41  /* GLFW stuff */
42  GLFWwindow *d_window;
43 
44  void glfw_render(void);
45  void glfw_cb_reshape(int w, int h);
46  void glfw_cb_key(int key, int scancode, int action, int mods);
47  void glfw_cb_mouse(int btn, int action, int mods);
48 
49  static void _glfw_cb_reshape(GLFWwindow *wnd, int w, int h);
50  static void _glfw_cb_key(GLFWwindow *wnd, int key, int scancode, int action, int mods);
51  static void _glfw_cb_mouse(GLFWwindow *wnd, int btn, int action, int mods);
52 
53  protected:
54  /* Delegated implementation of GL context management */
55  void glctx_init();
56  void glctx_swap();
57  void glctx_poll();
58  void glctx_fini();
59  void glctx_update();
60 
61  public:
63  };
64 
65  } // namespace fosphor
66 } // namespace gr
67 
68 #endif /* INCLUDED_GR_FOSPHOR_GLFW_SINK_C_IMPL_H */
69 
GLFW version of fosphor sink.
Definition: glfw_sink_c.h:37
Definition: private.h:43
Base class for fosphor sink implementation.
Definition: base_sink_c_impl.h:43
Definition: base_sink_c.h:30
GLFW version of fosphor sink (implementation)
Definition: glfw_sink_c_impl.h:38