Hello Chad, As mentioned earlier here is a rebase of all the wgl work so far on top of origin/master.
NOTE: The origin/master branch lacks the first patch in the series, yet it is present in origin/next. I would suspect that other patches may be in such state but I haven't checked. What's new: - Patch 06/53: wgl: implement display management Drop "we use the root GL context as a fallback context in waffle_get_proc_address..." from the commit message. - Patch 08/53: wgl: wire-up waffle_get_proc_address() No more ABI/API break. Infortunatelly this does not give us any additional cleanups, as we still need to have a GL context in order to choose the config... lovely WGL. - Patch 13/53: wgl: provide static GLES* symbols (dlsym) via opengl32.dll The name says it all, this handles the second ABI/API break that I had initially and is now withdrawn. - Patch 46/53: cmake: Set default location for all artifacts to top-level directories Version 2 of your patch, updated to work under Windows. There is no rpath in there so one needs to put the dll (considered RUNTIME object) alongside the executables that use it. - Patch 47/53: cmake: ensure waffle-static name differs from the shared one Or there will be name collision with the shared waffle objects and all hell will break loose. - Patch 48/53: wflinfo: call get_proc_address after make_current - Patches 49-53/53 are some spelling/grammar fixes. And a pull request below, considering there aren't any issues with the series Thank Emil P.S. Handling multiple locations where the waffle version number is stored is going to be a pain in the a** when releasing waffle. Any ideas how to handle it ? The following changes since commit f16fe1afaa0ecca217d5f90d9f2255ffd570f63a: Merge branch 'maint-1.4' (2014-11-08 11:50:52 -0800) are available in the git repository at: https://github.com/evelikov/waffle.git for-chad/wgl-pull for you to fetch changes up to 8afea079f19ce86e209b5e61158d8890ad187b03: man: spelling fix (2014-11-09 22:44:09 +0000) ---------------------------------------------------------------- Emil Velikov (53): cmake: include the CPACK module pkg/archlinux: add mingw-w64-waffle package README: Add notes when building Waffle for Windows. wgl: add skeleton implementation wgl: fill up the dl_* hooks wgl: implement display management wgl: wire-up wgl_window and wgl_config hooks wgl: wire-up waffle_get_proc_address() wgl: add context hooks wgl: check for various WGL extensions and fetch their funcptrs wgl: use wglChoosePixelFormatARB when available wgl: fully support ARB_create_context and EXT_create_context_es_profile. wgl: provide static GLES* symbols (dlsym) via opengl32.dll cmake: set most compiler flags/defines in a single location cmake: drop the waffle library prefix on Windows wgl: restrict exported symbols via module-definition file wgl: avoid using container_of and DEFINE_CONTAINER_CAST_FUNC macros tests: do not force gcc compiler flags onto msvc tests/gl_basic_test: don't include posix headers when building for win32 core: wcore_error_unittest include c99_compat.h examples/gl_basic: use native sleep functions core: use compiler specific (noreturn) attribute examples/gl_basic: use compiler specific (noreturn) attribute utils/wflinfo: use compiler specific (noreturn) attribute examples/simple-x11-egl: properly annotate the function pointers examples/gl_basic: properly annotate the function pointers utils/wflinfo: properly annotate the function pointers tests/gl_basic_test: properly annotate the function pointers utils/wflinfo: use define to provide buffer length utils/wflinfo: wrap if (glHamSandwich() != GL_NO_ERROR ||...) in curly brackets examples/gl_basic: move variable declaration before code waffle_test: introduce TEST_RUN2 macro test/gl_basic_test: add all_gl_rgb(a) tests test/gl_basic_test: use all_gl_(10-21) tests for all platforms test/gl_basic_test: introduce linux_gl(30_core - 43_compat) tests test/gl_basic_test: introduce linux_gles* tests test/gl_basic_test: deduplicate gl_(debug,fwdcompat) tests test/gl_basic_test: add PLATFORM_WGL support/tests test/gl_basic_test: implement windows version for run_testsuite() cmake: misc fixes and cleanups wgl: strings.h does not exist in MSVC core: silence MSVC compiler warning wgl: use correct dtor in wgl_window_priv_create error path core/tests: correctly store the threads exit codes core/tests: silence the final MSVC warning cmake: Set default location for all artifacts to top-level directories cmake: ensure waffle-static name differs from the shared one wflinfo: call get_proc_address after make_current README: spelling fixes wgl: s/glX/wgl/ in error message README: fix spelling typo man: spelling/grammar fix man: spelling fix .gitignore | 2 +- CMakeLists.txt | 29 + README.txt | 177 ++- cmake/Modules/WaffleDefineCompilerFlags.cmake | 107 +- cmake/Modules/WaffleDefineOS.cmake | 2 + .../Modules/WafflePrintConfigurationSummary.cmake | 6 + cmake/Modules/WaffleValidateOptions.cmake | 13 + examples/gl_basic.c | 49 +- examples/simple-x11-egl.c | 12 +- include/waffle/waffle.h | 1 + include/waffle_test/waffle_test.h | 12 + man/waffle_display.3.xml | 2 +- man/waffle_dl.3.xml | 2 +- man/waffle_enum.3.xml | 1 + man/waffle_get_proc_address.3.xml | 17 +- man/waffle_init.3.xml | 8 + man/waffle_is_extension_in_string.3.xml | 2 +- man/wflinfo.1.xml | 1 + pkg/archlinux/mingw-w64-waffle/PKGBUILD | 86 ++ src/utils/CMakeLists.txt | 4 - src/utils/wflinfo.c | 57 +- src/waffle/CMakeLists.txt | 46 +- src/waffle/api/api_priv.h | 3 +- src/waffle/api/waffle_init.c | 11 + src/waffle/core/wcore_attrib_list.c | 2 +- src/waffle/core/wcore_error.c | 2 - src/waffle/core/wcore_error_unittest.c | 12 +- src/waffle/core/wcore_tinfo.c | 10 +- src/waffle/core/wcore_util.c | 1 + src/waffle/waffle.def.in | 33 + src/waffle/wgl/wgl_config.c | 300 +++++ src/waffle/wgl/wgl_config.h | 61 + src/waffle/wgl/wgl_context.c | 212 +++ src/waffle/wgl/wgl_context.h | 53 + src/waffle/wgl/wgl_display.c | 275 ++++ src/waffle/wgl/wgl_display.h | 81 ++ src/waffle/wgl/wgl_dl.c | 143 ++ src/waffle/wgl/wgl_dl.h | 43 + src/waffle/wgl/wgl_error.c | 48 + src/waffle/wgl/wgl_error.h | 32 + src/waffle/wgl/wgl_platform.c | 173 +++ src/waffle/wgl/wgl_platform.h | 53 + src/waffle/wgl/wgl_window.c | 202 +++ src/waffle/wgl/wgl_window.h | 77 ++ src/waffle_test/wt_main.c | 4 + src/waffle_test/wt_runner.c | 4 - tests/functional/CMakeLists.txt | 25 +- tests/functional/gl_basic_test.c | 1393 +++++++------------- third_party/threads/CMakeLists.txt | 2 - 49 files changed, 2845 insertions(+), 1046 deletions(-) create mode 100644 pkg/archlinux/mingw-w64-waffle/PKGBUILD create mode 100644 src/waffle/waffle.def.in create mode 100644 src/waffle/wgl/wgl_config.c create mode 100644 src/waffle/wgl/wgl_config.h create mode 100644 src/waffle/wgl/wgl_context.c create mode 100644 src/waffle/wgl/wgl_context.h create mode 100644 src/waffle/wgl/wgl_display.c create mode 100644 src/waffle/wgl/wgl_display.h create mode 100644 src/waffle/wgl/wgl_dl.c create mode 100644 src/waffle/wgl/wgl_dl.h create mode 100644 src/waffle/wgl/wgl_error.c create mode 100644 src/waffle/wgl/wgl_error.h create mode 100644 src/waffle/wgl/wgl_platform.c create mode 100644 src/waffle/wgl/wgl_platform.h create mode 100644 src/waffle/wgl/wgl_window.c create mode 100644 src/waffle/wgl/wgl_window.h _______________________________________________ waffle mailing list waffle@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/waffle