Commit db8ae16b by Kenneth Russell

Refactored TransformFeedback for multi-platform ANGLE and added tests.

Added angle_implementation_unit_tests target designed for testing the cross-platform code in libGLESv2, and libGLESv2_static target as a dependency. The goal is to incorporate these tests into Chromium's angle_unittests target on all platforms; however, more work is needed to make libGLESv2's common code compile on non-Windows platforms, so this is an intermediate step. BUG=angle:719 Change-Id: Ifc44a779352294e857d6e913d9b997a60674c443 Reviewed-on: https://chromium-review.googlesource.com/214105Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Tested-by: 's avatarKenneth Russell <kbr@chromium.org>
parent 6d113802
......@@ -229,6 +229,10 @@
<Project>{7FBD6F69-B9A4-69F1-A12B-8DACB3F8CD81}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\src\libGLESv2_static.vcxproj">
<Project>{F8ABD31A-EC2F-A211-D514-076C763B69F9}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\src\libEGL.vcxproj">
<Project>{FBAEE4F6-562A-588F-01F9-72DCABB3B061}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
......
......@@ -10,6 +10,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "All", "All.vcxproj", "{D048
{3B7F5656-177F-52EE-26B3-D6A75368D0A9} = {3B7F5656-177F-52EE-26B3-D6A75368D0A9}
{22DC02D5-1598-943C-13E1-82185B469F81} = {22DC02D5-1598-943C-13E1-82185B469F81}
{7FBD6F69-B9A4-69F1-A12B-8DACB3F8CD81} = {7FBD6F69-B9A4-69F1-A12B-8DACB3F8CD81}
{F8ABD31A-EC2F-A211-D514-076C763B69F9} = {F8ABD31A-EC2F-A211-D514-076C763B69F9}
{FBAEE4F6-562A-588F-01F9-72DCABB3B061} = {FBAEE4F6-562A-588F-01F9-72DCABB3B061}
{293E74D1-544C-D368-02A0-52F61A4D0679} = {293E74D1-544C-D368-02A0-52F61A4D0679}
{B4D06330-EED1-6F99-BCA4-2F913908C38A} = {B4D06330-EED1-6F99-BCA4-2F913908C38A}
......@@ -85,6 +86,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2", "..\src\libGLES
{63FB0B97-D1D9-5158-8E85-7F5B1E403817} = {63FB0B97-D1D9-5158-8E85-7F5B1E403817}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2_static", "..\src\libGLESv2_static.vcxproj", "{F8ABD31A-EC2F-A211-D514-076C763B69F9}"
ProjectSection(ProjectDependencies) = postProject
{3B7F5656-177F-52EE-26B3-D6A75368D0A9} = {3B7F5656-177F-52EE-26B3-D6A75368D0A9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mip_map_2d", "..\samples\mip_map_2d.vcxproj", "{A6E86EB3-561F-9FAB-670F-EF23556344BE}"
ProjectSection(ProjectDependencies) = postProject
{297C46B0-9263-A9EA-82B1-EA221E7D7C7F} = {297C46B0-9263-A9EA-82B1-EA221E7D7C7F}
......@@ -403,6 +409,14 @@ Global
{E4DD691C-228B-A904-A008-10E26DC0F09E}.Release|x64.Build.0 = Release|x64
{E4DD691C-228B-A904-A008-10E26DC0F09E}.Release|Win32.ActiveCfg = Release|Win32
{E4DD691C-228B-A904-A008-10E26DC0F09E}.Release|Win32.Build.0 = Release|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|x64.ActiveCfg = Debug|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|x64.Build.0 = Debug|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|Win32.ActiveCfg = Debug|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|Win32.Build.0 = Debug|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|x64.ActiveCfg = Release|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|x64.Build.0 = Release|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|Win32.ActiveCfg = Release|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|Win32.Build.0 = Release|Win32
{FBAEE4F6-562A-588F-01F9-72DCABB3B061}.Debug|x64.ActiveCfg = Debug|x64
{FBAEE4F6-562A-588F-01F9-72DCABB3B061}.Debug|x64.Build.0 = Debug|x64
{FBAEE4F6-562A-588F-01F9-72DCABB3B061}.Debug|Win32.ActiveCfg = Debug|Win32
......
......@@ -25,6 +25,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2", "libGLESv2.vcxp
{63FB0B97-D1D9-5158-8E85-7F5B1E403817} = {63FB0B97-D1D9-5158-8E85-7F5B1E403817}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2_static", "libGLESv2_static.vcxproj", "{F8ABD31A-EC2F-A211-D514-076C763B69F9}"
ProjectSection(ProjectDependencies) = postProject
{3B7F5656-177F-52EE-26B3-D6A75368D0A9} = {3B7F5656-177F-52EE-26B3-D6A75368D0A9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "preprocessor", "preprocessor.vcxproj", "{C7BAF548-697D-2DCB-9DF3-9D1506A7B444}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "translator", "translator.vcxproj", "{C15697F6-5057-016E-BD29-422971875679}"
......@@ -105,6 +110,14 @@ Global
{C7BAF548-697D-2DCB-9DF3-9D1506A7B444}.Release|x64.Build.0 = Release|x64
{C7BAF548-697D-2DCB-9DF3-9D1506A7B444}.Release|Win32.ActiveCfg = Release|Win32
{C7BAF548-697D-2DCB-9DF3-9D1506A7B444}.Release|Win32.Build.0 = Release|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|x64.ActiveCfg = Debug|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|x64.Build.0 = Debug|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|Win32.ActiveCfg = Debug|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Debug|Win32.Build.0 = Debug|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|x64.ActiveCfg = Release|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|x64.Build.0 = Release|x64
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|Win32.ActiveCfg = Release|Win32
{F8ABD31A-EC2F-A211-D514-076C763B69F9}.Release|Win32.Build.0 = Release|Win32
{FBAEE4F6-562A-588F-01F9-72DCABB3B061}.Debug|x64.ActiveCfg = Debug|x64
{FBAEE4F6-562A-588F-01F9-72DCABB3B061}.Debug|x64.Build.0 = Debug|x64
{FBAEE4F6-562A-588F-01F9-72DCABB3B061}.Debug|Win32.ActiveCfg = Debug|Win32
......
......@@ -246,6 +246,7 @@
<ClInclude Include="..\..\src\libGLESv2\validationES.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\TextureImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\Renderer.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\TransformFeedbackImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\ShaderExecutable.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\loadimage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\copyimage.h"/>
......@@ -268,6 +269,7 @@
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\TextureD3D.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\TextureStorage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\TransformFeedbackD3D.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\VertexBuffer.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\BufferD3D.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\VertexDataManager.h"/>
......@@ -437,6 +439,7 @@
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\MemoryBuffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\ImageD3D.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\TextureStorage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\TransformFeedbackD3D.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\Renderer11.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\d3d11\InputLayoutCache.cpp"/>
......
......@@ -279,6 +279,9 @@
<None Include="..\..\src\libGLESv2\renderer\loadimage.inl">
<Filter>src\libGLESv2\renderer</Filter>
</None>
<ClInclude Include="..\..\src\libGLESv2\renderer\TransformFeedbackImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\ShaderExecutable.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
......@@ -396,9 +399,15 @@
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\IndexDataManager.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\TransformFeedbackD3D.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\VertexBuffer.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\d3d\TransformFeedbackD3D.cpp">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\d3d\BufferD3D.h">
<Filter>src\libGLESv2\renderer\d3d</Filter>
</ClInclude>
......
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F8ABD31A-EC2F-A211-D514-076C763B69F9}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>libGLESv2_static</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
<PropertyGroup Label="Configuration">
<CharacterSet>MultiByte</CharacterSet>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Locals">
<PlatformToolset>v120</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
<ImportGroup Label="ExtensionSettings"/>
<ImportGroup Label="PropertySheets">
<Import Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"/>
</ImportGroup>
<PropertyGroup Label="UserMacros"/>
<PropertyGroup>
<ExecutablePath>$(ExecutablePath);$(MSBuildProjectDirectory)\..\..\third_party\cygwin\bin\;$(MSBuildProjectDirectory)\..\..\third_party\python_26\</ExecutablePath>
<OutDir>$(SolutionDir)$(Configuration)_$(Platform)\</OutDir>
<IntDir>$(OutDir)obj\$(ProjectName)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<TargetPath>$(OutDir)lib\$(ProjectName)$(TargetExt)</TargetPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<BufferSecurityCheck>true</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4239;4244;4245;4251;4512;4702;4530;4718;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>false</ExceptionHandling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<MinimalRebuild>false</MinimalRebuild>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;NOMINMAX;GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
</Lib>
<Link>
<AdditionalDependencies>kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;odbc32.lib;odbccp32.lib;delayimp.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<FixedBaseAddress>false</FixedBaseAddress>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Culture>0x0409</Culture>
<PreprocessorDefinitions>GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<BufferSecurityCheck>true</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4239;4244;4245;4251;4512;4702;4530;4718;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>false</ExceptionHandling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<MinimalRebuild>false</MinimalRebuild>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;NOMINMAX;GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
</Lib>
<Link>
<AdditionalDependencies>kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;odbc32.lib;odbccp32.lib;delayimp.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<FixedBaseAddress>false</FixedBaseAddress>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Culture>0x0409</Culture>
<PreprocessorDefinitions>GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<BufferSecurityCheck>true</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4239;4244;4245;4251;4512;4702;4530;4718;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>false</ExceptionHandling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<MinimalRebuild>false</MinimalRebuild>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;NOMINMAX;GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
</Lib>
<Link>
<AdditionalDependencies>kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;odbc32.lib;odbccp32.lib;delayimp.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<FixedBaseAddress>false</FixedBaseAddress>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Culture>0x0409</Culture>
<PreprocessorDefinitions>GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<BufferSecurityCheck>true</BufferSecurityCheck>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4100;4127;4239;4244;4245;4251;4512;4702;4530;4718;4267;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<ExceptionHandling>false</ExceptionHandling>
<FunctionLevelLinking>true</FunctionLevelLinking>
<MinimalRebuild>false</MinimalRebuild>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;NOMINMAX;GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<TreatWarningAsError>true</TreatWarningAsError>
<WarningLevel>Level4</WarningLevel>
</ClCompile>
<Lib>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<OutputFile>$(OutDir)lib\$(ProjectName)$(TargetExt)</OutputFile>
</Lib>
<Link>
<AdditionalDependencies>kernel32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;user32.lib;uuid.lib;odbc32.lib;odbccp32.lib;delayimp.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<FixedBaseAddress>false</FixedBaseAddress>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ImportLibrary>$(OutDir)lib\$(TargetName).lib</ImportLibrary>
<MapFileName>$(OutDir)$(TargetName).map</MapFileName>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX64</TargetMachine>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>..\..\src;..\..\include;..\..\src\libGLESv2;$(OutDir)obj\global_intermediate\angle;C:\Program Files (x86)\Windows Kits\8.0\Include\shared;C:\Program Files (x86)\Windows Kits\8.0\Include\um;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Culture>0x0409</Culture>
<PreprocessorDefinitions>GL_APICALL=;GL_GLEXT_PROTOTYPES=;EGLAPI=;ANGLE_COMPILE_OPTIMIZATION_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="..\..\src\angle.gyp"/>
<None Include="..\..\src\libGLESv2\libGLESv2.def"/>
<None Include="..\..\src\libGLESv2\renderer\copyvertex.inl"/>
<None Include="..\..\src\libGLESv2\renderer\loadimage.inl"/>
<None Include="..\..\src\libGLESv2\renderer\copyimage.inl"/>
<None Include="..\..\src\libGLESv2\renderer\generatemip.inl"/>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\libGLESv2\constants.h"/>
<ClInclude Include="..\..\src\libGLESv2\Shader.h"/>
<ClInclude Include="..\..\src\libGLESv2\BinaryStream.h"/>
<ClInclude Include="..\..\src\libGLESv2\resource.h"/>
<ClInclude Include="..\..\src\libGLESv2\queryconversions.h"/>
<ClInclude Include="..\..\src\libGLESv2\validationES3.h"/>
<ClInclude Include="..\..\src\libGLESv2\Renderbuffer.h"/>
<ClInclude Include="..\..\src\libGLESv2\Program.h"/>
<ClInclude Include="..\..\src\libGLESv2\Caps.h"/>
<ClInclude Include="..\..\src\libGLESv2\Sampler.h"/>
<ClInclude Include="..\..\src\libGLESv2\HandleAllocator.h"/>
<ClInclude Include="..\..\src\libGLESv2\precompiled.h"/>
<ClInclude Include="..\..\src\libGLESv2\Error.h"/>
<ClInclude Include="..\..\src\libGLESv2\TransformFeedback.h"/>
<ClInclude Include="..\..\src\libGLESv2\Context.h"/>
<ClInclude Include="..\..\src\libGLESv2\Query.h"/>
<ClInclude Include="..\..\src\libGLESv2\ResourceManager.h"/>
<ClInclude Include="..\..\src\libGLESv2\Texture.h"/>
<ClInclude Include="..\..\src\libGLESv2\DynamicHLSL.h"/>
<ClInclude Include="..\..\src\libGLESv2\VertexAttribute.h"/>
<ClInclude Include="..\..\src\libGLESv2\validationES2.h"/>
<ClInclude Include="..\..\src\libGLESv2\Fence.h"/>
<ClInclude Include="..\..\src\libGLESv2\VertexArray.h"/>
<ClInclude Include="..\..\src\libGLESv2\main.h"/>
<ClInclude Include="..\..\src\libGLESv2\ProgramBinary.h"/>
<ClInclude Include="..\..\src\libGLESv2\angletypes.h"/>
<ClInclude Include="..\..\src\libGLESv2\Uniform.h"/>
<ClInclude Include="..\..\src\libGLESv2\FramebufferAttachment.h"/>
<ClInclude Include="..\..\src\libGLESv2\Framebuffer.h"/>
<ClInclude Include="..\..\src\libGLESv2\formatutils.h"/>
<ClInclude Include="..\..\src\libGLESv2\Buffer.h"/>
<ClInclude Include="..\..\src\libGLESv2\State.h"/>
<ClInclude Include="..\..\src\libGLESv2\validationES.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\TextureImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\Renderer.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\SwapChain.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\TransformFeedbackImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\imageformats.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\ShaderExecutable.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\QueryImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\loadimage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\copyimage.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\IndexRangeCache.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\FenceImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\Image.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\generatemip.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\BufferImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\vertexconversion.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\RenderTarget.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\VertexArrayImpl.h"/>
<ClInclude Include="..\..\src\libGLESv2\renderer\copyvertex.h"/>
<ClInclude Include="..\..\src\common\RefCountObject.h"/>
<ClInclude Include="..\..\src\common\tls.h"/>
<ClInclude Include="..\..\src\common\mathutil.h"/>
<ClInclude Include="..\..\src\common\event_tracer.h"/>
<ClInclude Include="..\..\src\common\blocklayout.h"/>
<ClInclude Include="..\..\src\common\debug.h"/>
<ClInclude Include="..\..\src\common\platform.h"/>
<ClInclude Include="..\..\src\common\version.h"/>
<ClInclude Include="..\..\src\common\utilities.h"/>
<ClInclude Include="..\..\src\common\angleutils.h"/>
<ClInclude Include="..\..\src\third_party\systeminfo\SystemInfo.h"/>
<ClInclude Include="..\..\src\third_party\murmurhash\MurmurHash3.h"/>
<ClInclude Include="..\..\include\angle_gl.h"/>
<ClInclude Include="..\..\include\KHR\khrplatform.h"/>
<ClInclude Include="..\..\include\GLSLANG\ShaderLang.h"/>
<ClInclude Include="..\..\include\GLSLANG\ShaderVars.h"/>
<ClInclude Include="..\..\include\GLES2\gl2platform.h"/>
<ClInclude Include="..\..\include\GLES2\gl2ext.h"/>
<ClInclude Include="..\..\include\GLES2\gl2.h"/>
<ClInclude Include="..\..\include\GLES3\gl3ext.h"/>
<ClInclude Include="..\..\include\GLES3\gl3.h"/>
<ClInclude Include="..\..\include\GLES3\gl3platform.h"/>
<ClInclude Include="..\..\include\EGL\eglext.h"/>
<ClInclude Include="..\..\include\EGL\egl.h"/>
<ClInclude Include="..\..\include\EGL\eglplatform.h"/>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\libGLESv2\Caps.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\State.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Error.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\validationES2.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\precompiled.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\DynamicHLSL.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\HandleAllocator.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\queryconversions.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\libGLESv2.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\formatutils.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Context.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Fence.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\TransformFeedback.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\ProgramBinary.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\VertexAttribute.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\validationES.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Buffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Renderbuffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\VertexArray.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Program.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Shader.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Uniform.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\main.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\angletypes.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Float16ToFloat32.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\ResourceManager.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\validationES3.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Sampler.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\FramebufferAttachment.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Framebuffer.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Texture.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\Query.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\copyimage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\loadimageSSE2.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\Image.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\loadimage.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\IndexRangeCache.cpp"/>
<ClCompile Include="..\..\src\libGLESv2\renderer\Renderer.cpp"/>
<ClCompile Include="..\..\src\common\event_tracer.cpp"/>
<ClCompile Include="..\..\src\common\utilities.cpp"/>
<ClCompile Include="..\..\src\common\debug.cpp"/>
<ClCompile Include="..\..\src\common\RefCountObject.cpp"/>
<ClCompile Include="..\..\src\common\mathutil.cpp"/>
<ClCompile Include="..\..\src\common\tls.cpp"/>
<ClCompile Include="..\..\src\common\angleutils.cpp"/>
<ClCompile Include="..\..\src\common\blocklayout.cpp"/>
<ClCompile Include="..\..\src\third_party\systeminfo\SystemInfo.cpp"/>
<ClCompile Include="..\..\src\third_party\murmurhash\MurmurHash3.cpp"/>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\libGLESv2\libGLESv2.rc"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="commit_id.vcxproj">
<Project>{3B7F5656-177F-52EE-26B3-D6A75368D0A9}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets"/>
<ImportGroup Label="ExtensionTargets"/>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="src">
<UniqueIdentifier>{8CDEE807-BC53-E450-C8B8-4DEBB66742D4}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2">
<UniqueIdentifier>{A62A9415-2E9D-A6D2-631D-1F25A5CD626F}</UniqueIdentifier>
</Filter>
<Filter Include="src\libGLESv2\renderer">
<UniqueIdentifier>{AC4EF684-2900-10EA-3D11-A6DF0901358C}</UniqueIdentifier>
</Filter>
<Filter Include="src\common">
<UniqueIdentifier>{2F5FD094-EF52-77F7-7AA8-4327A01BF747}</UniqueIdentifier>
</Filter>
<Filter Include="src\third_party">
<UniqueIdentifier>{D6C6CEA7-AAD0-03AD-2394-AC6FCBF8A498}</UniqueIdentifier>
</Filter>
<Filter Include="src\third_party\systeminfo">
<UniqueIdentifier>{8E42519F-DD71-5875-38CA-0ED32E34DB55}</UniqueIdentifier>
</Filter>
<Filter Include="src\third_party\murmurhash">
<UniqueIdentifier>{FBF5769C-D63C-9100-0719-0B97CE76B013}</UniqueIdentifier>
</Filter>
<Filter Include="include">
<UniqueIdentifier>{57CA55B8-BCC5-4000-CE3A-58972F82E9CB}</UniqueIdentifier>
</Filter>
<Filter Include="include\KHR">
<UniqueIdentifier>{6D4588DE-6319-FB13-135F-FA88843373FC}</UniqueIdentifier>
</Filter>
<Filter Include="include\GLSLANG">
<UniqueIdentifier>{AD7D3D9B-E716-B150-1F3A-64569B7F5415}</UniqueIdentifier>
</Filter>
<Filter Include="include\GLES2">
<UniqueIdentifier>{3FFE2AF8-8DA3-57BA-8037-4BE936BC5045}</UniqueIdentifier>
</Filter>
<Filter Include="include\GLES3">
<UniqueIdentifier>{E18FF71E-3DE4-F6D0-36B6-93BA54EEDEE1}</UniqueIdentifier>
</Filter>
<Filter Include="include\EGL">
<UniqueIdentifier>{79AE79DD-7922-70CC-3439-C9B3586338EF}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\angle.gyp">
<Filter>src</Filter>
</None>
<ClCompile Include="..\..\src\libGLESv2\Caps.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\constants.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\State.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Shader.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Error.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\validationES2.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\BinaryStream.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\resource.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\precompiled.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\DynamicHLSL.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\queryconversions.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\validationES3.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Renderbuffer.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Program.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Caps.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Sampler.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\HandleAllocator.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\queryconversions.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\HandleAllocator.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\libGLESv2.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\precompiled.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\formatutils.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Error.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\TransformFeedback.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Context.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Query.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\ResourceManager.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ResourceCompile Include="..\..\src\libGLESv2\libGLESv2.rc">
<Filter>src\libGLESv2</Filter>
</ResourceCompile>
<ClInclude Include="..\..\src\libGLESv2\Texture.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Context.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\DynamicHLSL.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Fence.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\TransformFeedback.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\ProgramBinary.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\VertexAttribute.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\VertexAttribute.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\validationES2.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\Fence.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\validationES.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Buffer.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Renderbuffer.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\VertexArray.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\VertexArray.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Program.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Shader.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Uniform.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\main.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\angletypes.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\main.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Float16ToFloat32.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\ProgramBinary.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<None Include="..\..\src\libGLESv2\libGLESv2.def">
<Filter>src\libGLESv2</Filter>
</None>
<ClInclude Include="..\..\src\libGLESv2\angletypes.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\ResourceManager.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\validationES3.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Uniform.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\FramebufferAttachment.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Sampler.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Framebuffer.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\formatutils.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\FramebufferAttachment.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\Buffer.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\State.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\Framebuffer.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Texture.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\libGLESv2\Query.cpp">
<Filter>src\libGLESv2</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\validationES.h">
<Filter>src\libGLESv2</Filter>
</ClInclude>
<None Include="..\..\src\libGLESv2\renderer\copyvertex.inl">
<Filter>src\libGLESv2\renderer</Filter>
</None>
<ClCompile Include="..\..\src\libGLESv2\renderer\copyimage.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\TextureImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\Renderer.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\loadimageSSE2.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\SwapChain.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<None Include="..\..\src\libGLESv2\renderer\loadimage.inl">
<Filter>src\libGLESv2\renderer</Filter>
</None>
<ClCompile Include="..\..\src\libGLESv2\renderer\Image.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\TransformFeedbackImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\imageformats.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\ShaderExecutable.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\QueryImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\loadimage.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<None Include="..\..\src\libGLESv2\renderer\copyimage.inl">
<Filter>src\libGLESv2\renderer</Filter>
</None>
<ClInclude Include="..\..\src\libGLESv2\renderer\copyimage.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\IndexRangeCache.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\FenceImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\loadimage.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\Image.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\generatemip.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\BufferImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\vertexconversion.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\RenderTarget.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClInclude Include="..\..\src\libGLESv2\renderer\VertexArrayImpl.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\IndexRangeCache.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<ClInclude Include="..\..\src\libGLESv2\renderer\copyvertex.h">
<Filter>src\libGLESv2\renderer</Filter>
</ClInclude>
<ClCompile Include="..\..\src\libGLESv2\renderer\Renderer.cpp">
<Filter>src\libGLESv2\renderer</Filter>
</ClCompile>
<None Include="..\..\src\libGLESv2\renderer\generatemip.inl">
<Filter>src\libGLESv2\renderer</Filter>
</None>
<ClInclude Include="..\..\src\common\RefCountObject.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\common\tls.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\common\mathutil.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\common\event_tracer.h">
<Filter>src\common</Filter>
</ClInclude>
<ClCompile Include="..\..\src\common\event_tracer.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClInclude Include="..\..\src\common\blocklayout.h">
<Filter>src\common</Filter>
</ClInclude>
<ClCompile Include="..\..\src\common\utilities.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\debug.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\RefCountObject.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\mathutil.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\tls.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClInclude Include="..\..\src\common\debug.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\common\platform.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\common\version.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\common\utilities.h">
<Filter>src\common</Filter>
</ClInclude>
<ClCompile Include="..\..\src\common\angleutils.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\blocklayout.cpp">
<Filter>src\common</Filter>
</ClCompile>
<ClInclude Include="..\..\src\common\angleutils.h">
<Filter>src\common</Filter>
</ClInclude>
<ClInclude Include="..\..\src\third_party\systeminfo\SystemInfo.h">
<Filter>src\third_party\systeminfo</Filter>
</ClInclude>
<ClCompile Include="..\..\src\third_party\systeminfo\SystemInfo.cpp">
<Filter>src\third_party\systeminfo</Filter>
</ClCompile>
<ClInclude Include="..\..\src\third_party\murmurhash\MurmurHash3.h">
<Filter>src\third_party\murmurhash</Filter>
</ClInclude>
<ClCompile Include="..\..\src\third_party\murmurhash\MurmurHash3.cpp">
<Filter>src\third_party\murmurhash</Filter>
</ClCompile>
<ClInclude Include="..\..\include\angle_gl.h">
<Filter>include</Filter>
</ClInclude>
<ClInclude Include="..\..\include\KHR\khrplatform.h">
<Filter>include\KHR</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLSLANG\ShaderLang.h">
<Filter>include\GLSLANG</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLSLANG\ShaderVars.h">
<Filter>include\GLSLANG</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLES2\gl2platform.h">
<Filter>include\GLES2</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLES2\gl2ext.h">
<Filter>include\GLES2</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLES2\gl2.h">
<Filter>include\GLES2</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLES3\gl3ext.h">
<Filter>include\GLES3</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLES3\gl3.h">
<Filter>include\GLES3</Filter>
</ClInclude>
<ClInclude Include="..\..\include\GLES3\gl3platform.h">
<Filter>include\GLES3</Filter>
</ClInclude>
<ClInclude Include="..\..\include\EGL\eglext.h">
<Filter>include\EGL</Filter>
</ClInclude>
<ClInclude Include="..\..\include\EGL\egl.h">
<Filter>include\EGL</Filter>
</ClInclude>
<ClInclude Include="..\..\include\EGL\eglplatform.h">
<Filter>include\EGL</Filter>
</ClInclude>
</ItemGroup>
</Project>
......@@ -114,6 +114,7 @@
'libGLESv2/renderer/ShaderExecutable.h',
'libGLESv2/renderer/SwapChain.h',
'libGLESv2/renderer/TextureImpl.h',
'libGLESv2/renderer/TransformFeedbackImpl.h',
'libGLESv2/renderer/VertexArrayImpl.h',
'libGLESv2/renderer/copyimage.cpp',
'libGLESv2/renderer/copyimage.h',
......@@ -158,6 +159,8 @@
'libGLESv2/renderer/d3d/TextureD3D.h',
'libGLESv2/renderer/d3d/TextureStorage.cpp',
'libGLESv2/renderer/d3d/TextureStorage.h',
'libGLESv2/renderer/d3d/TransformFeedbackD3D.cpp',
'libGLESv2/renderer/d3d/TransformFeedbackD3D.h',
'libGLESv2/renderer/d3d/VertexBuffer.cpp',
'libGLESv2/renderer/d3d/VertexBuffer.h',
'libGLESv2/renderer/d3d/VertexDataManager.cpp',
......@@ -399,6 +402,33 @@
},
},
},
{
# This target supports angle_implementation_unittests.
# It only executes cross-platform code and therefore
# doesn't need any Direct3D DLLs.
'target_name': 'libGLESv2_static',
'type': 'static_library',
'dependencies': [ 'translator', 'commit_id' ],
'includes': [ '../build/common_defines.gypi', ],
'include_dirs':
[
'.',
'../include',
'libGLESv2',
],
'sources':
[
'<@(angle_libglesv2_sources)',
],
'defines':
[
'GL_APICALL=',
'GL_GLEXT_PROTOTYPES=',
'EGLAPI=',
# Workaround for D3D-specific code in Renderer.h
'ANGLE_COMPILE_OPTIMIZATION_LEVEL=0',
],
},
],
},
],
......
......@@ -101,7 +101,7 @@ Context::Context(int clientVersion, const gl::Context *shareContext, rx::Rendere
// In the initial state, a default transform feedback object is bound and treated as
// a transform feedback object with a name of zero. That object is bound any time
// BindTransformFeedback is called with id of zero
mTransformFeedbackZero.set(new TransformFeedback(0));
mTransformFeedbackZero.set(new TransformFeedback(mRenderer->createTransformFeedback(), 0));
bindTransformFeedback(0);
mHasBeenCurrent = false;
......@@ -262,7 +262,7 @@ GLuint Context::createSampler()
GLuint Context::createTransformFeedback()
{
GLuint handle = mTransformFeedbackAllocator.allocate();
TransformFeedback *transformFeedback = new TransformFeedback(handle);
TransformFeedback *transformFeedback = new TransformFeedback(mRenderer->createTransformFeedback(), handle);
transformFeedback->addRef();
mTransformFeedbackMap[handle] = transformFeedback;
return handle;
......
......@@ -5,20 +5,24 @@
//
#include "libGLESv2/TransformFeedback.h"
#include "libGLESv2/renderer/TransformFeedbackImpl.h"
namespace gl
{
TransformFeedback::TransformFeedback(GLuint id)
TransformFeedback::TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id)
: RefCountObject(id),
mTransformFeedback(impl),
mStarted(GL_FALSE),
mPrimitiveMode(GL_NONE),
mPaused(GL_FALSE)
{
ASSERT(impl != NULL);
}
TransformFeedback::~TransformFeedback()
{
SafeDelete(mTransformFeedback);
}
void TransformFeedback::start(GLenum primitiveMode)
......@@ -26,6 +30,7 @@ void TransformFeedback::start(GLenum primitiveMode)
mStarted = GL_TRUE;
mPrimitiveMode = primitiveMode;
mPaused = GL_FALSE;
mTransformFeedback->begin(primitiveMode);
}
void TransformFeedback::stop()
......@@ -33,6 +38,7 @@ void TransformFeedback::stop()
mStarted = GL_FALSE;
mPrimitiveMode = GL_NONE;
mPaused = GL_FALSE;
mTransformFeedback->end();
}
GLboolean TransformFeedback::isStarted() const
......@@ -48,11 +54,13 @@ GLenum TransformFeedback::getDrawMode() const
void TransformFeedback::pause()
{
mPaused = GL_TRUE;
mTransformFeedback->pause();
}
void TransformFeedback::resume()
{
mPaused = GL_FALSE;
mTransformFeedback->resume();
}
GLboolean TransformFeedback::isPaused() const
......
......@@ -12,13 +12,18 @@
#include "angle_gl.h"
namespace rx
{
class TransformFeedbackImpl;
}
namespace gl
{
class TransformFeedback : public RefCountObject
{
public:
explicit TransformFeedback(GLuint id);
TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id);
virtual ~TransformFeedback();
void start(GLenum primitiveMode);
......@@ -34,6 +39,8 @@ class TransformFeedback : public RefCountObject
private:
DISALLOW_COPY_AND_ASSIGN(TransformFeedback);
rx::TransformFeedbackImpl* mTransformFeedback;
GLboolean mStarted;
GLenum mPrimitiveMode;
GLboolean mPaused;
......
......@@ -60,6 +60,7 @@ class Image;
class TextureStorage;
class UniformStorage;
class TextureImpl;
class TransformFeedbackImpl;
struct ConfigDesc
{
......@@ -229,6 +230,9 @@ class Renderer
virtual QueryImpl *createQuery(GLenum type) = 0;
virtual FenceImpl *createFence() = 0;
// Transform Feedback creation
virtual TransformFeedbackImpl* createTransformFeedback() = 0;
// Current GLES client version
void setCurrentClientVersion(int clientVersion) { mCurrentClientVersion = clientVersion; }
int getCurrentClientVersion() const { return mCurrentClientVersion; }
......
//
// Copyright 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// TransformFeedbackImpl.h: Defines the abstract rx::TransformFeedbackImpl class.
#ifndef LIBGLESV2_RENDERER_TRANSFORMFEEDBACKIMPL_H_
#define LIBGLESV2_RENDERER_TRANSFORMFEEDBACKIMPL_H_
#include "common/angleutils.h"
#include "libGLESv2/TransformFeedback.h"
namespace rx
{
class TransformFeedbackImpl
{
public:
virtual ~TransformFeedbackImpl() { }
virtual void begin(GLenum primitiveMode) = 0;
virtual void end() = 0;
virtual void pause() = 0;
virtual void resume() = 0;
};
}
#endif // LIBGLESV2_RENDERER_TRANSFORMFEEDBACKIMPL_H_
#include "precompiled.h"
//
// Copyright 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// TransformFeedbackD3D.cpp is a no-op implementation for both the D3D9 and D3D11 renderers.
#include "libGLESv2/renderer/d3d/TransformFeedbackD3D.h"
namespace rx
{
TransformFeedbackD3D::TransformFeedbackD3D()
{
}
TransformFeedbackD3D::~TransformFeedbackD3D()
{
}
void TransformFeedbackD3D::begin(GLenum primitiveMode)
{
}
void TransformFeedbackD3D::end()
{
}
void TransformFeedbackD3D::pause()
{
}
void TransformFeedbackD3D::resume()
{
}
}
//
// Copyright 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// TransformFeedbackD3D.h: Implements the abstract rx::TransformFeedbackImpl class.
#ifndef LIBGLESV2_RENDERER_D3D_TRANSFORMFEEDBACKD3D_H_
#define LIBGLESV2_RENDERER_D3D_TRANSFORMFEEDBACKD3D_H_
#include "libGLESv2/renderer/TransformFeedbackImpl.h"
#include "libGLESv2/angletypes.h"
namespace rx
{
class TransformFeedbackD3D : public TransformFeedbackImpl
{
public:
TransformFeedbackD3D();
virtual ~TransformFeedbackD3D();
virtual void begin(GLenum primitiveMode);
virtual void end();
virtual void pause();
virtual void resume();
};
}
#endif // LIBGLESV2_RENDERER_D3D_TRANSFORMFEEDBACKD3D_H_
......@@ -14,6 +14,7 @@
#include "libGLESv2/ProgramBinary.h"
#include "libGLESv2/Framebuffer.h"
#include "libGLESv2/renderer/d3d/TextureD3D.h"
#include "libGLESv2/renderer/d3d/TransformFeedbackD3D.h"
#include "libGLESv2/renderer/d3d/d3d11/Renderer11.h"
#include "libGLESv2/renderer/d3d/d3d11/RenderTarget11.h"
#include "libGLESv2/renderer/d3d/d3d11/renderer11_utils.h"
......@@ -2488,6 +2489,11 @@ FenceImpl *Renderer11::createFence()
return new Fence11(this);
}
TransformFeedbackImpl* Renderer11::createTransformFeedback()
{
return new TransformFeedbackD3D();
}
bool Renderer11::supportsFastCopyBufferToTexture(GLenum internalFormat) const
{
ASSERT(getRendererExtensions().pixelBufferObject);
......
......@@ -178,6 +178,9 @@ class Renderer11 : public Renderer
virtual QueryImpl *createQuery(GLenum type);
virtual FenceImpl *createFence();
// Transform Feedback creation
virtual TransformFeedbackImpl* createTransformFeedback();
// D3D11-renderer specific methods
ID3D11Device *getDevice() { return mDevice; }
ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; };
......
......@@ -18,6 +18,7 @@
#include "libGLESv2/ProgramBinary.h"
#include "libGLESv2/renderer/d3d/IndexDataManager.h"
#include "libGLESv2/renderer/d3d/TextureD3D.h"
#include "libGLESv2/renderer/d3d/TransformFeedbackD3D.h"
#include "libGLESv2/renderer/d3d/d3d9/Renderer9.h"
#include "libGLESv2/renderer/d3d/d3d9/renderer9_utils.h"
#include "libGLESv2/renderer/d3d/d3d9/formatutils9.h"
......@@ -600,6 +601,11 @@ FenceImpl *Renderer9::createFence()
return new Fence9(this);
}
TransformFeedbackImpl* Renderer9::createTransformFeedback()
{
return new TransformFeedbackD3D();
}
bool Renderer9::supportsFastCopyBufferToTexture(GLenum internalFormat) const
{
// Pixel buffer objects are not supported in D3D9, since D3D9 is ES2-only and PBOs are ES3.
......
......@@ -180,6 +180,9 @@ class Renderer9 : public Renderer
virtual QueryImpl *createQuery(GLenum type);
virtual FenceImpl *createFence();
// Transform Feedback creation
virtual TransformFeedbackImpl* createTransformFeedback();
// Buffer-to-texture and Texture-to-buffer copies
virtual bool supportsFastCopyBufferToTexture(GLenum internalFormat) const;
virtual bool fastCopyBufferToTexture(const gl::PixelUnpackState &unpack, unsigned int offset, RenderTarget *destRenderTarget,
......
//
// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "libGLESv2/TransformFeedback.h"
#include "libGLESv2/renderer/TransformFeedbackImpl.h"
namespace {
class MockTransformFeedbackImpl : public rx::TransformFeedbackImpl
{
public:
virtual ~MockTransformFeedbackImpl() { destroy(); }
MOCK_METHOD1(begin, void(GLenum primitiveMode));
MOCK_METHOD0(end, void());
MOCK_METHOD0(pause, void());
MOCK_METHOD0(resume, void());
MOCK_METHOD0(destroy, void());
};
class TransformFeedbackTest : public testing::Test
{
protected:
virtual void SetUp()
{
mImpl = new MockTransformFeedbackImpl;
EXPECT_CALL(*mImpl, destroy());
mFeedback = new gl::TransformFeedback(mImpl, 1);
mFeedback->addRef();
}
virtual void TearDown()
{
mFeedback->release();
}
MockTransformFeedbackImpl* mImpl;
gl::TransformFeedback* mFeedback;
};
TEST_F(TransformFeedbackTest, DestructionDeletesImpl)
{
MockTransformFeedbackImpl* impl = new MockTransformFeedbackImpl;
EXPECT_CALL(*impl, destroy()).Times(1).RetiresOnSaturation();
gl::TransformFeedback* feedback = new gl::TransformFeedback(impl, 1);
feedback->addRef();
feedback->release();
// Only needed because the mock is leaked if bugs are present,
// which logs an error, but does not cause the test to fail.
// Ordinarily mocks are verified when destroyed.
testing::Mock::VerifyAndClear(impl);
}
TEST_F(TransformFeedbackTest, SideEffectsOfStartAndStop)
{
testing::InSequence seq;
EXPECT_EQ(GL_FALSE, mFeedback->isStarted());
EXPECT_CALL(*mImpl, begin(GL_TRIANGLES));
mFeedback->start(GL_TRIANGLES);
EXPECT_EQ(GL_TRUE, mFeedback->isStarted());
EXPECT_EQ(GL_TRIANGLES, mFeedback->getDrawMode());
EXPECT_CALL(*mImpl, end());
mFeedback->stop();
EXPECT_EQ(GL_FALSE, mFeedback->isStarted());
}
TEST_F(TransformFeedbackTest, SideEffectsOfPauseAndResume)
{
testing::InSequence seq;
EXPECT_FALSE(mFeedback->isStarted());
EXPECT_CALL(*mImpl, begin(GL_TRIANGLES));
mFeedback->start(GL_TRIANGLES);
EXPECT_EQ(GL_FALSE, mFeedback->isPaused());
EXPECT_CALL(*mImpl, pause());
mFeedback->pause();
EXPECT_EQ(GL_TRUE, mFeedback->isPaused());
EXPECT_CALL(*mImpl, resume());
mFeedback->resume();
EXPECT_EQ(GL_FALSE, mFeedback->isPaused());
EXPECT_CALL(*mImpl, end());
mFeedback->stop();
}
} // namespace
# Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
{
'sources':
[
'<!@(python <(angle_path)/enumerate_files.py \
-dirs <(angle_path)/tests/angle_implementation_unit_tests \
-types *.cpp *.h \
-excludes <(angle_path)/tests/angle_implementation_unit_tests/angle_implementation_unit_tests_main.cpp)'
],
}
//
// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#include "gmock/gmock.h"
#include "gtest/gtest.h"
int main(int argc, char** argv)
{
testing::InitGoogleMock(&argc, argv);
int rt = RUN_ALL_TESTS();
return rt;
}
......@@ -113,6 +113,33 @@
'compiler_tests/compiler_test_main.cpp',
],
},
{
'target_name': 'angle_implementation_unit_tests',
'type': 'executable',
'dependencies':
[
'../src/angle.gyp:libGLESv2_static',
'gtest',
'gmock',
],
'include_dirs':
[
'../include',
'../src',
'third_party/googletest/include',
'third_party/googlemock/include',
],
'includes':
[
'../build/common_defines.gypi',
'angle_implementation_unit_tests/angle_implementation_unit_tests.gypi',
],
'sources':
[
'angle_implementation_unit_tests/angle_implementation_unit_tests_main.cpp',
],
},
],
'conditions':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment