diff options
Diffstat (limited to 'extra/cogl/git-fixes.patch')
-rw-r--r-- | extra/cogl/git-fixes.patch | 1242 |
1 files changed, 1242 insertions, 0 deletions
diff --git a/extra/cogl/git-fixes.patch b/extra/cogl/git-fixes.patch new file mode 100644 index 000000000..bb0178fbb --- /dev/null +++ b/extra/cogl/git-fixes.patch @@ -0,0 +1,1242 @@ +diff --git a/build/win32/vs10/README.txt b/build/win32/vs10/README.txt +index 72e25b0..13303df 100644 +--- a/build/win32/vs10/README.txt ++++ b/build/win32/vs10/README.txt +@@ -5,7 +5,7 @@ its dependencies can be found on the following GNOME Live! page: +
+ https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack
+
+-Please do not attempt to compile COGL in a path that contains spaces
++Please do not attempt to compile Cogl in a path that contains spaces
+ to avoid potential problems during compilation, linking or usage.
+
+ This VS10 solution and the projects it includes are intented to be used
+@@ -18,7 +18,10 @@ You will need the parts from GNOME: GDK-Pixbuf, Pango* and GLib. + External dependencies are at least zlib, libpng,
+ gettext-runtime* and Cairo*, and glext.h from
+ http://www.opengl.org/registry/api/glext.h (which need to be in the GL folder
+-in your include directories or in <root>\vs10\<PlatformName>\include\GL).
++in your include directories or in <root>\vs10\<PlatformName>\include\GL). Please
++note that although the Cogl source package does allow one to build Cogl without
++a previously built and installed GLib, the Visual Studio projects only support
++builds that does depend on GLib.
+
+ Please see the README file in the root directory of this Cogl source package
+ for the versions of the dependencies required. See also
+@@ -27,11 +30,16 @@ where to unpack them. It is recommended that at least the dependencies + from GNOME are also built with VS10 to avoid crashes caused by mixing different
+ CRTs-please see also the build/win32/vs10/README.txt in those respective packages.
+
+-If building the SDL winsys is desired, you will also need the SDL libraries
+-from www.libsdl.org-building the SDL source package with Visual C++ 2010
+-is recommended (working Visual C++ 2005 projects are included with it, upgrade
+-the projects one prompted), but one may want to use the VC8 binary packages
+-from that website.
++If building the SDL2 winsys is desired (the *_SDL configs), you will also need the
++SDL2 libraries from www.libsdl.org-building the SDL source package with Visual C++ 2010
++is recommended via CMake, but one may want to use the Visual C++ binary packages
++from that website. Since Cogl-1.18.x, the Visual Studio Projects have been updated
++to support the build of the SDL2 winsys in place of the original SDL-1.3 winsys
++as SDL-2.x has been released for some time. Please note, as builds with the SDL2
++winsys includes the SDL2 headers, main() will be defined to SDL2's special main()
++implementation on Windows, which will require linking to SDL2.lib and SDL2main.lib
++for all apps that link to Cogl, unless SDL_MAIN_HANDLED is defined in your
++"preprocessor definitions" options.
+
+ The recommended build sequence of the dependencies are as follows (the non-GNOME
+ packages that are not downloaded as binaries from ftp://ftp.gnome.org have
+@@ -46,9 +54,10 @@ in the next unstable release): + -libpng
+ -(optional for GLib) PCRE (8.12 or later, building PCRE using CMake is
+ recommended-please see build/win32/vs10/README.txt in the GLib source package)
+--(for gdk-pixbuf, if GDI+ is not to be used) IJG JPEG
++-(for gdk-pixbuf, if GDI+ is not to be used) IJG JPEG or libjpeg-turbo
+ -(for gdk-pixbuf, if GDI+ is not to be used) jasper [JPEG-2000 library]
+--(for gdk-pixbuf, if GDI+ is not to be used, requires zlib and IJG JPEG) libtiff
++-(for gdk-pixbuf, if GDI+ is not to be used, requires zlib and IJG JPEG/libjpeg-turbo)
++ libtiff
+ -GLib
+ -Cairo
+ -Pango
+diff --git a/build/win32/vs10/cogl-build-defines.props b/build/win32/vs10/cogl-build-defines.props +index 27b2e4c..eefe1a6 100644 +--- a/build/win32/vs10/cogl-build-defines.props ++++ b/build/win32/vs10/cogl-build-defines.props +@@ -11,6 +11,7 @@ + <CoglBuildDefines>G_LOG_DOMAIN="Cogl";COGL_HAS_WIN32_SUPPORT;COGL_BUILD_EXP;COGL_GL_LIBNAME="";COGL_LOCALEDIR="/some/random/dir"</CoglBuildDefines> + <CoglPathBuildDefines>G_LOG_DOMAIN="CoglPath"</CoglPathBuildDefines> + <CoglPangoBuildDefines>G_LOG_DOMAIN="Cogl-Pango"</CoglPangoBuildDefines> ++ <CoglAppAvoidForcedSDLLinkingDefines>SDL_MAIN_HANDLED</CoglAppAvoidForcedSDLLinkingDefines> + </PropertyGroup> + <PropertyGroup> + <_PropertySheetDisplayName>coglbuilddefinesprops</_PropertySheetDisplayName> +@@ -51,5 +52,8 @@ + <BuildMacro Include="CoglPangoBuildDefines"> + <Value>$(CoglPangoBuildDefines)</Value> + </BuildMacro> ++ <BuildMacro Include="CoglAppAvoidForcedSDLLinkingDefines"> ++ <Value>$(CoglAppAvoidForcedSDLLinkingDefines)</Value> ++ </BuildMacro> + </ItemGroup> + </Project> +diff --git a/build/win32/vs10/cogl-crate.vcxproj b/build/win32/vs10/cogl-crate.vcxproj +index a64e669..d99a487 100644 +--- a/build/win32/vs10/cogl-crate.vcxproj ++++ b/build/win32/vs10/cogl-crate.vcxproj +@@ -75,7 +75,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -94,7 +94,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -118,7 +118,7 @@ + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> +@@ -137,7 +137,7 @@ + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA="../share/cogl-$(ApiVersion)/examples-data/";$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> +diff --git a/build/win32/vs10/cogl-gen-srcs.props b/build/win32/vs10/cogl-gen-srcs.props +index b68b92c..0ec0e63 100644 +--- a/build/win32/vs10/cogl-gen-srcs.props ++++ b/build/win32/vs10/cogl-gen-srcs.props +@@ -48,15 +48,15 @@ cd $(SolutionDir) + </GenCoglEnumsC> + <GenerateCoglDef> + echo EXPORTS > $(DefDir)\cogl.def +-cl -EP -D_COGL_SUPPORTS_GTYPE_INTEGRATION -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def ++cl -EP -DCOGL_HAS_GTYPE_SUPPORT -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def + </GenerateCoglDef> + <GenerateCoglSDLDef> + echo EXPORTS > $(DefDir)\cogl.def +-cl -EP -D_COGL_SUPPORTS_GTYPE_INTEGRATION -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_HAS_SDL_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def ++cl -EP -DCOGL_HAS_GTYPE_SUPPORT -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_HAS_SDL_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def + </GenerateCoglSDLDef> + <GenerateCoglPathDef> + echo EXPORTS > $(DefDir)\cogl-path.def +-cl -EP ..\..\..\cogl-path\cogl-path.symbols >> $(DefDir)\cogl-path.def ++cl -EP -DCOGL_HAS_GTYPE_SUPPORT ..\..\..\cogl-path\cogl-path.symbols >> $(DefDir)\cogl-path.def + </GenerateCoglPathDef> + <GenerateCoglPangoDef> + echo EXPORTS > $(DefDir)\cogl-pango.def +diff --git a/build/win32/vs10/cogl-hello.vcxproj b/build/win32/vs10/cogl-hello.vcxproj +index 4b6c732..a754c0d 100644 +--- a/build/win32/vs10/cogl-hello.vcxproj ++++ b/build/win32/vs10/cogl-hello.vcxproj +@@ -75,7 +75,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -93,7 +93,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <PrecompiledHeader> +@@ -110,7 +110,7 @@ + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> +@@ -130,7 +130,7 @@ + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> +diff --git a/build/win32/vs10/cogl-info.vcxproj b/build/win32/vs10/cogl-info.vcxproj +index 17b3ba8..45f75ff 100644 +--- a/build/win32/vs10/cogl-info.vcxproj ++++ b/build/win32/vs10/cogl-info.vcxproj +@@ -75,7 +75,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -93,7 +93,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -116,7 +116,7 @@ + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> +@@ -134,7 +134,7 @@ + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> +diff --git a/build/win32/vs10/cogl-msaa.vcxproj b/build/win32/vs10/cogl-msaa.vcxproj +index 4518872..28de260 100644 +--- a/build/win32/vs10/cogl-msaa.vcxproj ++++ b/build/win32/vs10/cogl-msaa.vcxproj +@@ -75,7 +75,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -93,7 +93,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <Optimization>Disabled</Optimization> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -116,7 +116,7 @@ + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> +@@ -134,7 +134,7 @@ + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines);$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> +diff --git a/build/win32/vs10/test-conformance-cogl.vcxprojin b/build/win32/vs10/test-conformance-cogl.vcxprojin +index 753a188..a4aded6 100644 +--- a/build/win32/vs10/test-conformance-cogl.vcxprojin ++++ b/build/win32/vs10/test-conformance-cogl.vcxprojin +@@ -76,7 +76,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\..\..\test-fixtures;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -96,7 +96,7 @@ + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>..\..\..\test-fixtures;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>_DEBUG;COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MinimalRebuild>true</MinimalRebuild> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> +@@ -121,7 +121,7 @@ + <Optimization>MaxSpeed</Optimization> + <AdditionalIncludeDirectories>..\..\..\test-fixtures;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <IntrinsicFunctions>true</IntrinsicFunctions> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeader> +@@ -141,7 +141,7 @@ + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <AdditionalIncludeDirectories>..\..\..\test-fixtures;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> +- <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_API;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <PrecompiledHeader> + </PrecompiledHeader> +diff --git a/build/win32/vs9/README.txt b/build/win32/vs9/README.txt +index cd1695d..f277f97 100644 +--- a/build/win32/vs9/README.txt ++++ b/build/win32/vs9/README.txt +@@ -5,7 +5,7 @@ its dependencies can be found on the following GNOME Live! page: +
+ https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack
+
+-Please do not attempt to compile COGL in a path that contains spaces
++Please do not attempt to compile Cogl in a path that contains spaces
+ to avoid potential problems during compilation, linking or usage.
+
+ This VS9 solution and the projects it includes are intented to be used
+@@ -14,31 +14,33 @@ first need to use some Unix-like environment or manual work to expand + the files needed, like config.h.win32.in into config.h.win32 and the
+ .vcprojin files here into corresponding actual .vcproj files.
+
+-Decide whether you want to build the SDL winsys with your COGL build, and
+-use one of the .sln for building COGL (note that both will build the Windows
+-OpenGL (WGL) winsys):
+--cogl.sln for building COGL without the SDL winsys
+--cogl_sdl.sln for building COGL with the SDL winsys
+-
+ You will need the parts from GNOME: GDK-Pixbuf, Pango* and GLib.
+ External dependencies are at least zlib, libpng,
+ gettext-runtime* and Cairo*, and glext.h from
+ http://www.opengl.org/registry/api/glext.h (which need to be in the GL folder
+-in your include directories or in <root>\vs9\<PlatformName>\include\GL).
++in your include directories or in <root>\vs9\<PlatformName>\include\GL). Please
++note that although the Cogl source package does allow one to build Cogl without
++a previously built and installed GLib, the Visual Studio projects only support
++builds that does depend on GLib.
+
+-As Cogl 1.99.x and later will now use C99 types in lieu of GLib types, a
+-compatible implementation of stdint.h for Visual C++ is required, such
+-as the one from http://code.google.com/p/msinttypes/, so one would need
+-to download and extract the .zip file from that website and extract stdint.h
+-into <root>\vs9\<PlatformName>\include or somewhere where it can be
++As Cogl use C99 types in lieu of GLib types, a compatible implementation of
++stdint.h for Visual C++ is required, such as the one from
++http://code.google.com/p/msinttypes/, so one would need to download and extract
++the .zip file from that website and extract stdint.h into
++<root>\vs9\<PlatformName>\include or somewhere where it can be found
+ automatically found by the compiler. Note that Visual C++ 2010 and later
+ ships with stdint.h, so it is only required for Visual C++ 2008 builds.
+
+-If building the SDL winsys is desired, you will also need the SDL libraries
+-from www.libsdl.org-building the SDL source package with Visual C++ 2008
+-is recommended (working Visual C++ 2005 projects are included with it, upgrade
+-the projects one prompted), but one may want to use the VC8 binary packages
+-from that website.
++If building the SDL2 winsys is desired (the *_SDL configs), you will also need the
++SDL2 libraries from www.libsdl.org-building the SDL source package with Visual C++ 2008
++is recommended via CMake, but one may want to use the Visual C++ binary packages
++from that website. Since Cogl-1.18.x, the Visual Studio Projects have been updated
++to support the build of the SDL2 winsys in place of the original SDL-1.3 winsys
++as SDL-2.x has been released for some time. Please note, as builds with the SDL2
++winsys includes the SDL2 headers, main() will be defined to SDL2's special main()
++implementation on Windows, which will require linking to SDL2.lib and SDL2main.lib
++for all apps that link to Cogl, unless SDL_MAIN_HANDLED is defined in your
++"preprocessor definitions" options.
+
+ Please see the README file in the root directory of this Cogl source package
+ for the versions of the dependencies required. See also
+@@ -60,9 +62,10 @@ in the next unstable release): + -libpng
+ -(optional for GLib) PCRE (8.12 or later, building PCRE using CMake is
+ recommended-please see build/win32/vs9/README.txt in the GLib source package)
+--(for gdk-pixbuf, if GDI+ is not to be used) IJG JPEG
++-(for gdk-pixbuf, if GDI+ is not to be used) IJG JPEG or libjpeg-turbo
+ -(for gdk-pixbuf, if GDI+ is not to be used) jasper [JPEG-2000 library]
+--(for gdk-pixbuf, if GDI+ is not to be used, requires zlib and IJG JPEG) libtiff
++-(for gdk-pixbuf, if GDI+ is not to be used, requires zlib and IJG JPEG/libjpeg-turbo)
++ libtiff
+ -GLib
+ -Cairo
+ -Pango
+@@ -75,15 +78,13 @@ built DLLs go into <root>\vs9\<PlatformName>\bin, built LIBs into + <root>\vs9\<PlatformName>\include\Cogl-2.0.
+
+ *There is no known official VS9 build support for fontconfig
+- (required for Pango and Pango at the moment-I will see whether this
+- requirement can be made optional for VS builds)
+ (along with freetype and expat) and gettext-runtime, so
+ please use the binaries from:
+
+ ftp://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/ (32 bit)
+ ftp://ftp.gnome.org/pub/GNOME/binaries/win64/dependencies/ (64 bit)
+
+-Note: If you see C4819 warnings and you are compiling Cogl on a DBCS
++Note: If you see C4819 errors and you are compiling Cogl on a DBCS
+ (Chinese/Korean/Japanese) version of Windows, you may need to switch
+ to an English locale in Control Panel->Region and Languages->System->
+ Change System Locale, reboot and rebuild to ensure Cogl and its
+diff --git a/build/win32/vs9/cogl-build-defines.vsprops b/build/win32/vs9/cogl-build-defines.vsprops +index fc68d47..5fc6282 100644 +--- a/build/win32/vs9/cogl-build-defines.vsprops ++++ b/build/win32/vs9/cogl-build-defines.vsprops +@@ -46,4 +46,8 @@ + Name="CoglPangoBuildDefines" + Value="G_LOG_DOMAIN=\"Cogl-Pango\"" + /> ++ <UserMacro ++ Name="CoglAppAvoidForcedSDLLinkingDefines" ++ Value="SDL_MAIN_HANDLED" ++ /> + </VisualStudioPropertySheet> +diff --git a/build/win32/vs9/cogl-crate.vcproj b/build/win32/vs9/cogl-crate.vcproj +index 0fa2382..359289c 100644 +--- a/build/win32/vs9/cogl-crate.vcproj ++++ b/build/win32/vs9/cogl-crate.vcproj +@@ -31,7 +31,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -60,7 +60,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -94,7 +94,7 @@ + Name="VCCLCompilerTool" + Optimization="2" + EnableIntrinsicFunctions="true" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" +@@ -124,7 +124,7 @@ + /> + <Tool + Name="VCCLCompilerTool" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;COGL_EXAMPLES_DATA=\"../share/cogl-$(ApiVersion)/examples-data/\";$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" +diff --git a/build/win32/vs9/cogl-gen-srcs.vsprops b/build/win32/vs9/cogl-gen-srcs.vsprops +index e7f0a15..cfd33a4 100644 +--- a/build/win32/vs9/cogl-gen-srcs.vsprops ++++ b/build/win32/vs9/cogl-gen-srcs.vsprops +@@ -75,21 +75,21 @@ cd $(SolutionDir)
 + Name="GenerateCoglDef" + Value=" + echo EXPORTS > $(DefDir)\cogl.def
 +-cl -EP -D_COGL_SUPPORTS_GTYPE_INTEGRATION -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def
 ++cl -EP -DCOGL_HAS_GTYPE_SUPPORT -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def
 + " + /> + <UserMacro + Name="GenerateCoglSDLDef" + Value=" + echo EXPORTS > $(DefDir)\cogl.def
 +-cl -EP -D_COGL_SUPPORTS_GTYPE_INTEGRATION -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_HAS_SDL_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def
 ++cl -EP -DCOGL_HAS_GTYPE_SUPPORT -DCOGL_HAS_WIN32_SUPPORT -DCOGL_HAS_GLIB_SUPPORT -DCOGL_HAS_SDL_SUPPORT -DCOGL_ENABLE_EXPERIMENTAL_API ..\..\..\cogl\cogl.symbols >> $(DefDir)\cogl.def
 + " + /> + <UserMacro + Name="GenerateCoglPathDef" + Value=" + echo EXPORTS > $(DefDir)\cogl-path.def
 +-cl -EP ..\..\..\cogl-path\cogl-path.symbols >> $(DefDir)\cogl-path.def
 ++cl -EP -DCOGL_HAS_GTYPE_SUPPORT ..\..\..\cogl-path\cogl-path.symbols >> $(DefDir)\cogl-path.def
 + " + /> + <UserMacro +diff --git a/build/win32/vs9/cogl-hello.vcproj b/build/win32/vs9/cogl-hello.vcproj +index cb3b039..cd850a5 100644 +--- a/build/win32/vs9/cogl-hello.vcproj ++++ b/build/win32/vs9/cogl-hello.vcproj +@@ -31,7 +31,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -59,7 +59,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -92,7 +92,7 @@ + Name="VCCLCompilerTool" + Optimization="2" + EnableIntrinsicFunctions="true" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" +@@ -121,7 +121,7 @@ + /> + <Tool + Name="VCCLCompilerTool" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" +diff --git a/build/win32/vs9/cogl-info.vcproj b/build/win32/vs9/cogl-info.vcproj +index 680abc9..3c69e31 100644 +--- a/build/win32/vs9/cogl-info.vcproj ++++ b/build/win32/vs9/cogl-info.vcproj +@@ -31,7 +31,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -59,7 +59,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -92,7 +92,7 @@ + Name="VCCLCompilerTool" + Optimization="2" + EnableIntrinsicFunctions="true" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" +@@ -121,7 +121,7 @@ + /> + <Tool + Name="VCCLCompilerTool" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" +diff --git a/build/win32/vs9/cogl-msaa.vcproj b/build/win32/vs9/cogl-msaa.vcproj +index ee65a83..d3fd6f1 100644 +--- a/build/win32/vs9/cogl-msaa.vcproj ++++ b/build/win32/vs9/cogl-msaa.vcproj +@@ -31,7 +31,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -59,7 +59,7 @@ + <Tool + Name="VCCLCompilerTool" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -92,7 +92,7 @@ + Name="VCCLCompilerTool" + Optimization="2" + EnableIntrinsicFunctions="true" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" +@@ -121,7 +121,7 @@ + /> + <Tool + Name="VCCLCompilerTool" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(BaseBuildDefines)" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_2_0_API;$(CoglAppAvoidForcedSDLLinkingDefines);$(BaseBuildDefines)" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" +diff --git a/build/win32/vs9/test-conformance-cogl.vcprojin b/build/win32/vs9/test-conformance-cogl.vcprojin +index 98e7259..c664217 100644 +--- a/build/win32/vs9/test-conformance-cogl.vcprojin ++++ b/build/win32/vs9/test-conformance-cogl.vcprojin +@@ -32,7 +32,7 @@ + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\test-fixtures" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_API" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -62,7 +62,7 @@ + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\test-fixtures" + Optimization="0" +- PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_API" ++ PreprocessorDefinitions="_DEBUG;COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines)" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" +@@ -97,7 +97,7 @@ + AdditionalIncludeDirectories="..\..\..\test-fixtures" + Optimization="2" + EnableIntrinsicFunctions="true" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_API" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines)" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" +@@ -128,7 +128,7 @@ + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="..\..\..\test-fixtures" +- PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_API" ++ PreprocessorDefinitions="COGL_ENABLE_EXPERIMENTAL_API;$(CoglAppAvoidForcedSDLLinkingDefines)" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" +diff --git a/cogl-path/cogl-path.symbols b/cogl-path/cogl-path.symbols +index fd56795..b643ec0 100644 +--- a/cogl-path/cogl-path.symbols ++++ b/cogl-path/cogl-path.symbols +@@ -11,6 +11,9 @@ cogl_path_ellipse + cogl_path_fill + cogl_path_fill_preserve + cogl_path_get_fill_rule ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_path_get_gtype ++#endif + cogl_path_line + cogl_path_line_to + cogl_path_move_to +diff --git a/cogl/cogl-atlas-texture.c b/cogl/cogl-atlas-texture.c +index beaaf24..1c8b569 100644 +--- a/cogl/cogl-atlas-texture.c ++++ b/cogl/cogl-atlas-texture.c +@@ -746,15 +746,25 @@ allocate_space (CoglAtlasTexture *atlas_tex, + + /* Look for an existing atlas that can hold the texture */ + for (l = ctx->atlases; l; l = l->next) +- /* Try to make some space in the atlas for the texture */ +- if (_cogl_atlas_reserve_space (atlas = l->data, +- /* Add two pixels for the border */ +- width + 2, height + 2, +- atlas_tex)) +- { +- cogl_object_ref (atlas); +- break; +- } ++ { ++ /* We need to take a reference on the atlas before trying to ++ * reserve space because in some circumstances atlas migration ++ * can cause the atlas to be freed */ ++ atlas = cogl_object_ref (l->data); ++ /* Try to make some space in the atlas for the texture */ ++ if (_cogl_atlas_reserve_space (atlas, ++ /* Add two pixels for the border */ ++ width + 2, height + 2, ++ atlas_tex)) ++ { ++ /* keep the atlas reference */ ++ break; ++ } ++ else ++ { ++ cogl_object_unref (atlas); ++ } ++ } + + /* If we couldn't find a suitable atlas then start another */ + if (l == NULL) +diff --git a/cogl/cogl-gtype-private.h b/cogl/cogl-gtype-private.h +index 03832ef..8498385 100644 +--- a/cogl/cogl-gtype-private.h ++++ b/cogl/cogl-gtype-private.h +@@ -133,9 +133,9 @@ cogl_##name##_get_gtype (void) \ + return type_id__volatile; \ + } + +-#define COGL_GTYPE_DEFINE_BASE_CLASS(Name,name,interfaces...) \ +- _COGL_GTYPE_DEFINE_BASE_CLASS_BEGIN(Name,name) \ +- {interfaces;} \ ++#define COGL_GTYPE_DEFINE_BASE_CLASS(Name,name,...) \ ++ _COGL_GTYPE_DEFINE_BASE_CLASS_BEGIN(Name,name) \ ++ {__VA_ARGS__;} \ + _COGL_GTYPE_DEFINE_BASE_CLASS_END() + + #define _COGL_GTYPE_DEFINE_INTERFACE_EXTENDED_BEGIN(Name,name) \ +@@ -230,7 +230,7 @@ cogl_##name##_get_gtype (void) \ + } /* closes name##_get_type() */ + + +-#define COGL_GTYPE_DEFINE_CLASS(Name,name,interfaces...) \ ++#define COGL_GTYPE_DEFINE_CLASS(Name,name,...) \ + typedef struct _Cogl##Name##Class Cogl##Name##Class; \ + struct _Cogl##Name##Class { \ + CoglObjectClass parent_class; \ +@@ -239,7 +239,7 @@ cogl_##name##_get_gtype (void) \ + cogl_##name, \ + cogl_object_get_gtype(), \ + 0) \ +- {interfaces;} \ ++ {__VA_ARGS__;} \ + _COGL_GTYPE_DEFINE_TYPE_EXTENDED_END() \ + static void \ + cogl_##name##_init (Cogl##Name *instance) \ +diff --git a/cogl/cogl-sdl.h b/cogl/cogl-sdl.h +index 220e004..44d308d 100644 +--- a/cogl/cogl-sdl.h ++++ b/cogl/cogl-sdl.h +@@ -52,15 +52,6 @@ + #include <cogl/cogl-onscreen.h> + #include <SDL.h> + +-#ifdef _MSC_VER +-/* We need to link to SDL.lib/SDLmain.lib +- * if we are using Cogl +- * that uses the SDL winsys +- */ +-#pragma comment (lib, "SDL.lib") +-#pragma comment (lib, "SDLmain.lib") +-#endif +- + COGL_BEGIN_DECLS + + /** +diff --git a/cogl/cogl.symbols b/cogl/cogl.symbols +index d1eb319..c48314a 100644 +--- a/cogl/cogl.symbols ++++ b/cogl/cogl.symbols +@@ -4,14 +4,25 @@ + cogl_android_set_native_window + #endif + +-/* cogl-atlas-texture.h */ ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_atlas_texture_get_gtype ++#endif + cogl_atlas_texture_new_with_size + cogl_atlas_texture_new_from_file + cogl_atlas_texture_new_from_data + cogl_atlas_texture_new_from_bitmap + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_attribute_buffer_get_gtype ++#endif + cogl_attribute_buffer_new_with_size + ++cogl_attribute_buffer_new ++cogl_attribute_get_buffer ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_attribute_get_gtype ++#endif ++cogl_attribute_get_normalized + cogl_attribute_new + cogl_attribute_new_const_1f + cogl_attribute_new_const_2f +@@ -23,9 +34,6 @@ cogl_attribute_new_const_3x3fv + cogl_attribute_new_const_4f + cogl_attribute_new_const_4fv + cogl_attribute_new_const_4x4fv +-cogl_attribute_buffer_new +-cogl_attribute_get_buffer +-cogl_attribute_get_normalized + cogl_attribute_set_buffer + cogl_attribute_set_normalized + cogl_attribute_type_get_type +@@ -35,6 +43,9 @@ cogl_begin_gl + cogl_bitmap_error_get_type + cogl_bitmap_get_buffer + cogl_bitmap_get_format ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_bitmap_get_gtype ++#endif + cogl_bitmap_get_height + cogl_bitmap_get_rowstride + cogl_bitmap_get_size_from_file +@@ -111,6 +122,9 @@ cogl_color_get_blue_float + cogl_color_get_green + cogl_color_get_green_byte + cogl_color_get_green_float ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_color_get_gtype ++#endif + cogl_color_get_red + cogl_color_get_red_byte + cogl_color_get_red_float +@@ -149,6 +163,9 @@ cogl_glx_context_get_glx_context + #endif + + cogl_context_get_display ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_context_get_gtype ++#endif + cogl_context_get_renderer + cogl_context_new + +@@ -172,6 +189,9 @@ cogl_depth_test_function_get_type + + cogl_disable_fog + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_display_get_gtype ++#endif + cogl_display_get_renderer + cogl_display_new + cogl_display_setup +@@ -188,6 +208,9 @@ cogl_error_matches + cogl_euler_copy + cogl_euler_equal + cogl_euler_free ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_euler_get_gtype ++#endif + cogl_euler_init + cogl_euler_init_from_matrix + #if 0 +@@ -239,6 +262,9 @@ cogl_framebuffer_get_depth_texture_enabled + cogl_framebuffer_get_depth_write_enabled + cogl_framebuffer_get_dither_enabled + cogl_framebuffer_get_green_bits ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_framebuffer_get_gtype ++#endif + cogl_framebuffer_get_height + cogl_framebuffer_get_modelview_matrix + cogl_framebuffer_get_projection_matrix +@@ -284,7 +310,14 @@ cogl_framebuffer_translate + cogl_framebuffer_vdraw_attributes + /* cogl_framebuffer_vdraw_indexed_attributes */ /* Not Implemented! */ + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_frame_closure_get_gtype ++#endif + cogl_frame_info_get_frame_counter ++ ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_frame_info_get_gtype ++#endif + cogl_frame_info_get_output + cogl_frame_info_get_presentation_time + cogl_frame_info_get_refresh_rate +@@ -311,6 +344,9 @@ cogl_get_static_identity_quaternion + cogl_get_static_zero_quaternion + cogl_get_viewport + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_gles2_context_get_gtype ++#endif + cogl_gles2_context_get_vtable + cogl_gles2_context_new + cogl_gles2_get_current_vtable +@@ -322,8 +358,8 @@ cogl_glib_renderer_source_new + cogl_glib_source_new + #endif + +-#ifdef _COGL_SUPPORTS_GTYPE_INTEGRATION +-/* cogl_gtype_matrix_get_type */ /* Not Implemented */ ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_gtype_matrix_get_type + #endif + + cogl_handle_get_type +@@ -333,8 +369,14 @@ cogl_handle_unref + cogl_has_feature + cogl_has_features + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_index_buffer_get_gtype ++#endif + cogl_index_buffer_new + cogl_indices_get_buffer ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_indices_get_gtype ++#endif + cogl_indices_get_offset + cogl_indices_get_type + cogl_indices_new +@@ -448,6 +490,9 @@ cogl_matrix_copy + cogl_matrix_entry_calculate_translation + cogl_matrix_entry_equal + cogl_matrix_entry_get ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_matrix_entry_get_gtype ++#endif + cogl_matrix_entry_is_identity + cogl_matrix_entry_ref + cogl_matrix_entry_unref +@@ -455,6 +500,9 @@ cogl_matrix_equal + cogl_matrix_free + cogl_matrix_frustum + cogl_matrix_get_array ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_matrix_get_gtype ++#endif + cogl_matrix_get_inverse + cogl_matrix_init_from_array + cogl_matrix_init_translation +@@ -481,6 +529,9 @@ cogl_matrix_scale + cogl_matrix_stack_frustum + cogl_matrix_stack_get + cogl_matrix_stack_get_entry ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_matrix_stack_get_gtype ++#endif + cogl_matrix_stack_get_inverse + cogl_matrix_stack_load_identity + cogl_matrix_stack_multiply +@@ -504,11 +555,17 @@ cogl_matrix_view_2d_in_perspective + + cogl_meta_texture_foreach_in_region + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_object_get_gtype ++#endif + cogl_object_get_user_data + cogl_object_ref + cogl_object_set_user_data + cogl_object_unref + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_offscreen_get_gtype ++#endif + cogl_offscreen_new_to_texture + cogl_offscreen_new_with_texture + +@@ -519,8 +576,14 @@ cogl_onscreen_add_swap_buffers_callback + #ifndef COGL_WINSYS_INTEGRATED + cogl_onscreen_clutter_backend_set_size_CLUTTER + #endif ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_onscreen_dirty_closure_get_gtype ++#endif + cogl_onscreen_get_buffer_age + cogl_onscreen_get_frame_counter ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_onscreen_get_gtype ++#endif + cogl_onscreen_get_resizable + cogl_onscreen_hide + cogl_onscreen_new +@@ -529,18 +592,27 @@ cogl_onscreen_remove_dirty_callback + cogl_onscreen_remove_frame_callback + cogl_onscreen_remove_resize_callback + cogl_onscreen_remove_swap_buffers_callback ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_onscreen_resize_closure_get_gtype ++#endif + cogl_onscreen_set_resizable + cogl_onscreen_set_swap_throttled + cogl_onscreen_show + cogl_onscreen_swap_buffers + cogl_onscreen_swap_buffers_with_damage + cogl_onscreen_swap_region ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_onscreen_template_get_gtype ++#endif + cogl_onscreen_template_new + cogl_onscreen_template_set_samples_per_pixel + cogl_onscreen_template_set_swap_throttled + + cogl_ortho + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_output_get_gtype ++#endif + cogl_output_get_height + cogl_output_get_mm_height + cogl_output_get_mm_width +@@ -566,6 +638,9 @@ cogl_pipeline_get_depth_state + cogl_pipeline_get_diffuse + cogl_pipeline_get_emission + cogl_pipeline_get_front_face_winding ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_pipeline_get_gtype ++#endif + cogl_pipeline_get_layer_mag_filter + cogl_pipeline_get_layer_min_filter + cogl_pipeline_get_layer_point_sprite_coords_enabled +@@ -618,6 +693,9 @@ cogl_pipeline_set_uniform_1f + cogl_pipeline_set_uniform_1i + cogl_pipeline_set_user_program + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_pixel_buffer_get_gtype ++#endif + cogl_pixel_buffer_new + #if 0 + /* not exported in the main APIs for now */ +@@ -641,6 +719,9 @@ cogl_pop_source + cogl_primitive_copy + cogl_primitive_foreach_attribute + cogl_primitive_get_first_vertex ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_primitive_get_gtype ++#endif + cogl_primitive_get_indices + cogl_primitive_get_mode + cogl_primitive_get_n_vertices +@@ -701,6 +782,9 @@ cogl_quaternion_copy + cogl_quaternion_dot_product + cogl_quaternion_equal + cogl_quaternion_free ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_quaternion_get_gtype ++#endif + cogl_quaternion_get_rotation_angle + cogl_quaternion_get_rotation_axis + cogl_quaternion_init +@@ -733,6 +817,9 @@ cogl_renderer_check_onscreen_template + cogl_renderer_connect + cogl_renderer_foreach_output + cogl_renderer_get_driver ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_renderer_get_gtype ++#endif + cogl_renderer_get_n_fragment_texture_units + cogl_renderer_error_get_type + cogl_renderer_get_winsys_id +@@ -793,6 +880,9 @@ cogl_snippet_get_hook + cogl_snippet_get_post + cogl_snippet_get_pre + cogl_snippet_get_replace ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_snippet_get_gtype ++#endif + cogl_snippet_new + cogl_snippet_set_declarations + cogl_snippet_set_post +@@ -801,9 +891,15 @@ cogl_snippet_set_replace + + cogl_sqrti + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_sub_texture_get_gtype ++#endif + cogl_sub_texture_get_parent + cogl_sub_texture_new + ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_swap_chain_get_gtype ++#endif + cogl_swap_chain_new + cogl_swap_chain_set_has_alpha + cogl_swap_chain_set_length +@@ -811,12 +907,16 @@ cogl_swap_chain_set_length + cogl_system_error_get_type + + cogl_texture_allocate ++cogl_texture_components_get_type + cogl_texture_error_get_type + cogl_texture_flags_get_type + cogl_texture_get_components + cogl_texture_get_data + cogl_texture_get_format + cogl_texture_get_gl_texture ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_texture_get_gtype ++#endif + cogl_texture_get_height + cogl_texture_get_max_waste + cogl_texture_get_premultiplied +@@ -831,11 +931,17 @@ cogl_texture_new_from_sub_texture + cogl_texture_new_with_size + #ifdef COGL_HAS_X11 + cogl_texture_pixmap_x11_error_domain ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_texture_pixmap_x11_get_gtype ++#endif + cogl_texture_pixmap_x11_is_using_tfp_extension + cogl_texture_pixmap_x11_new + cogl_texture_pixmap_x11_set_damage_object + cogl_texture_pixmap_x11_update_area + #endif ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_texture_rectangle_get_gtype ++#endif + cogl_texture_rectangle_new_from_bitmap + cogl_texture_rectangle_new_from_foreign + cogl_texture_rectangle_new_with_size +@@ -851,14 +957,23 @@ cogl_texture_type_get_type + #ifndef COGL_DISABLE_DEPRECATED + cogl_texture_unref + #endif ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_texture_2d_get_gtype ++#endif + cogl_texture_2d_new_from_bitmap + cogl_texture_2d_new_from_data + cogl_texture_2d_new_from_file + cogl_texture_2d_new_with_size ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_texture_2d_sliced_get_gtype ++#endif + cogl_texture_2d_sliced_new_from_bitmap + cogl_texture_2d_sliced_new_from_data + cogl_texture_2d_sliced_new_from_file + cogl_texture_2d_sliced_new_with_size ++#ifdef COGL_HAS_GTYPE_SUPPORT ++cogl_texture_3d_get_gtype ++#endif + cogl_texture_3d_new_from_bitmap + cogl_texture_3d_new_from_data + cogl_texture_3d_new_with_size +diff --git a/cogl/deprecated/cogl-framebuffer-deprecated.h b/cogl/deprecated/cogl-framebuffer-deprecated.h +index 2ac29b1..68ed9d3 100644 +--- a/cogl/deprecated/cogl-framebuffer-deprecated.h ++++ b/cogl/deprecated/cogl-framebuffer-deprecated.h +@@ -33,6 +33,8 @@ + + #include <cogl/cogl-macros.h> + ++COGL_BEGIN_DECLS ++ + /** + * cogl_set_framebuffer: + * @buffer: A #CoglFramebuffer object, either onscreen or offscreen. +@@ -257,4 +259,6 @@ COGL_DEPRECATED_IN_1_18 + CoglPixelFormat + cogl_framebuffer_get_color_format (CoglFramebuffer *framebuffer); + ++COGL_END_DECLS ++ + #endif /* __COGL_FRAMEBUFFER_DEPRECATED_H__ */ +diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c +index 8c4176e..ec54095 100644 +--- a/cogl/winsys/cogl-winsys-egl-kms.c ++++ b/cogl/winsys/cogl-winsys-egl-kms.c +@@ -196,6 +196,31 @@ free_current_bo (CoglOnscreen *onscreen) + } + + static void ++queue_swap_notify_for_onscreen (CoglOnscreen *onscreen) ++{ ++ CoglOnscreenEGL *egl_onscreen = onscreen->winsys; ++ CoglOnscreenKMS *kms_onscreen = egl_onscreen->platform; ++ CoglContext *context = COGL_FRAMEBUFFER (onscreen)->context; ++ CoglRenderer *renderer = context->display->renderer; ++ CoglRendererEGL *egl_renderer = renderer->winsys; ++ CoglRendererKMS *kms_renderer = egl_renderer->platform; ++ ++ /* We only want to notify that the swap is complete when the ++ * application calls cogl_context_dispatch so instead of ++ * immediately notifying we queue an idle callback */ ++ if (!kms_renderer->swap_notify_idle) ++ { ++ kms_renderer->swap_notify_idle = ++ _cogl_poll_renderer_add_idle (renderer, ++ flush_pending_swap_notify_idle, ++ context, ++ NULL); ++ } ++ ++ kms_onscreen->pending_swap_notify = TRUE; ++} ++ ++static void + page_flip_handler (int fd, + unsigned int frame, + unsigned int sec, +@@ -217,19 +242,7 @@ page_flip_handler (int fd, + CoglRendererEGL *egl_renderer = renderer->winsys; + CoglRendererKMS *kms_renderer = egl_renderer->platform; + +- /* We only want to notify that the swap is complete when the +- * application calls cogl_context_dispatch so instead of +- * immediately notifying we queue an idle callback */ +- if (!kms_renderer->swap_notify_idle) +- { +- kms_renderer->swap_notify_idle = +- _cogl_poll_renderer_add_idle (renderer, +- flush_pending_swap_notify_idle, +- context, +- NULL); +- } +- +- kms_onscreen->pending_swap_notify = TRUE; ++ queue_swap_notify_for_onscreen (onscreen); + + free_current_bo (onscreen); + +@@ -283,12 +296,6 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, + egl_renderer->platform = g_slice_new0 (CoglRendererKMS); + kms_renderer = egl_renderer->platform; + +- /* The EGL API doesn't provide for a way to explicitly select a +- * platform when the driver can support multiple. Mesa allows +- * selection using an environment variable though so that's what +- * we're doing here... */ +- g_setenv ("EGL_PLATFORM", "drm", 1); +- + kms_renderer->fd = -1; + kms_renderer->opened_fd = -1; + +@@ -909,6 +916,8 @@ _cogl_winsys_onscreen_swap_buffers_with_damage (CoglOnscreen *onscreen, + kms_onscreen->next_fb_id = 0; + g_slice_free (CoglFlipKMS, flip); + flip = NULL; ++ ++ queue_swap_notify_for_onscreen (onscreen); + } + else + { +diff --git a/cogl/winsys/cogl-winsys-egl-wayland.c b/cogl/winsys/cogl-winsys-egl-wayland.c +index c631080..2b359cb 100644 +--- a/cogl/winsys/cogl-winsys-egl-wayland.c ++++ b/cogl/winsys/cogl-winsys-egl-wayland.c +@@ -242,12 +242,6 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer, + + egl_renderer->platform_vtable = &_cogl_winsys_egl_vtable; + +- /* The EGL API doesn't provide for a way to explicitly select a +- * platform when the driver can support multiple. Mesa allows +- * selection using an environment variable though so that's what +- * we're doing here... */ +- g_setenv ("EGL_PLATFORM", "wayland", 1); +- + if (renderer->foreign_wayland_display) + { + wayland_renderer->wayland_display = renderer->foreign_wayland_display; |