#include <X11/Xlib.h>
#include <X11/extensions/Xinerama.h>
+#ifdef HAVE_GL
+#define GL_GLEXT_PROTOTYPES
+#include <GL/glx.h>
+#endif
+
class BC_DisplayInfo
{
public:
static int get_left_border();
static int get_right_border();
static int get_bottom_border();
+ static const char *get_gl_shader_version();
+ static int get_gl_max_texture_size();
int get_screen_count();
void test_window(int &x_out, int &y_out, int &x_out2, int &y_out2, int x_in, int y_in);
static const char *host_display_name(const char *name);
void init_window(const char *display_name, int show_error=0);
- int get_screen() { return screen; }
+ int get_screen() { return scrnum; }
int get_xinerama_screens();
int xinerama_geometry(int screen, int &x, int &y, int &w, int &h);
+ int xinerama_big_screen();
+#ifdef HAVE_GL
+ int gl_fb_config();
+ int gl_probe(Window win);
+ int ncfgs;
+ GLXFBConfig *fb_cfgs, cfg;
+ XVisualInfo *vis_info;
+#endif
private:
static void init_borders();
Display* display;
Window rootwin;
Visual *vis;
- int screen;
+ int scrnum;
static int top_border;
static int left_border;
static int bottom_border;
static int right_border;
static int auto_reposition_x;
static int auto_reposition_y;
- int default_depth;
+ static int gl_max_texture_size;
+ static char gl_shader_version[64];
+ int depth;
char *display_name;
XineramaScreenInfo *xinerama_info;
int xinerama_screens;