15 #ifndef EGLGRAPHICSPIPE_H
16 #define EGLGRAPHICSPIPE_H
18 #include "pandabase.h"
19 #include "graphicsWindow.h"
20 #include "graphicsPipe.h"
21 #include "lightMutex.h"
22 #include "lightReMutex.h"
27 #include "pre_x11_include.h"
29 #include "post_x11_include.h"
30 #define NativeDisplayType EGLNativeDisplayType
31 #define NativePixmapType EGLNativePixmapType
32 #define NativeWindowType EGLNativeWindowType
35 #include "pre_x11_include.h"
37 #include "post_x11_include.h"
72 Atom _wm_delete_window;
73 Atom _net_wm_window_type;
74 Atom _net_wm_window_type_splash;
75 Atom _net_wm_window_type_fullscreen;
77 Atom _net_wm_state_fullscreen;
78 Atom _net_wm_state_above;
79 Atom _net_wm_state_below;
80 Atom _net_wm_state_add;
81 Atom _net_wm_state_remove;
95 void make_hidden_cursor();
96 void release_hidden_cursor();
98 static void install_error_handlers();
99 static int error_handler(X11_Display *display, XErrorEvent *error);
100 static int io_error_handler(X11_Display *display);
102 X11_Display *_display;
106 EGLDisplay _egl_display;
108 X11_Cursor _hidden_cursor;
110 typedef int ErrorHandlerFunc(X11_Display *, XErrorEvent *);
111 typedef int IOErrorHandlerFunc(X11_Display *);
112 static bool _error_handlers_installed;
113 static ErrorHandlerFunc *_prev_error_handler;
114 static IOErrorHandlerFunc *_prev_io_error_handler;
125 static void init_type() {
126 GraphicsPipe::init_type();
127 register_type(_type_handle,
"eglGraphicsPipe",
128 GraphicsPipe::get_class_type());
131 return get_class_type();
133 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
143 #include "eglGraphicsPipe.I"
X11_Window get_root() const
Returns the handle to the root window on the pipe's display.
XIM get_im() const
Returns the input method opened for the pipe, or NULL if the input method could not be opened for som...
A lightweight reentrant mutex.
An interface to the egl system for managing GLES windows under X.
This graphics pipe represents the interface for creating OpenGL ES graphics windows on an X-based (e...
virtual string get_interface_name() const
Returns the name of the rendering interface associated with this GraphicsPipe.
virtual PreferredWindowThread get_preferred_window_thread() const
Returns an indication of the thread in which this GraphicsPipe requires its window processing to be p...
A container for the various kinds of properties we might ask to have on a graphics window before we o...
An object to create GraphicsOutputs that share a particular 3-D API.
Another offscreen buffer in the EGL environment.
X11_Cursor get_hidden_cursor()
Returns an invisible Cursor suitable for assigning to windows that have the cursor_hidden property se...
This is a base class for the various different classes that represent the result of a frame of render...
An offscreen buffer in the EGL environment.
int get_screen() const
Returns the X screen number associated with the pipe.
Encapsulates all the communication with a particular instance of a given rendering backend...
X11_Display * get_display() const
Returns a pointer to the X display associated with the pipe: the display on which to create the windo...
This class is the main interface to controlling the render process.
TypeHandle is the identifier used to differentiate C++ class types.
A container for the various kinds of properties we might ask to have on a graphics frameBuffer before...