#include <GL/glx.h>
#endif
-
+// scaled x,y unit
+#define xS(v) (BC_WindowBase::get_resources()->x_scale*(v))
+#define yS(v) (BC_WindowBase::get_resources()->y_scale*(v))
#ifdef HAVE_GL
//typedef void* GLXContext;
virtual int grab_event(XEvent *event) { return 0; };
virtual void create_objects() { return; };
+ static void init_resources(float scale);
+ static void finit_resources();
int get_window_type() { return window_type; }
// Wait until event loop is running
void init_wait();
void disable_opengl();
void flip_opengl();
-// Calls the BC_Synchronous version of the function with the window_id.
-// Not run in OpenGL thread because it has its own lock.
- unsigned int get_shader(char *title, int *got_it);
- void put_shader(unsigned int handle, char *title);
+// Calls the BC_Synchronous version of the function
+ int get_shader(unsigned int *handle, const char *vert, const char *frag);
+ void put_shader(unsigned int handle, const char *vert, const char *frag);
int get_opengl_server_version();
int flash(int x, int y, int w, int h, int flush = 1);
int allocate_color_table();
int init_gc();
int init_fonts();
+ void init_glyphs();
void init_xft();
void init_im();
void finit_im();
XFontSet get_fontset(int font);
XFontSet get_curr_fontset(void);
void set_fontset(int font);
- int dispatch_event(XEvent *event);
+ int dispatch_event();
int get_key_masks(unsigned int key_state);
// Whether the window has the focus
int has_focus;
- static BC_Resources resources;
+ static BC_Resources *resources;
#ifndef SINGLE_THREAD
// Array of repeaters for multiple repeating objects.