#include #include MwWidget opengl; static void draw(void); static void idle(void); static void reshape(int width, int height); static void init(void); static void key(int k); static void tick(MwWidget handle, void* user, void* client) { (void)handle; (void)user; (void)client; draw(); idle(); MwOpenGLSwapBuffer(opengl); } static void resize(MwWidget handle, void* user, void* client) { int ww, wh; (void)user; (void)client; ww = MwGetInteger(handle, MwNwidth) - 100; wh = MwGetInteger(handle, MwNheight) - 100; MwVaApply(opengl, MwNwidth, ww, MwNheight, wh, NULL); reshape(ww, wh); } static void key_pressed(MwWidget handle, void* user, void* client) { (void)handle; (void)user; key(*(int*)client); } int main() { MwWidget window; MwLibraryInit(); window = MwVaCreateWidget(MwWindowClass, "main", NULL, MwDEFAULT, MwDEFAULT, 500, 500, MwNtitle, TITLE, NULL); opengl = MwCreateWidget(MwOpenGLClass, "opengl", window, 50, 50, 400, 400); MwOpenGLMakeCurrent(opengl); init(); reshape(400, 400); MwAddUserHandler(window, MwNresizeHandler, resize, NULL); MwAddUserHandler(opengl, MwNtickHandler, tick, NULL); MwAddTickList(opengl); MwAddUserHandler(opengl, MwNkeyHandler, key_pressed, NULL); MwLoop(window); }