Commit 4fd96650 by Nicolas Capens

Use original PowerVR ColourGrading ES 3.0 sample.

Change-Id: Ifff92974ea41be61244ae1c09e2d54e299c10eeb Reviewed-on: https://swiftshader-review.googlesource.com/4160Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com>
parent cc6fe659
...@@ -240,12 +240,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B7E24D8E ...@@ -240,12 +240,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{B7E24D8E
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGL", "OpenGL\libGL\libGL.vcxproj", "{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGL", "OpenGL\libGL\libGL.vcxproj", "{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2ColourGrading", "..\tests\third_party\PowerVR\Examples\Intermediate\ColourGrading\OGLES2\Build\WindowsVC2010\OGLES2ColourGrading.vcxproj", "{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}"
ProjectSection(ProjectDependencies) = postProject
{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}
{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLSimpleCube", "..\tests\OGLSimpleCube\OGLSimpleCube.vcxproj", "{27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLSimpleCube", "..\tests\OGLSimpleCube\OGLSimpleCube.vcxproj", "{27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}"
ProjectSection(ProjectDependencies) = postProject ProjectSection(ProjectDependencies) = postProject
{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67} = {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67} {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67} = {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}
...@@ -253,6 +247,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLSimpleCube", "..\tests\O ...@@ -253,6 +247,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLSimpleCube", "..\tests\O
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "D3D9", "D3D9\D3D9.vcxproj", "{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "D3D9", "D3D9\D3D9.vcxproj", "{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3ColourGrading", "..\tests\third_party\PowerVR\Examples\Intermediate\ColourGrading\OGLES3\Build\WindowsVC2010\OGLES3ColourGrading.vcxproj", "{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}"
ProjectSection(ProjectDependencies) = postProject
{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}
{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3Tools", "..\tests\third_party\PowerVR\Tools\OGLES3\Build\WindowsVC2010\OGLES3Tools.vcxproj", "{9088FC9E-9843-4E0D-85D0-1B657AFC480A}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
...@@ -671,18 +673,6 @@ Global ...@@ -671,18 +673,6 @@ Global
{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}.Release|Win32.Build.0 = Release|Win32 {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}.Release|Win32.Build.0 = Release|Win32
{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}.Release|x64.ActiveCfg = Release|x64 {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}.Release|x64.ActiveCfg = Release|x64
{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}.Release|x64.Build.0 = Release|x64 {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67}.Release|x64.Build.0 = Release|x64
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Debug|Win32.ActiveCfg = Debug|Win32
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Debug|Win32.Build.0 = Debug|Win32
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Debug|x64.ActiveCfg = Debug|x64
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Debug|x64.Build.0 = Debug|x64
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Profile|Win32.ActiveCfg = Release|Win32
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Profile|Win32.Build.0 = Release|Win32
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Profile|x64.ActiveCfg = Release|x64
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Profile|x64.Build.0 = Release|x64
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Release|Win32.ActiveCfg = Release|Win32
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Release|Win32.Build.0 = Release|Win32
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Release|x64.ActiveCfg = Release|x64
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}.Release|x64.Build.0 = Release|x64
{27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}.Debug|Win32.ActiveCfg = Debug|Win32 {27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}.Debug|Win32.ActiveCfg = Debug|Win32
{27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}.Debug|Win32.Build.0 = Debug|Win32 {27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}.Debug|Win32.Build.0 = Debug|Win32
{27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}.Debug|x64.ActiveCfg = Debug|x64 {27E15292-4A8D-4BA0-8D9B-5D1ECFF85747}.Debug|x64.ActiveCfg = Debug|x64
...@@ -707,6 +697,30 @@ Global ...@@ -707,6 +697,30 @@ Global
{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|Win32.Build.0 = Release|Win32 {F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|Win32.Build.0 = Release|Win32
{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x64.ActiveCfg = Release|x64 {F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x64.ActiveCfg = Release|x64
{F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x64.Build.0 = Release|x64 {F18D5ABF-CA3A-4B74-BDB2-4A1957C86F18}.Release|x64.Build.0 = Release|x64
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|Win32.ActiveCfg = Debug|Win32
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|Win32.Build.0 = Debug|Win32
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|x64.ActiveCfg = Debug|x64
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Debug|x64.Build.0 = Debug|x64
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|Win32.ActiveCfg = Release|Win32
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|Win32.Build.0 = Release|Win32
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|x64.ActiveCfg = Release|x64
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Profile|x64.Build.0 = Release|x64
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|Win32.ActiveCfg = Release|Win32
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|Win32.Build.0 = Release|Win32
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|x64.ActiveCfg = Release|x64
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}.Release|x64.Build.0 = Release|x64
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|Win32.ActiveCfg = Debug|Win32
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|Win32.Build.0 = Debug|Win32
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|x64.ActiveCfg = Debug|x64
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Debug|x64.Build.0 = Debug|x64
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|Win32.ActiveCfg = Release|Win32
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|Win32.Build.0 = Release|Win32
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|x64.ActiveCfg = Release|x64
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Profile|x64.Build.0 = Release|x64
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|Win32.ActiveCfg = Release|Win32
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|Win32.Build.0 = Release|Win32
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|x64.ActiveCfg = Release|x64
{9088FC9E-9843-4E0D-85D0-1B657AFC480A}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
...@@ -745,7 +759,8 @@ Global ...@@ -745,7 +759,8 @@ Global
{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D} {AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
{B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D} {B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
{3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67} = {D33114D7-E582-4D61-B27D-FAB0297C43FF} {3EF851E7-4AAB-4C7C-9A79-3122CEA1EB67} = {D33114D7-E582-4D61-B27D-FAB0297C43FF}
{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
{27E15292-4A8D-4BA0-8D9B-5D1ECFF85747} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D} {27E15292-4A8D-4BA0-8D9B-5D1ECFF85747} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2} = {ED25C308-5BDB-43A7-BED6-C2C059FC2D7D}
{9088FC9E-9843-4E0D-85D0-1B657AFC480A} = {B7E24D8E-6BE9-4DEF-A8B9-6A6E60CA60E9}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal
uniform sampler2D sTexture;
varying mediump vec2 texCoords;
void main()
{
highp vec3 vCol = texture2D(sTexture, texCoords).rgb;
gl_FragColor = vec4(vCol, 1.0);
}
texld r0, v0.xy, s0
mov r1, r0
mov r2.xyz, v1.xyzx
mov r3.x, r1.x
mul r4.xyz, r2.xyz, r3.x
mov r5.x, v1.wx
mov r6.x, r1.wx
mul r7.x, r5.x, r6.x
mov r8, r4.xyz
mov r8.w, r7.x
mov oC0, r8
mov r9, r8
texld r0, v0.xy, s0
mov r1.xyz, r0.xyzx
mov r2.xyz, r1.xyz
texld r3, r2.xyz, s1
mov r4.xyz, r3.xyzx
mov r5.xyz, r4.xyz
mov r6, r5.xyz
mov r6.w, {1, 1, 1, 1}.x
mov oC0, r6
mov r7, r6
texld r0, v0.xy, s0
mov r1.xyz, r0.xyzx
mov r2.xyz, r1.xyz
mov r3, r2.xyz
mov r3.w, {1, 1, 1, 1}.x
mov oC0, r3
mov r4, r3
texld r0, v0.xy, s0
mov r1.xyz, r0.xyzx
mov r2.xyz, r1.xyz
mul r3.xyz, r2.xyz, v1.xyz
add r4.xyz, r3.xyz, v2.xyz
mov r5.xyz, r4.xyz
mov r6, r5.xyz
mov r6.w, {1, 1, 1, 1}.x
mov oC0, r6
mov r7, r6
attribute highp vec4 inVertex;
attribute mediump vec2 inTexCoord;
varying mediump vec2 texCoords;
void main()
{
gl_Position = inVertex;
texCoords = inTexCoord;
}
#version 300 es
uniform sampler2D sTexture;
in mediump vec2 texCoords;
layout(location = 0) out lowp vec4 oFragColour;
void main()
{
highp vec3 vCol = texture(sTexture, texCoords).rgb;
oFragColour = vec4(vCol, 1.0);
}
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2013 # Visual Studio 2010
VisualStudioVersion = 12.0.21005.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3ColourGrading", "OGLES3ColourGrading.vcxproj", "{9DAFEE32-19F6-4410-AA09-2B564FB86F62}"
MinimumVisualStudioVersion = 10.0.40219.1 ProjectSection(ProjectDependencies) = postProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES2ColourGrading", "OGLES2ColourGrading.vcxproj", "{9DAFEE32-19F6-4410-AA09-2B564FB86F62}" {09ABE661-9BC0-4152-A820-1FB0522CAC01} = {09ABE661-9BC0-4152-A820-1FB0522CAC01}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3Tools", "..\..\..\..\..\..\Tools\OGLES3\Build\WindowsVC2010\OGLES3Tools.vcxproj", "{09ABE661-9BC0-4152-A820-1FB0522CAC01}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
...@@ -21,6 +24,14 @@ Global ...@@ -21,6 +24,14 @@ Global
{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|Win32.Build.0 = Release|Win32 {9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|Win32.Build.0 = Release|Win32
{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x64.ActiveCfg = Release|x64 {9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x64.ActiveCfg = Release|x64
{9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x64.Build.0 = Release|x64 {9DAFEE32-19F6-4410-AA09-2B564FB86F62}.Release|x64.Build.0 = Release|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|Win32.ActiveCfg = Debug|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|Win32.Build.0 = Debug|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x64.ActiveCfg = Debug|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x64.Build.0 = Debug|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|Win32.ActiveCfg = Release|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|Win32.Build.0 = Release|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x64.ActiveCfg = Release|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
......
...@@ -19,8 +19,8 @@ ...@@ -19,8 +19,8 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{9F14A82C-19FD-4A8A-B4FF-FF00FFF6F2DD}</ProjectGuid> <ProjectGuid>{2EA5725B-25DA-44E2-B71E-BD9F55F3C2E2}</ProjectGuid>
<RootNamespace>OGLES2ColourGrading</RootNamespace> <RootNamespace>OGLES3ColourGrading</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
...@@ -81,32 +81,32 @@ ...@@ -81,32 +81,32 @@
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BUILD_OGLES2;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>BUILD_OGLES3;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES2;</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES3;</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_32\Lib;..\..\..\..\..\..\Tools\OGLES2\Build\WindowsVC2010\$(IntDir)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_32\Lib;..\..\..\..\..\..\Tools\OGLES3\Build\WindowsVC2010\$(IntDir)</AdditionalLibraryDirectories>
<AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES2Tools.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES3Tools.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BUILD_OGLES2;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>BUILD_OGLES3;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES2;</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES3;</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
</ClCompile> </ClCompile>
<Link> <Link>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_64\Lib;..\..\..\..\..\..\Tools\OGLES2\Build\WindowsVC2010\$(IntDir);</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_64\Lib;..\..\..\..\..\..\Tools\OGLES3\Build\WindowsVC2010\$(IntDir);</AdditionalLibraryDirectories>
<AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES2Tools.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES3Tools.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
...@@ -115,8 +115,8 @@ ...@@ -115,8 +115,8 @@
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BUILD_OGLES2;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>BUILD_OGLES3;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES2;</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES3;</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
...@@ -125,8 +125,8 @@ ...@@ -125,8 +125,8 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_32\Lib;..\..\..\..\..\..\Tools\OGLES2\Build\WindowsVC2010\$(IntDir);</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_32\Lib;..\..\..\..\..\..\Tools\OGLES3\Build\WindowsVC2010\$(IntDir);</AdditionalLibraryDirectories>
<AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES2Tools.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES3Tools.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
...@@ -135,8 +135,8 @@ ...@@ -135,8 +135,8 @@
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>BUILD_OGLES2;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>BUILD_OGLES3;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES2;</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\..\..\..\..\Shell;..\..\..\..\..\..\Shell\API\KEGL;..\..\..\..\..\..\Shell\OS\Windows;..\..\..\..\..\..\Builds\Include;..\..\..\..\..\..\Tools\OGLES2;..\..\..\..\..\..\Tools\OGLES3;</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
...@@ -145,12 +145,12 @@ ...@@ -145,12 +145,12 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_64\Lib;..\..\..\..\..\..\Tools\OGLES2\Build\WindowsVC2010\$(IntDir);</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>..\..\..\..\..\..\Builds\Windows\x86_64\Lib;..\..\..\..\..\..\Tools\OGLES3\Build\WindowsVC2010\$(IntDir);</AdditionalLibraryDirectories>
<AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES2Tools.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libEGL.lib;libGLESv2.lib;OGLES3Tools.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\OGLES2ColourGrading.cpp" /> <ClCompile Include="..\..\OGLES3ColourGrading.cpp" />
<ClCompile Include="..\..\..\..\..\..\Shell\PVRShell.cpp" /> <ClCompile Include="..\..\..\..\..\..\Shell\PVRShell.cpp" />
<ClCompile Include="..\..\..\..\..\..\Shell\API\KEGL\PVRShellAPI.cpp" /> <ClCompile Include="..\..\..\..\..\..\Shell\API\KEGL\PVRShellAPI.cpp" />
<ClCompile Include="..\..\..\..\..\..\Shell\OS\Windows\PVRShellOS.cpp" /> <ClCompile Include="..\..\..\..\..\..\Shell\OS\Windows\PVRShellOS.cpp" />
...@@ -414,8 +414,8 @@ ...@@ -414,8 +414,8 @@
</CustomBuild> </CustomBuild>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\..\..\..\Tools\OGLES2\Build\WindowsVC2010\OGLES2Tools.vcxproj"> <ProjectReference Include="..\..\..\..\..\..\Tools\OGLES3\Build\WindowsVC2010\OGLES3Tools.vcxproj">
<Project>{09abe661-9bc0-4152-a820-1fb0522cac01}</Project> <Project>{9088fc9e-9843-4e0d-85d0-1b657afc480a}</Project>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</ResourceCompile> </ResourceCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\OGLES2ColourGrading.cpp"> <ClCompile Include="..\..\OGLES3ColourGrading.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\..\..\..\..\Shell\PVRShell.cpp"> <ClCompile Include="..\..\..\..\..\..\Shell\PVRShell.cpp">
......
...@@ -13,18 +13,21 @@ ...@@ -13,18 +13,21 @@
// File data // File data
static const char _BackgroundFragShader_fsh[] = static const char _BackgroundFragShader_fsh[] =
"#version 300 es\n"
"\n"
"uniform sampler2D sTexture;\n" "uniform sampler2D sTexture;\n"
"\n" "\n"
"varying mediump vec2 texCoords;\n" "in mediump vec2 texCoords;\n"
"layout(location = 0) out lowp vec4 oFragColour;\n"
"\n" "\n"
"void main()\n" "void main()\n"
"{\n" "{\n"
" highp vec3 vCol = texture2D(sTexture, texCoords).rgb;\n" " highp vec3 vCol = texture(sTexture, texCoords).rgb;\n"
" gl_FragColor = vec4(vCol, 1.0);\n" " oFragColour = vec4(vCol, 1.0);\n"
"}\n"; "}\n";
// Register BackgroundFragShader.fsh in memory file system at application startup time // Register BackgroundFragShader.fsh in memory file system at application startup time
static CPVRTMemoryFileSystem RegisterFile_BackgroundFragShader_fsh("BackgroundFragShader.fsh", _BackgroundFragShader_fsh, 172); static CPVRTMemoryFileSystem RegisterFile_BackgroundFragShader_fsh("BackgroundFragShader.fsh", _BackgroundFragShader_fsh, 235);
// ******** End: BackgroundFragShader.fsh ******** // ******** End: BackgroundFragShader.fsh ********
...@@ -13,20 +13,23 @@ ...@@ -13,20 +13,23 @@
// File data // File data
static const char _FragShader_fsh[] = static const char _FragShader_fsh[] =
"#version 300 es\n"
"\n"
"uniform sampler2D sTexture;\n" "uniform sampler2D sTexture;\n"
"uniform mediump sampler3D\t\tsColourLUT;\n" "uniform mediump sampler3D\t\tsColourLUT;\n"
"\n" "\n"
"varying mediump vec2 texCoords;\n" "in mediump vec2 texCoords;\n"
"layout(location = 0) out lowp vec4 oFragColour;\n"
"\n" "\n"
"void main()\n" "void main()\n"
"{\n" "{\n"
" highp vec3 vCol = texture2D(sTexture, texCoords).rgb;\n" " highp vec3 vCol = texture(sTexture, texCoords).rgb;\n"
"\tlowp vec3 vAlteredCol = texture3D(sColourLUT, vCol).rgb;\n" "\tlowp vec3 vAlteredCol = texture(sColourLUT, vCol.rgb).rgb;\n"
" gl_FragColor = vec4(vAlteredCol, 1.0);\n" " oFragColour = vec4(vAlteredCol, 1.0);\n"
"}\n"; "}\n";
// Register FragShader.fsh in memory file system at application startup time // Register FragShader.fsh in memory file system at application startup time
static CPVRTMemoryFileSystem RegisterFile_FragShader_fsh("FragShader.fsh", _FragShader_fsh, 282); static CPVRTMemoryFileSystem RegisterFile_FragShader_fsh("FragShader.fsh", _FragShader_fsh, 341);
// ******** End: FragShader.fsh ******** // ******** End: FragShader.fsh ********
...@@ -28,7 +28,7 @@ static const char _SceneFragShader_fsh[] = ...@@ -28,7 +28,7 @@ static const char _SceneFragShader_fsh[] =
"\n"; "\n";
// Register SceneFragShader.fsh in memory file system at application startup time // Register SceneFragShader.fsh in memory file system at application startup time
static CPVRTMemoryFileSystem RegisterFile_SceneFragShader_fsh("SceneFragShader.fsh", _SceneFragShader_fsh, 302); static CPVRTMemoryFileSystem RegisterFile_SceneFragShader_fsh("SceneFragShader.fsh", _SceneFragShader_fsh, 306);
// ******** End: SceneFragShader.fsh ******** // ******** End: SceneFragShader.fsh ********
...@@ -13,10 +13,15 @@ ...@@ -13,10 +13,15 @@
// File data // File data
static const char _VertShader_vsh[] = static const char _VertShader_vsh[] =
"attribute highp vec4 inVertex;\n" "#version 300 es\n"
"attribute mediump vec2 inTexCoord;\n"
"\n" "\n"
"varying mediump vec2 texCoords;\n" "#define VERTEX_ARRAY 0\n"
"#define TEXCOORD_ARRAY 1\n"
"\n"
"layout (location = VERTEX_ARRAY) in highp vec4 inVertex;\n"
"layout (location = TEXCOORD_ARRAY) in mediump vec2 inTexCoord;\n"
"\n"
"out mediump vec2 texCoords;\n"
"\t\t\n" "\t\t\n"
"void main() \n" "void main() \n"
"{ \n" "{ \n"
...@@ -25,7 +30,7 @@ static const char _VertShader_vsh[] = ...@@ -25,7 +30,7 @@ static const char _VertShader_vsh[] =
"} \n"; "} \n";
// Register VertShader.vsh in memory file system at application startup time // Register VertShader.vsh in memory file system at application startup time
static CPVRTMemoryFileSystem RegisterFile_VertShader_vsh("VertShader.vsh", _VertShader_vsh, 177); static CPVRTMemoryFileSystem RegisterFile_VertShader_vsh("VertShader.vsh", _VertShader_vsh, 301);
// ******** End: VertShader.vsh ******** // ******** End: VertShader.vsh ********
#version 300 es
uniform sampler2D sTexture; uniform sampler2D sTexture;
uniform mediump sampler3D sColourLUT; uniform mediump sampler3D sColourLUT;
varying mediump vec2 texCoords; in mediump vec2 texCoords;
layout(location = 0) out lowp vec4 oFragColour;
void main() void main()
{ {
highp vec3 vCol = texture2D(sTexture, texCoords).rgb; highp vec3 vCol = texture(sTexture, texCoords).rgb;
lowp vec3 vAlteredCol = texture3D(sColourLUT, vCol).rgb; lowp vec3 vAlteredCol = texture(sColourLUT, vCol.rgb).rgb;
gl_FragColor = vec4(vAlteredCol, 1.0); oFragColour = vec4(vAlteredCol, 1.0);
} }
#version 300 es
#define VERTEX_ARRAY 0
#define TEXCOORD_ARRAY 1
layout (location = VERTEX_ARRAY) in highp vec4 inVertex;
layout (location = TEXCOORD_ARRAY) in mediump vec2 inTexCoord;
out mediump vec2 texCoords;
void main()
{
gl_Position = inVertex;
texCoords = inTexCoord;
}
...@@ -68,37 +68,37 @@ $(CONTENTDIR)/SceneVertShader.cpp: $(CONTENTDIR) ./SceneVertShader.vsh ...@@ -68,37 +68,37 @@ $(CONTENTDIR)/SceneVertShader.cpp: $(CONTENTDIR) ./SceneVertShader.vsh
$(CONTENTDIR)/BackgroundFragShader.cpp: $(CONTENTDIR) ./BackgroundFragShader.fsh $(CONTENTDIR)/BackgroundFragShader.cpp: $(CONTENTDIR) ./BackgroundFragShader.fsh
$(FILEWRAP) -s -o $@ ./BackgroundFragShader.fsh $(FILEWRAP) -s -o $@ ./BackgroundFragShader.fsh
$(CONTENTDIR)/Mask.cpp: $(CONTENTDIR) $(CONTENTDIR)/Mask.cpp: $(CONTENTDIR) ./Mask.pod
$(FILEWRAP) -o $@ ./Mask.pod $(FILEWRAP) -o $@ ./Mask.pod
$(CONTENTDIR)/MaskTexture.cpp: $(CONTENTDIR) $(CONTENTDIR)/MaskTexture.cpp: $(CONTENTDIR) ./MaskTexture.pvr
$(FILEWRAP) -o $@ ./MaskTexture.pvr $(FILEWRAP) -o $@ ./MaskTexture.pvr
$(CONTENTDIR)/Background.cpp: $(CONTENTDIR) $(CONTENTDIR)/Background.cpp: $(CONTENTDIR) ./Background.pvr
$(FILEWRAP) -o $@ ./Background.pvr $(FILEWRAP) -o $@ ./Background.pvr
$(CONTENTDIR)/identity.cpp: $(CONTENTDIR) $(CONTENTDIR)/identity.cpp: $(CONTENTDIR) ./identity.pvr
$(FILEWRAP) -o $@ ./identity.pvr $(FILEWRAP) -o $@ ./identity.pvr
$(CONTENTDIR)/cooler.cpp: $(CONTENTDIR) $(CONTENTDIR)/cooler.cpp: $(CONTENTDIR) ./cooler.pvr
$(FILEWRAP) -o $@ ./cooler.pvr $(FILEWRAP) -o $@ ./cooler.pvr
$(CONTENTDIR)/warmer.cpp: $(CONTENTDIR) $(CONTENTDIR)/warmer.cpp: $(CONTENTDIR) ./warmer.pvr
$(FILEWRAP) -o $@ ./warmer.pvr $(FILEWRAP) -o $@ ./warmer.pvr
$(CONTENTDIR)/bw.cpp: $(CONTENTDIR) $(CONTENTDIR)/bw.cpp: $(CONTENTDIR) ./bw.pvr
$(FILEWRAP) -o $@ ./bw.pvr $(FILEWRAP) -o $@ ./bw.pvr
$(CONTENTDIR)/sepia.cpp: $(CONTENTDIR) $(CONTENTDIR)/sepia.cpp: $(CONTENTDIR) ./sepia.pvr
$(FILEWRAP) -o $@ ./sepia.pvr $(FILEWRAP) -o $@ ./sepia.pvr
$(CONTENTDIR)/inverted.cpp: $(CONTENTDIR) $(CONTENTDIR)/inverted.cpp: $(CONTENTDIR) ./inverted.pvr
$(FILEWRAP) -o $@ ./inverted.pvr $(FILEWRAP) -o $@ ./inverted.pvr
$(CONTENTDIR)/highcontrast.cpp: $(CONTENTDIR) $(CONTENTDIR)/highcontrast.cpp: $(CONTENTDIR) ./highcontrast.pvr
$(FILEWRAP) -o $@ ./highcontrast.pvr $(FILEWRAP) -o $@ ./highcontrast.pvr
$(CONTENTDIR)/bluewhitegradient.cpp: $(CONTENTDIR) $(CONTENTDIR)/bluewhitegradient.cpp: $(CONTENTDIR) ./bluewhitegradient.pvr
$(FILEWRAP) -o $@ ./bluewhitegradient.pvr $(FILEWRAP) -o $@ ./bluewhitegradient.pvr
############################################################################ ############################################################################
......
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLES3Tools", "OGLES3Tools.vcxproj", "{09ABE661-9BC0-4152-A820-1FB0522CAC01}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|Win32.ActiveCfg = Debug|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|Win32.Build.0 = Debug|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x64.ActiveCfg = Debug|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Debug|x64.Build.0 = Debug|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|Win32.ActiveCfg = Release|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|Win32.Build.0 = Release|Win32
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x64.ActiveCfg = Release|x64
{09ABE661-9BC0-4152-A820-1FB0522CAC01}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{2f974aff-a0c6-4c10-b98e-86f39b6db949}</UniqueIdentifier>
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{f02fbd4c-76ba-4991-8d59-d3d715f96754}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
</Filter>
<Filter Include="Shader Files">
<UniqueIdentifier>{22ea3143-7c3f-4b2f-a437-f17e46999700}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\OGLES2\PVRTBackground.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTDecompress.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTError.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTFixedPoint.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTMatrixF.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTMatrixX.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTMisc.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTModelPOD.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTPFXParser.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\OGLES2\PVRTPFXParserAPI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\OGLES2\PVRTPFXSemantics.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTPrint3D.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\OGLES2\PVRTPrint3DAPI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTQuaternionF.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTQuaternionX.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTResourceFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\OGLES2\PVRTShader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTShadowVol.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTString.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTStringHash.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTTexture.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\PVRTTextureAPI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\PVRTgles3Ext.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTTrans.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTTriStrip.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTUnicode.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTVector.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\..\PVRTVertex.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\OGLES3Tools.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTArray.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTBackground.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\OGLES2\PVRTBackgroundShaders.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTBoneBatch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\OGLES2\PVRTContext.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTDecompress.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTError.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTFixedPoint.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTGlobal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTHash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTMap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTMatrix.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTMemoryFileSystem.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTMisc.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTModelPOD.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTPFXParser.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\OGLES2\PVRTPFXParserAPI.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTPrint3D.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\OGLES2\PVRTPrint3DShaders.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTQuaternion.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTResourceFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\OGLES2\PVRTShader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTShadowVol.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTString.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTStringHash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTTexture.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\PVRTTextureAPI.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\PVRTgles3Ext.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTTrans.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTTriStrip.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTUnicode.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTVector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\PVRTVertex.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\..\OGLES2\PVRTPFXSemantics.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="..\..\BackgroundFragShader.fsh">
<Filter>Shader Files</Filter>
</None>
<None Include="..\..\BackgroundVertShader.vsh">
<Filter>Shader Files</Filter>
</None>
<None Include="..\..\Print3DFragShader.fsh">
<Filter>Shader Files</Filter>
</None>
<None Include="..\..\Print3DVertShader.vsh">
<Filter>Shader Files</Filter>
</None>
</ItemGroup>
</Project>
\ No newline at end of file
/*!****************************************************************************
@file OGLES3/OGLES31Tools.h
@ingroup API_OGLES3
@copyright Copyright (c) Imagination Technologies Limited.
@brief Header file of OGLES3Tools.lib.
******************************************************************************/
#ifndef _OGLES31TOOLS_H_
#define _OGLES31TOOLS_H_
#ifndef BUILD_OGLES31
#define BUILD_OGLES31
#endif
#include<OGLES3Tools.h>
#endif /* _OGLES31TOOLS_H_ */
/*****************************************************************************
End of file (OGLES31Tools.h)
*****************************************************************************/
/*!****************************************************************************
@file OGLES3/OGLES3Tools.h
@ingroup API_OGLES3
@copyright Copyright (c) Imagination Technologies Limited.
@brief Header file of OGLES3Tools.lib.
******************************************************************************/
#ifndef _OGLES3TOOLS_H_
#define _OGLES3TOOLS_H_
/*!
@addtogroup API_OGLES3
@brief Tools for the OpenGL ES 3.0 API.
*/
#ifndef BUILD_OGLES3
#define BUILD_OGLES3
#endif
#include "../OGLES2/PVRTContext.h"
#include "../PVRTGlobal.h"
#include "../PVRTArray.h"
#include "../PVRTHash.h"
#include "../PVRTVector.h"
#include "../PVRTString.h"
#include "../PVRTStringHash.h"
#include "../PVRTFixedPoint.h"
#include "../PVRTMatrix.h"
#include "../PVRTQuaternion.h"
#include "../PVRTTrans.h"
#include "../PVRTVertex.h"
#include "../PVRTMap.h"
#include "../PVRTMisc.h"
#include "../PVRTBackground.h"
#include "PVRTgles3Ext.h"
#include "../PVRTPrint3D.h"
#include "../PVRTBoneBatch.h"
#include "../PVRTModelPOD.h"
#include "../PVRTTexture.h"
#include "PVRTTextureAPI.h"
#include "../PVRTTriStrip.h"
#include "../OGLES2/PVRTShader.h"
#include "../PVRTPFXParser.h"
#include "../OGLES2/PVRTPFXParserAPI.h"
#include "../OGLES2/PVRTPFXSemantics.h"
#include "../PVRTShadowVol.h"
#include "../PVRTResourceFile.h"
#include "../PVRTError.h"
#endif /* _OGLES3TOOLS_H_ */
/*****************************************************************************
End of file (OGLES3Tools.h)
*****************************************************************************/
/*!****************************************************************************
@file OGLES3/PVRTTextureAPI.h
@ingroup API_OGLES3
@copyright Copyright (c) Imagination Technologies Limited.
@brief OGLES3 texture loading.
******************************************************************************/
#ifndef _PVRTTEXTUREAPI_H_
#define _PVRTTEXTUREAPI_H_
/*!
@addtogroup API_OGLES3
@{
*/
#include "../PVRTError.h"
/****************************************************************************
** Functions
****************************************************************************/
template <typename KeyType, typename DataType>
class CPVRTMap;
/*!***************************************************************************
@brief Allows textures to be stored in C header files and loaded in. Can load parts of a
mipmaped texture (ie skipping the highest detailed levels).
Sets the texture MIN/MAG filter to GL_LINEAR_MIPMAP_NEAREST/GL_LINEAR
if mipmaps are present, GL_LINEAR/GL_LINEAR otherwise.
@param[in] pointer Pointer to header-texture's structure
@param[in,out] texName the OpenGL ES texture name as returned by glBindTexture
@param[in,out] psTextureHeader Pointer to a PVRTextureHeaderV3 struct. Modified to
contain the header data of the returned texture Ignored if NULL.
@param[in] bAllowDecompress Allow decompression if PVRTC is not supported in hardware.
@param[in] nLoadFromLevel Which mipmap level to start loading from (0=all)
@param[in] texPtr If null, texture follows header, else texture is here.
@param[in,out] pMetaData If a valid map is supplied, this will return any and all
MetaDataBlocks stored in the texture, organised by DevFourCC
then identifier. Supplying NULL will ignore all MetaData.
@return PVR_SUCCESS on success
*****************************************************************************/
EPVRTError PVRTTextureLoadFromPointer( const void* pointer,
GLuint *const texName,
const void *psTextureHeader=NULL,
bool bAllowDecompress = true,
const unsigned int nLoadFromLevel=0,
const void * const texPtr=0,
CPVRTMap<unsigned int, CPVRTMap<unsigned int, struct MetaDataBlock> > *pMetaData=NULL);
/*!***************************************************************************
@brief Allows textures to be stored in binary PVR files and loaded in. Can load parts of a
mipmaped texture (ie skipping the highest detailed levels).
Sets the texture MIN/MAG filter to GL_LINEAR_MIPMAP_NEAREST/GL_LINEAR
if mipmaps are present, GL_LINEAR/GL_LINEAR otherwise.
@param[in] filename Filename of the .PVR file to load the texture from
@param[in,out] texName the OpenGL ES texture name as returned by glBindTexture
@param[in,out] psTextureHeader Pointer to a PVRTextureHeaderV3 struct. Modified to
contain the header data of the returned texture Ignored if NULL.
@param[in] bAllowDecompress Allow decompression if PVRTC is not supported in hardware.
@param[in] nLoadFromLevel Which mipmap level to start loading from (0=all)
@param[in,out] pMetaData If a valid map is supplied, this will return any and all
MetaDataBlocks stored in the texture, organised by DevFourCC
then identifier. Supplying NULL will ignore all MetaData.
@return PVR_SUCCESS on success
*****************************************************************************/
EPVRTError PVRTTextureLoadFromPVR( const char * const filename,
GLuint * const texName,
const void *psTextureHeader=NULL,
bool bAllowDecompress = true,
const unsigned int nLoadFromLevel=0,
CPVRTMap<unsigned int, CPVRTMap<unsigned int, struct MetaDataBlock> > *pMetaData=NULL);
/*! @} */
#endif /* _PVRTTEXTUREAPI_H_ */
/*****************************************************************************
End of file (PVRTTextureAPI.h)
*****************************************************************************/
/******************************************************************************
@File OGLES3/PVRTgles3Ext.cpp
@Title OGLES3/PVRTgles3Ext
@Version
@Copyright Copyright (c) Imagination Technologies Limited.
@Platform Independent
@Description OpenGL ES 3.0 extensions
******************************************************************************/
#include <string.h>
#include "PVRTContext.h"
#include "PVRTgles3Ext.h"
/****************************************************************************
** Local code
****************************************************************************/
/****************************************************************************
** Class: CPVRTgles3Ext
****************************************************************************/
/*!***************************************************************************
@Function LoadExtensions
@Description Initialises IMG extensions
*****************************************************************************/
void CPVRTgles3Ext::LoadExtensions()
{
glRenderbufferStorageMultisampleIMG = 0;
glFramebufferTexture2DMultisampleIMG = 0;
glRenderbufferStorageMultisampleEXT = 0;
glFramebufferTexture2DMultisampleEXT = 0;
// Supported extensions provide new entry points for OpenGL ES 3.0.
const GLubyte *pszGLExtensions;
/* Retrieve GL extension string */
pszGLExtensions = glGetString(GL_EXTENSIONS);
#if !defined(TARGET_OS_IPHONE)
/* GL_IMG_multisampled_render_to_texture */
if (strstr((char *)pszGLExtensions, "GL_IMG_multisampled_render_to_texture"))
{
glRenderbufferStorageMultisampleIMG = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) PVRGetProcAddress(glRenderbufferStorageMultisampleIMG);
glFramebufferTexture2DMultisampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) PVRGetProcAddress(glFramebufferTexture2DMultisampleIMG);
}
/* GL_EXT_multisampled_render_to_texture */
if (strstr((char *)pszGLExtensions, "GL_EXT_multisampled_render_to_texture"))
{
glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT) PVRGetProcAddress(glRenderbufferStorageMultisampleEXT);
glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT) PVRGetProcAddress(glFramebufferTexture2DMultisampleEXT);
}
#endif
}
/*!***********************************************************************
@Function IsGLExtensionSupported
@Input extension extension to query for
@Returns True if the extension is supported
@Description Queries for support of an extension
*************************************************************************/
bool CPVRTgles3Ext::IsGLExtensionSupported(const char * const extension)
{
// The recommended technique for querying OpenGL extensions;
// from http://opengl.org/resources/features/OGLextensions/
const GLubyte *extensions = NULL;
const GLubyte *start;
GLubyte *where, *terminator;
/* Extension names should not have spaces. */
where = (GLubyte *) strchr(extension, ' ');
if (where || *extension == '\0')
return 0;
extensions = glGetString(GL_EXTENSIONS);
/* It takes a bit of care to be fool-proof about parsing the
OpenGL extensions string. Don't be fooled by sub-strings, etc. */
start = extensions;
for (;;) {
where = (GLubyte *) strstr((const char *) start, extension);
if (!where)
break;
terminator = where + strlen(extension);
if (where == start || *(where - 1) == ' ')
if (*terminator == ' ' || *terminator == '\0')
return true;
start = terminator;
}
return false;
}
/*****************************************************************************
End of file (PVRTglesExt.cpp)
*****************************************************************************/
/*!****************************************************************************
@file OGLES3/PVRTgles3Ext.h
@ingroup API_OGLES3
@copyright Copyright (c) Imagination Technologies Limited.
@brief OpenGL ES 3.0 extensions
******************************************************************************/
#ifndef _PVRTgles3Ext_H_
#define _PVRTgles3Ext_H_
/*!
@addtogroup API_OGLES3
@{
*/
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE==1
#import <OpenGLES/ES3/gl.h>
#import <OpenGLES/ES3/glext.h>
// No binary shaders are allowed on the iphone and so this value is not defined
// Defining here allows for a more graceful fail of binary shader loading at runtime
// which can be recovered from instead of fail at compile time
#define GL_SGX_BINARY_IMG 0
#else
#ifdef BUILD_OGLES31
#include <GLES3/gl31.h>
#else
#include <GLES3/gl3.h>
#endif
#endif
#if !defined(EGL_NOT_PRESENT)
#define PVRGetProcAddress(x) eglGetProcAddress(#x)
#endif
/****************************************************************************
** Build options
****************************************************************************/
#define GL_PVRTGLESEXT_VERSION 3
/**************************************************************************
****************************** GL EXTENSIONS ******************************
**************************************************************************/
/*!**************************************************************************
@class CPVRTgles3Ext
@brief A class for initialising and managing OGLES3 extensions
****************************************************************************/
class CPVRTgles3Ext
{
public:
// typedef definition for pointers to functions returned by eglGetProcAddress
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT)(GLenum, GLenum, GLenum, GLuint,GLint, GLsizei);
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG)(GLenum, GLenum, GLenum, GLuint,GLint, GLsizei);
// GL_IMG_multisampled_render_to_texture
#if !defined(GL_IMG_multisampled_render_to_texture)
#define GL_RENDERBUFFER_SAMPLES_IMG 0x9133
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134
#define GL_MAX_SAMPLES_IMG 0x9135
#define GL_TEXTURE_SAMPLES_IMG 0x9136
#endif
// GL_EXT_multisampled_render_to_texture
#if !defined(GL_EXT_multisampled_render_to_texture)
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8D6C
#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
#define GL_MAX_SAMPLES_EXT 0x8D57
#endif
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXT glRenderbufferStorageMultisampleEXT;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG glRenderbufferStorageMultisampleIMG;
PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXT glFramebufferTexture2DMultisampleEXT;
PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG glFramebufferTexture2DMultisampleIMG;
/*!***********************************************************************
@brief Initialises IMG extensions
*************************************************************************/
void LoadExtensions();
/*!***********************************************************************
@brief Queries for support of an extension
@param[in] extension Extension to query for
@return True if the extension is supported
*************************************************************************/
static bool IsGLExtensionSupported(const char * const extension);
};
/*! @} */
#endif /* _PVRTgles3Ext_H_ */
/*****************************************************************************
End of file (PVRTgles3Ext.h)
*****************************************************************************/
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