Hi all, Over the last few days I have been though some head-scratching and re-writing things, in order to resolve an "interesting" memory corruption to no avail :'(
Before explaining more about the issue here is some info about the current design + where to get the patches. Let me know if you would like me to send them to the ML. Branch GSOC2014 over at https://github.com/evelikov/waffle Archlinux users can use the pkgbuild script in pkg/archlinux/mingw-w64-waffle. Design by example - gl_sample.c (i.e. how to use waffle) waffle_init() waffle_display_connect() + RegisterClass() // Registers the window class used as a "template" // by Windows to create the window waffle_config_choose(dpy...) + CreateWindow() // Create a window and prepend it to the // wgl_display::windows list. + ChoosePixelFormat() + SetPixelFormat() // Set the pixelformat and link the current window // to the wgl_config waffle_context_create(config...) + CreateContext(hDC... ) // At this point we need access to the wgl_window, // as hWnd/hDC (window_handle/device_context handle) // is essential. // This is where wgl_config::window comes into play. waffle_window_create(config, w, h) + wgl_window_resize() // Reuse the window, adjusting it's dimensions, as // w, h used at creation time are include the window // border. AFAICK there is no way to determine the // correct window dimensions prior to creation. ... waffle_window_create(config, w, h) + waffle_window_resize() // Reuse the window... and boom. Any suggestions on // how to resolve this, or should we mandate that // this is not a valid usage of waffle ? And now back to the memory corruption: When compiling the branch and running the gl_example demo, the resize, colors and possibly other variables gets (async) modified whenever gl calls are executed. >gl_basic.exe --platform=wgl --api=gl DEBUG: draw:395 resize 0 DEBUG: draw:397 resize 0 DEBUG: draw:407 resize 0 DEBUG: draw:419 resize 0 DEBUG: draw:421 colors 9e90048 size 307200 DEBUG: draw:429 colors 9e90048 glReadPixels returned unexpected result DEBUG: draw:436 resize 0 DEBUG: draw:444 resize 0 DEBUG: draw:450 resize 0 DEBUG: draw:454 resize 0 DEBUG: draw:456 resize 0 DEBUG: draw:397 resize 0 DEBUG: draw:407 resize 0 DEBUG: draw:411 resize 151 << Interesting DEBUG: draw:413 resize 120 << ... DEBUG: draw:419 resize 216 << ... DEBUG: draw:421 colors 9e90048 size 57600 DEBUG: draw:429 colors 411859 << ... glReadPixels returned unexpected result DEBUG: draw:436 resize 3 DEBUG: draw:450 resize 255 gl_basic: error: WAFFLE_NO_ERROR The values that resize is set to are obviously related to the rgba arguments of glClearColor. Omitting calls results in a seemingly ok execution. Any suggestions as to what I'm doing wrong and/or what may be causing this corruption are greatly appreciated. Many thanks Emil _______________________________________________ waffle mailing list waffle@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/waffle