struct Context {
Context(glws::Context* context)
: wsContext(context),
+ drawable(0),
activeProgram(0),
used(false)
{
}
glws::Context* wsContext;
+
+ // Bound drawable
+ glws::Drawable *drawable;
+
GLuint activeProgram;
bool used;
+
+ // Context must be current
+ inline bool
+ hasExtension(const char *extension) const {
+ return wsContext->hasExtension(extension);
+ }
};
extern bool insideList;
extern bool insideGlBeginEnd;
-extern glws::Drawable *currentDrawable;
extern Context *currentContext;
+
+int
+parseAttrib(const trace::Value *attribs, int param, int default_);
+
+
glws::Drawable *
createDrawable(glws::Profile profile);
glws::Drawable *
createDrawable(void);
+glws::Drawable *
+createPbuffer(int width, int height);
+
Context *
createContext(Context *shareContext, glws::Profile profile);
extern const retrace::Entry wgl_callbacks[];
extern const retrace::Entry egl_callbacks[];
-void frame_start();
void frame_complete(trace::Call &call);
void initContext();