--User changes

-Add new preset dimensions to the right click menu of the width and height fields in the editor.
-Change QSS stylesheets to properly handle tabs.
-Make tabs rectangular by default. For some reason, they had always been triangular.

--Bug fixes
 -Incremental rendering times in the editor were wrong.

--Code changes
 -Migrate to Qt6. There is probably more work to be done here.
-Migrate to VS2022.
-Migrate to Wix 4 installer.
-Change installer to install to program files for all users.
-Fix many VS2022 code analysis warnings.
-No longer use byte typedef, because std::byte is now a type. Revert all back to unsigned char.
-Upgrade OpenCL headers to version 3.0 and keep locally now rather than trying to look for system files.
-No longer link to Nvidia or AMD specific OpenCL libraries. Use the generic installer located at OCL_ROOT too.
-Add the ability to change OpenCL grid dimensions. This was attempted for investigating possible performance improvments, but made no difference.

This has not been verified on Linux or Mac yet.
This commit is contained in:
Person 2023-04-25 17:59:54 -06:00
parent 64d4470b12
commit 1dfbd4eff2
306 changed files with 514515 additions and 491207 deletions

View File

@ -1,24 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <Project Sdk="WixToolset.Sdk/4.0.0">
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.7</ProductVersion> <ProductVersion>3.7</ProductVersion>
<ProjectGuid>{c8096c47-e358-438c-a520-146d46b0637d}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Fractorium_22.21.4.2</OutputName> <OutputName>Fractorium_22.21.4.2</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutputPath> <OutputPath>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants> <DefineConstants>Debug</DefineConstants>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutputPath> <OutputPath>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DefineConstants>Debug</DefineConstants> <DefineConstants>Debug</DefineConstants>
@ -32,6 +22,7 @@
<WixVariables> <WixVariables>
</WixVariables> </WixVariables>
<DefineConstants>GpuType=AMD_NVIDIA</DefineConstants> <DefineConstants>GpuType=AMD_NVIDIA</DefineConstants>
<SuppressValidation>false</SuppressValidation>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseNvidia|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseNvidia|x86' ">
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
@ -54,21 +45,6 @@
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath> <IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Product.wxs" /> <PackageReference Include="WixToolset.UI.wixext" Version="4.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project> </Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define ProductVersion="22.21.4.2" ?> <?define ProductVersion="22.21.4.2" ?>
<?define ProductName="Fractorium $(var.ProductVersion) ($(var.GpuType))" ?> <?define ProductName="Fractorium $(var.ProductVersion) ($(var.GpuType))" ?>
<?define UpgradeCode="{4714cd15-bfba-44f6-8059-9e1466ebfa6e}"?> <?define UpgradeCode="{4714cd15-bfba-44f6-8059-9e1466ebfa6e}"?>
@ -15,28 +14,11 @@
--> -->
<?define ProductCode="{5EB322AE-7613-4D8B-AC60-2B53C4CC7941}"?> <?define ProductCode="{5EB322AE-7613-4D8B-AC60-2B53C4CC7941}"?>
<Product Id="$(var.ProductCode)" Name="$(var.ProductName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)"> <Package Name="$(var.ProductName)" Language="1033" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)" InstallerVersion="400" Scope="perMachine" ProductCode="$(var.ProductCode)">
<Package <SummaryInformation Keywords="Installer" Description="$(var.Manufacturer)" Manufacturer="$(var.Manufacturer)" />
Keywords="Installer"
Platform="x64"
Description="$(var.Manufacturer)"
Comments="$(var.Manufacturer)"
Manufacturer="$(var.Manufacturer)"
InstallScope="perUser"
InstallerVersion="400"
InstallPrivileges="limited"
Compressed="yes"
Languages="1033"
SummaryCodepage="1252"
/>
<Upgrade Id="$(var.UpgradeCode)"> <Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="0.0.0" <UpgradeVersion Minimum="0.0.0" IncludeMinimum="no" OnlyDetect="no" Maximum="$(var.ProductVersion)" IncludeMaximum="no" Property="PREVIOUSFOUND" />
IncludeMinimum="no"
OnlyDetect="no"
Maximum="$(var.ProductVersion)"
IncludeMaximum="no"
Property="PREVIOUSFOUND" />
</Upgrade> </Upgrade>
<InstallExecuteSequence> <InstallExecuteSequence>
@ -65,64 +47,44 @@
<Property Id="MSIFASTINSTALL" Value="1" /> <Property Id="MSIFASTINSTALL" Value="1" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" /> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
<UIRef Id="WixUI_InstallDir" /> <ui:WixUI Id="WixUI_InstallDir" />
<UIRef Id="WixUI_ErrorProgressText" /> <UIRef Id="WixUI_ErrorProgressText" />
</Product> </Package>
<Fragment> <Fragment>
<Directory Id="TARGETDIR" Name="SourceDir" >
<!-- Doing this requires admin access, so we don't do it.
<Directory Id="ProgramFiles64Folder" >
<Directory Id="INSTALLFOLDER" Name="Fractorium" >
<Directory Id="INSTALLFOLDERPLATFORMS" Name="platforms" />
</Directory>
</Directory>
-->
<!-- Doing this doesn't require admin access. <!--
It reports a ton of errors, but oddly enough, an MSI is still created with the errors. <StandardDirectory Id="AppDataFolder">
--> -->
<Directory Id="AppDataFolder" > <StandardDirectory Id="ProgramFiles64Folder" >
<Directory Id="INSTALLFOLDER" Name="Fractorium"> <Directory Id="INSTALLFOLDER" Name="Fractorium">
<Directory Id="INSTALLFOLDERBENCH" Name="Bench" /> <Directory Id="INSTALLFOLDERBENCH" Name="Bench" />
<Directory Id="INSTALLFOLDEREXAMPLES" Name="Examples" /> <Directory Id="INSTALLFOLDEREXAMPLES" Name="Examples" />
<Directory Id="INSTALLFOLDERPLATFORMS" Name="platforms" /> <Directory Id="INSTALLFOLDERPLATFORMS" Name="platforms" />
<Directory Id="INSTALLFOLDERIMAGEFORMATS" Name="imageformats" /> <Directory Id="INSTALLFOLDERIMAGEFORMATS" Name="imageformats" />
</Directory> </Directory>
</Directory> </StandardDirectory>
<!-- Shortcut folders--> <!-- Shortcut folders-->
<Directory Id="ProgramMenuFolder" Name="Programs"> <StandardDirectory Id="ProgramMenuFolder">
<Directory Id="ProgramMenuDirLevel1" Name="Fractorium" /> <Directory Id="ProgramMenuDirLevel1" Name="Fractorium" />
</Directory> </StandardDirectory>
<Directory Id="DesktopFolder" Name="Desktop" /> <StandardDirectory Id="DesktopFolder" />
</Directory>
</Fragment> </Fragment>
<Fragment> <Fragment>
<Component Id="FractoriumStartMenuShortcut" Directory="ProgramMenuDirLevel1" Guid="f1eaf3ba-9b61-48b6-8994-49ebc6b405aa">
<Shortcut Id="FractoriumStartMenuShortcut"
Directory="ProgramMenuDirLevel1" <Component Id="FractoriumStartMenuShortcut" Directory="ProgramMenuDirLevel1" Guid="f1eaf3ba-9b61-48b6-8994-49ebc6b405aa" Condition="1">
Name="Fractorium" <Shortcut Id="FractoriumStartMenuShortcut" Directory="ProgramMenuDirLevel1" Name="Fractorium" Target="[INSTALLFOLDER]\Fractorium.exe" WorkingDirectory="INSTALLFOLDER" Icon="AddRemoveProgramsIcon" />
Target="[INSTALLFOLDER]\Fractorium.exe"
WorkingDirectory="INSTALLFOLDER"
Icon="AddRemoveProgramsIcon"
/>
<Condition>1</Condition>
<RemoveFolder Id="FractoriumStartMenuShortcut" On="uninstall" /> <RemoveFolder Id="FractoriumStartMenuShortcut" On="uninstall" />
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' /> <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component> </Component>
<Component Id="FractoriumDesktopShortcut" Directory="DesktopFolder" Guid="b73ff21c-08ac-47ad-a510-b3ce90e43979"> <Component Id="FractoriumDesktopShortcut" Directory="DesktopFolder" Guid="b73ff21c-08ac-47ad-a510-b3ce90e43979" Condition="1">
<Shortcut Id="FractoriumDesktopShortcut" <Shortcut Id="FractoriumDesktopShortcut" Directory="DesktopFolder" Name="Fractorium" Target="[INSTALLFOLDER]\Fractorium.exe" WorkingDirectory="INSTALLFOLDER" Icon="AddRemoveProgramsIcon" />
Directory="DesktopFolder"
Name="Fractorium"
Target="[INSTALLFOLDER]\Fractorium.exe"
WorkingDirectory="INSTALLFOLDER"
Icon="AddRemoveProgramsIcon"
/>
<RemoveFolder Id="FractoriumDesktopShortcut" On="uninstall" /> <RemoveFolder Id="FractoriumDesktopShortcut" On="uninstall" />
<Condition>1</Condition>
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' /> <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component> </Component>
</Fragment> </Fragment>
@ -162,19 +124,19 @@
<File Id="libxml2.dll" Source="$(var.SolutionDir)..\..\..\Bin\$(var.Platform)\Release\libxml2.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" /> <File Id="libxml2.dll" Source="$(var.SolutionDir)..\..\..\Bin\$(var.Platform)\Release\libxml2.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component> </Component>
<Component Id="msvcp140.dll" Guid="8f1ffde7-c1bd-45fb-8bc8-26dde552eafd"> <Component Id="msvcp140.dll" Guid="8f1ffde7-c1bd-45fb-8bc8-26dde552eafd">
<File Id="msvcp140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\msvcp140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes"/> <File Id="msvcp140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\msvcp140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="vcruntime140.dll" Guid="50c9bc27-c547-4a03-9f6c-cd416f449dd8"> <Component Id="vcruntime140.dll" Guid="50c9bc27-c547-4a03-9f6c-cd416f449dd8">
<File Id="vcruntime140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\vcruntime140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes"/> <File Id="vcruntime140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\vcruntime140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="vcruntime140_1.dll" Guid="a02507f8-326b-45b2-b734-e5091921559f"> <Component Id="vcruntime140_1.dll" Guid="a02507f8-326b-45b2-b734-e5091921559f">
<File Id="vcruntime140_1.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\vcruntime140_1.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes"/> <File Id="vcruntime140_1.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\vcruntime140_1.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="vccorlib140.dll" Guid="affe33e7-1e64-4bb0-a062-2b56f77459b4"> <Component Id="vccorlib140.dll" Guid="affe33e7-1e64-4bb0-a062-2b56f77459b4">
<File Id="vccorlib140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\vccorlib140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes"/> <File Id="vccorlib140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\vccorlib140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="concrt140.dll" Guid="7fb716a1-1b4f-42fb-89c7-4d216ebd6e2e"> <Component Id="concrt140.dll" Guid="7fb716a1-1b4f-42fb-89c7-4d216ebd6e2e">
<File Id="concrt140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\concrt140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes"/> <File Id="concrt140.dll" Source="$(var.DevEnvDir)..\..\VC\Redist\MSVC\14.34.31931\x64\Microsoft.VC143.CRT\concrt140.dll" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="flam3palettes.xml" Guid="d3adb0bb-14ef-4923-99d9-a5784b7ef04e"> <Component Id="flam3palettes.xml" Guid="d3adb0bb-14ef-4923-99d9-a5784b7ef04e">
<File Id="flam3palettes.xml" Source="$(var.SolutionDir)..\..\..\Data\flam3-palettes.xml" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="flam3palettes.xml" Source="$(var.SolutionDir)..\..\..\Data\flam3-palettes.xml" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
@ -292,16 +254,24 @@
<File Id="VersionHistory.txt" Source="$(var.SolutionDir)..\..\..\Data\Version History.txt" KeyPath="yes" Checksum="yes" ReadOnly="yes" /> <File Id="VersionHistory.txt" Source="$(var.SolutionDir)..\..\..\Data\Version History.txt" KeyPath="yes" Checksum="yes" ReadOnly="yes" />
</Component> </Component>
<Component Id="Qt5Core.dll" Guid="0198dd4b-9bbb-4ea2-86e3-6ea0f4f6ac51"> <Component Id="Qt6Core.dll" Guid="0198dd4b-9bbb-4ea2-86e3-6ea0f4f6ac51">
<File Id="Qt5Core.dll" Source="$(env.QTDIR)\bin\Qt5Core.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes"/> <File Id="Qt6Core.dll" Source="$(env.QTDIR)\bin\Qt6Core.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component> </Component>
<Component Id="Qt5Gui.dll" Guid="7f93dcc2-55db-4920-83d7-e06c23f7719a"> <Component Id="Qt6Gui.dll" Guid="7f93dcc2-55db-4920-83d7-e06c23f7719a">
<File Id="Qt5Gui.dll" Source="$(env.QTDIR)\bin\Qt5Gui.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes"/> <File Id="Qt6Gui.dll" Source="$(env.QTDIR)\bin\Qt6Gui.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component> </Component>
<Component Id="Qt5Widgets.dll" Guid="006bb2f1-7a38-426f-ba2c-5196d1d6c24d"> <Component Id="Qt6Widgets.dll" Guid="006bb2f1-7a38-426f-ba2c-5196d1d6c24d">
<File Id="Qt5Widgets.dll" Source="$(env.QTDIR)\bin\Qt5Widgets.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes"/> <File Id="Qt6Widgets.dll" Source="$(env.QTDIR)\bin\Qt6Widgets.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component>
<Component Id="Qt6OpenGL.dll" Guid="4693556b-5392-4e84-94f8-7a97ef55da87">
<File Id="Qt6OpenGL.dll" Source="$(env.QTDIR)\bin\Qt6OpenGL.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component>
<Component Id="Qt6OpenGLWidgets.dll" Guid="1d8c4733-e0be-4a7b-bf3a-00e2b1b7a4a8">
<File Id="Qt6OpenGLWidgets.dll" Source="$(env.QTDIR)\bin\Qt6OpenGLWidgets.dll" KeyPath="yes" Checksum="yes" ProcessorArchitecture="x64" ReadOnly="yes" />
</Component> </Component>
</ComponentGroup> </ComponentGroup>
</Fragment> </Fragment>

View File

@ -46,11 +46,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -72,6 +74,7 @@
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -102,6 +105,7 @@
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>

View File

@ -46,11 +46,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -59,7 +61,7 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -69,12 +71,13 @@
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"
@ -91,7 +94,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -100,6 +103,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -107,7 +111,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"

View File

@ -46,11 +46,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -61,7 +63,7 @@
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember\;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libxml2\include;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember\;$(ProjectDir)..\..\..\Source\EmberCL\;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libxml2\include</AdditionalIncludeDirectories>
<StructMemberAlignment>Default</StructMemberAlignment> <StructMemberAlignment>Default</StructMemberAlignment>
<PrecompiledHeaderFile>EmberCLPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCLPch.h</PrecompiledHeaderFile>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
@ -70,12 +72,13 @@
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>libxml2.lib;opencl.lib;Opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libxml2.lib;opencl.lib;Opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -89,7 +92,7 @@
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember\;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libxml2\include;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember\;$(ProjectDir)..\..\..\Source\EmberCL\;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libxml2\include</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<PrecompiledHeaderFile>EmberCLPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCLPch.h</PrecompiledHeaderFile>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
@ -99,6 +102,7 @@
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@ -106,7 +110,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libxml2.lib;opencl.lib;Opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libxml2.lib;opencl.lib;Opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
@ -134,6 +138,24 @@
<ClCompile Include="..\..\..\Source\EmberCL\RendererClDevice.cpp" /> <ClCompile Include="..\..\..\Source\EmberCL\RendererClDevice.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_d3d10.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_d3d11.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_dx9_media_sharing.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_dx9_media_sharing_intel.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_egl.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_ext.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_ext_intel.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_gl.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_gl_ext.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_half.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_icd.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_layer.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_platform.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_va_api_media_sharing_intel.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_version.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\opencl.h" />
<ClInclude Include="..\..\..\Source\EmberCL\CL\opencl.hpp" />
<ClInclude Include="..\..\..\Source\EmberCL\EmberCLFunctions.h" /> <ClInclude Include="..\..\..\Source\EmberCL\EmberCLFunctions.h" />
<ClInclude Include="..\..\..\Source\EmberCL\EmberCLStructs.h" /> <ClInclude Include="..\..\..\Source\EmberCL\EmberCLStructs.h" />
<ClInclude Include="..\..\..\Source\EmberCL\DEOpenCLKernelCreator.h" /> <ClInclude Include="..\..\..\Source\EmberCL\DEOpenCLKernelCreator.h" />

View File

@ -16,6 +16,9 @@
<Filter Include="Kernel Creators"> <Filter Include="Kernel Creators">
<UniqueIdentifier>{d66f35ca-a4cd-470a-9c56-653b0665b598}</UniqueIdentifier> <UniqueIdentifier>{d66f35ca-a4cd-470a-9c56-653b0665b598}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="CL">
<UniqueIdentifier>{e37b04de-79bc-483b-9725-618dbe484452}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\..\Source\EmberCL\DllMain.cpp"> <ClCompile Include="..\..\..\Source\EmberCL\DllMain.cpp">
@ -80,6 +83,60 @@
<ClInclude Include="..\..\..\Source\EmberCL\FunctionMapper.h"> <ClInclude Include="..\..\..\Source\EmberCL\FunctionMapper.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_d3d10.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_d3d11.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_dx9_media_sharing.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_dx9_media_sharing_intel.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_egl.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_ext.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_ext_intel.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_gl.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_gl_ext.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_half.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_icd.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_layer.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_platform.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_va_api_media_sharing_intel.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\cl_version.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\opencl.h">
<Filter>CL</Filter>
</ClInclude>
<ClInclude Include="..\..\..\Source\EmberCL\CL\opencl.hpp">
<Filter>CL</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="EmberCL.rc"> <ResourceCompile Include="EmberCL.rc">

View File

@ -46,11 +46,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -59,7 +61,7 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -69,12 +71,13 @@
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"
@ -91,7 +94,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -100,6 +103,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -107,7 +111,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"

View File

@ -46,11 +46,13 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -59,7 +61,7 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -69,12 +71,13 @@
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"
@ -91,7 +94,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -101,6 +104,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -108,7 +112,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"

View File

@ -46,11 +46,15 @@
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<RunCodeAnalysis>false</RunCodeAnalysis>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir> <OutDir>$(SolutionDir)..\..\..\Bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir> <IntDir>$(SolutionDir)Obj\$(TargetName)\$(Platform)\$(Configuration)\</IntDir>
<RunCodeAnalysis>false</RunCodeAnalysis>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
@ -59,7 +63,7 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;OPENEXR_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;OPENEXR_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -69,12 +73,13 @@
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"
@ -91,7 +96,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;OPENEXR_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;OPENEXR_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR</AdditionalIncludeDirectories>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>EmberCommonPch.h</PrecompiledHeaderFile>
@ -100,6 +105,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -107,7 +113,7 @@ xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
<EnableCOMDATFolding>true</EnableCOMDATFolding> <EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;opencl.lib;Ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(OCL_ROOT)\lib\x86_64</AdditionalLibraryDirectories>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"

View File

@ -51,59 +51,66 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild> <PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
<RunCodeAnalysis>false</RunCodeAnalysis>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild> <PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
<RunCodeAnalysis>false</RunCodeAnalysis>
<EnableMicrosoftCodeAnalysis>false</EnableMicrosoftCodeAnalysis>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_MULTIMEDIA_LIB;QT_HELP_LIB;QT_OPENGL_LIB;QT_WIDGETS_LIB;QT_XML_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>UNICODE;WIN32;QT_CORE_LIB;QT_GUI_LIB;QT_MULTIMEDIA_LIB;QT_HELP_LIB;QT_OPENGL_LIB;QT_WIDGETS_LIB;QT_XML_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;.\PaletteEditor;$(QTDIR)\include;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName;$(QTDIR)\..\qtmultimedia\include\QtMultimedia;$(QTDIR)\..\qtmultimedia\include;$(QTDIR)\..\qttools\include;$(QTDIR)\..\qttools\include\QtHelp;$(QTDIR)\include\QtConcurrent;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtOpenGL;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtXml;.\GeneratedFiles;$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\Fractorium;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.;.\PaletteEditor;$(QTDIR)\include;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName;$(QTDIR)\..\qtmultimedia\include\QtMultimedia;$(QTDIR)\..\qtmultimedia\include;$(QTDIR)\..\qttools\include;$(QTDIR)\..\qttools\include\QtHelp;$(QTDIR)\include\QtConcurrent;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtOpenGL;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtXml;.\GeneratedFiles;$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\Fractorium;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>FractoriumPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>FractoriumPch.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile> <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
<ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName> <ProgramDataBaseFileName>$(TargetDir)$(TargetName).pdb</ProgramDataBaseFileName>
<DisableSpecificWarnings> <DisableSpecificWarnings>
</DisableSpecificWarnings> </DisableSpecificWarnings>
<AdditionalOptions>/bigobj -Zm150 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/bigobj -Zm150 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion> <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile> <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(QTDIR)\lib;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(QTDIR)\lib;$(OCL_ROOT)\lib\x86_64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5OpenGLd.lib;opengl32.lib;glu32.lib;opencl.lib;Qt5Widgetsd.lib;Qt5Xmld.lib;Ws2_32.lib;libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>Qt6Cored.lib;Qt6EntryPointd.lib;Qt6Guid.lib;Qt6OpenGLd.lib;Qt6OpenGLWidgetsd.lib;Qt6Widgetsd.lib;opengl32.lib;glu32.lib;opencl.lib;Ws2_32.lib;libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)" <Command>xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Deps\*.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.gradient" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.gradient" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.ugr" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.ugr" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\dark_windows.qss" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.qss" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt5Cored.dll" "$(OutDir)" xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6Cored.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt5Guid.dll" "$(OutDir)" xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6Guid.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt5Widgetsd.dll" "$(OutDir)" xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6OpenGLd.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6OpenGLWidgetsd.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6Widgetsd.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\plugins\platforms\qwindowsd.dll" "$(OutDir)\platforms\" xcopy /F /Y /R /D "$(QTDIR)\plugins\platforms\qwindowsd.dll" "$(OutDir)\platforms\"
xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpegd.dll" "$(OutDir)\imageformats\"</Command> xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpegd.dll" "$(OutDir)\imageformats\"</Command>
</PostBuildEvent> </PostBuildEvent>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<PreprocessorDefinitions>UNICODE;WIN32;QT_DLL;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_MULTIMEDIA_LIB;QT_HELP_LIB;QT_OPENGL_LIB;QT_WIDGETS_LIB;QT_XML_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>UNICODE;WIN32;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_GUI_LIB;QT_MULTIMEDIA_LIB;QT_HELP_LIB;QT_OPENGL_LIB;QT_WIDGETS_LIB;QT_XML_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>.;.\PaletteEditor;$(QTDIR)\include;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName;$(QTDIR)\..\qtmultimedia\include\QtMultimedia;$(QTDIR)\..\qtmultimedia\include;$(QTDIR)\..\qttools\include;$(QTDIR)\..\qttools\include\QtHelp;$(QTDIR)\include\QtConcurrent;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtOpenGL;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtXml;.\GeneratedFiles;$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\Fractorium;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;$(AMDAPPSDKROOT)\include;$(CUDA_PATH)\include;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>.;.\PaletteEditor;$(QTDIR)\include;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles;$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName;$(QTDIR)\..\qtmultimedia\include\QtMultimedia;$(QTDIR)\..\qtmultimedia\include;$(QTDIR)\..\qttools\include;$(QTDIR)\..\qttools\include\QtHelp;$(QTDIR)\include\QtConcurrent;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtOpenGL;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtXml;.\GeneratedFiles;$(ProjectDir)..\..\..\Source\Ember;$(ProjectDir)..\..\..\Source\EmberCL;$(ProjectDir)..\..\..\Source\EmberCommon;$(ProjectDir)..\..\..\Source\Fractorium;$(ProjectDir)..\..\..\..\glm;$(ProjectDir)..\..\..\..\libjpeg;$(ProjectDir)..\..\..\..\libpng;$(ProjectDir)..\..\..\..\libxml2\include;$(ProjectDir)..\..\..\..\openexr\output\include\Imath;$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR;.\GeneratedFiles\$(ConfigurationName);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>Use</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>FractoriumPch.h</PrecompiledHeaderFile> <PrecompiledHeaderFile>FractoriumPch.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile> <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
@ -113,17 +120,18 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpegd.dll" "$(OutDir)\imagefor
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<StringPooling>true</StringPooling> <StringPooling>true</StringPooling>
<FloatingPointExceptions>false</FloatingPointExceptions> <FloatingPointExceptions>false</FloatingPointExceptions>
<AdditionalOptions>/bigobj -Zm150 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/bigobj -Zm150 /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<RuntimeTypeInfo>true</RuntimeTypeInfo> <RuntimeTypeInfo>true</RuntimeTypeInfo>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile> <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
<AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(QTDIR)\lib;$(AMDAPPSDKROOT)\lib\x86_64;$(CUDA_PATH)\lib\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ProjectDir)..\..\..\Deps;$(QTDIR)\lib;$(OCL_ROOT)\lib\x86_64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<AdditionalDependencies>qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5OpenGL.lib;opengl32.lib;glu32.lib;opencl.lib;Qt5Widgets.lib;Ws2_32.lib;libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>Qt6Core.lib;Qt6EntryPoint.lib;Qt6Gui.lib;Qt6OpenGL.lib;Qt6OpenGLWidgets.lib;Qt6Widgets.lib;opengl32.lib;glu32.lib;opencl.lib;Ws2_32.lib;libjpeg.lib;libpng.lib;libxml2.lib;zlib.lib;Iex-3_1.lib;Imath-3_1.lib;OpenEXR-3_1.lib;%(AdditionalDependencies)</AdditionalDependencies>
<Version>0.1</Version> <Version>0.1</Version>
</Link> </Link>
<PostBuildEvent> <PostBuildEvent>
@ -131,10 +139,12 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpegd.dll" "$(OutDir)\imagefor
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\flam3-palettes.xml" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.gradient" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.gradient" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.ugr" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.ugr" "$(OutDir)"
xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\dark_windows.qss" "$(OutDir)" xcopy /F /Y /R /D "$(SolutionDir)..\..\..\Data\*.qss" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt5Core.dll" "$(OutDir)" xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6Core.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt5Gui.dll" "$(OutDir)" xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6Gui.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt5Widgets.dll" "$(OutDir)" xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6OpenGL.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6OpenGLWidgets.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\bin\Qt6Widgets.dll" "$(OutDir)"
xcopy /F /Y /R /D "$(QTDIR)\plugins\platforms\qwindows.dll" "$(OutDir)\platforms\" xcopy /F /Y /R /D "$(QTDIR)\plugins\platforms\qwindows.dll" "$(OutDir)\platforms\"
xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageformats\"</Command> xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageformats\"</Command>
</PostBuildEvent> </PostBuildEvent>
@ -337,30 +347,30 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\VariationsDialog.h"> <CustomBuild Include="..\..\..\Source\Fractorium\VariationsDialog.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing VariationsDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing VariationsDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing VariationsDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing VariationsDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/VariationsDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\QssDialog.h"> <CustomBuild Include="..\..\..\Source\Fractorium\QssDialog.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing QssDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing QssDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/QssDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing QssDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing QssDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/QssDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\csshighlighter.h"> <CustomBuild Include="..\..\..\Source\Fractorium\csshighlighter.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing csshighlighter.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing csshighlighter.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/csshighlighter.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing csshighlighter.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing csshighlighter.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/csshighlighter.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -368,72 +378,72 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing LibraryTreeWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing LibraryTreeWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/LibraryTreeWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing LibraryTreeWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing LibraryTreeWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/LibraryTreeWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\ColorPanel.h"> <CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\ColorPanel.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing ColorPanel.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing ColorPanel.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/ColorPanel.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing ColorPanel.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing ColorPanel.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/ColorPanel.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\ColorPickerWidget.h"> <CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\ColorPickerWidget.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing ColorPickerWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing ColorPickerWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/ColorPickerWidget.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing ColorPickerWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing ColorPickerWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/ColorPickerWidget.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\ColorTriangle.h"> <CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\ColorTriangle.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing ColorTriangle.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing ColorTriangle.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/ColorTriangle.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing ColorTriangle.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing ColorTriangle.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/ColorTriangle.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
</CustomBuild> </CustomBuild>
<ClInclude Include="..\..\..\Source\Fractorium\PaletteEditor\GradientArrow.h" /> <ClInclude Include="..\..\..\Source\Fractorium\PaletteEditor\GradientArrow.h" />
<CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\GradientColorsView.h"> <CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\GradientColorsView.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing GradientColorsView.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing GradientColorsView.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/GradientColorsView.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing GradientColorsView.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing GradientColorsView.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/GradientColorsView.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\PaletteEditor.h"> <CustomBuild Include="..\..\..\Source\Fractorium\PaletteEditor\PaletteEditor.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing PaletteEditor.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing PaletteEditor.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/PaletteEditor.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing PaletteEditor.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing PaletteEditor.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/PaletteEditor.h" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\."</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/PaletteEditor/%(Filename)%(Extension)"</Command>
</CustomBuild> </CustomBuild>
<ClInclude Include="..\..\..\Source\Fractorium\qcssparser.h" /> <ClInclude Include="..\..\..\Source\Fractorium\qcssparser.h" />
<ClInclude Include="..\..\..\Source\Fractorium\qfunctions.h" /> <ClInclude Include="..\..\..\Source\Fractorium\qfunctions.h" />
<CustomBuild Include="..\..\..\Source\Fractorium\QssTextEdit.h"> <CustomBuild Include="..\..\..\Source\Fractorium\QssTextEdit.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing QssTextEdit.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing QssTextEdit.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/QssTextEdit.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing QssTextEdit.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing QssTextEdit.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/QssTextEdit.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -443,30 +453,30 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\OptionsDialog.h"> <CustomBuild Include="..\..\..\Source\Fractorium\OptionsDialog.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing OptionsDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing OptionsDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/OptionsDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing OptionsDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing OptionsDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/OptionsDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\AboutDialog.h"> <CustomBuild Include="..\..\..\Source\Fractorium\AboutDialog.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing AboutDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing AboutDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/AboutDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing AboutDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing AboutDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/AboutDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\FinalRenderDialog.h"> <CustomBuild Include="..\..\..\Source\Fractorium\FinalRenderDialog.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing FinalRenderDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing FinalRenderDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/FinalRenderDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing FinalRenderDialog.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing FinalRenderDialog.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/FinalRenderDialog.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -489,20 +499,20 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\FractoriumSettings.h"> <CustomBuild Include="..\..\..\Source\Fractorium\FractoriumSettings.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing FractoriumSettings.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing FractoriumSettings.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/FractoriumSettings.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing FractoriumSettings.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing FractoriumSettings.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/FractoriumSettings.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\TwoButtonComboWidget.h"> <CustomBuild Include="..\..\..\Source\Fractorium\TwoButtonComboWidget.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing TwoButtonComboWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing TwoButtonComboWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/TwoButtonComboWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing TwoButtonComboWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing TwoButtonComboWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/TwoButtonComboWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -510,20 +520,20 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\CurvesGraphicsView.h"> <CustomBuild Include="..\..\..\Source\Fractorium\CurvesGraphicsView.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing CurvesGraphicsView.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing CurvesGraphicsView.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/CurvesGraphicsView.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing CurvesGraphicsView.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing CurvesGraphicsView.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/CurvesGraphicsView.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\DoubleSpinBoxTableItemDelegate.h"> <CustomBuild Include="..\..\..\Source\Fractorium\DoubleSpinBoxTableItemDelegate.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing DoubleSpinBoxTableItemDelegate.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing DoubleSpinBoxTableItemDelegate.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/DoubleSpinBoxTableItemDelegate.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing DoubleSpinBoxTableItemDelegate.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing DoubleSpinBoxTableItemDelegate.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/DoubleSpinBoxTableItemDelegate.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -539,10 +549,10 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\GLWidget.h"> <CustomBuild Include="..\..\..\Source\Fractorium\GLWidget.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing GLWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing GLWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/GLWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing GLWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing GLWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/GLWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -550,30 +560,30 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\DoubleSpinBox.h"> <CustomBuild Include="..\..\..\Source\Fractorium\DoubleSpinBox.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing DoubleSpinBox.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing DoubleSpinBox.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/DoubleSpinBox.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing DoubleSpinBox.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing DoubleSpinBox.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/DoubleSpinBox.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\SpinBox.h"> <CustomBuild Include="..\..\..\Source\Fractorium\SpinBox.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing SpinBox.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing SpinBox.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/SpinBox.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing SpinBox.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing SpinBox.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/SpinBox.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\..\Source\Fractorium\StealthComboBox.h"> <CustomBuild Include="..\..\..\Source\Fractorium\StealthComboBox.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing StealthComboBox.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing StealthComboBox.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/StealthComboBox.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing StealthComboBox.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing StealthComboBox.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/StealthComboBox.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -597,10 +607,10 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\TableWidget.h"> <CustomBuild Include="..\..\..\Source\Fractorium\TableWidget.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing TableWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing TableWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/TableWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing TableWidget.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing TableWidget.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/TableWidget.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -608,10 +618,10 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
<CustomBuild Include="..\..\..\Source\Fractorium\Fractorium.h"> <CustomBuild Include="..\..\..\Source\Fractorium\Fractorium.h">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing Fractorium.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing Fractorium.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/Fractorium.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing Fractorium.h...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing Fractorium.h...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_MBCS "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\tbb\include" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(AMDAPPSDKROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/Fractorium.h"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DWIN32 -DQT_DLL -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_HELP_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D%(PreprocessorDefinitions) "-I." "-I.\PaletteEditor" "-I$(QTDIR)\include" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles" "-I$(ProjectDir)..\..\..\Fractorium\GeneratedFiles\ConfigurationName" "-I$(QTDIR)\..\qtmultimedia\include\QtMultimedia" "-I$(QTDIR)\..\qtmultimedia\include" "-I$(QTDIR)\..\qttools\include" "-I$(QTDIR)\..\qttools\include\QtHelp" "-I$(QTDIR)\include\QtConcurrent" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtOpenGL" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtXml" "-I.\GeneratedFiles" "-I$(ProjectDir)..\..\..\Source\Ember" "-I$(ProjectDir)..\..\..\Source\EmberCL" "-I$(ProjectDir)..\..\..\Source\EmberCommon" "-I$(ProjectDir)..\..\..\Source\Fractorium" "-I$(ProjectDir)..\..\..\..\glm" "-I$(ProjectDir)..\..\..\..\libjpeg" "-I$(ProjectDir)..\..\..\..\libpng" "-I$(ProjectDir)..\..\..\..\libxml2\include" "-I$(ProjectDir)..\..\..\..\openexr\output\include\Imath" "-I$(ProjectDir)..\..\..\..\openexr\output\include\OpenEXR" "-I$(OCL_ROOT)\include" "-I$(CUDA_PATH)\include" "-I.\GeneratedFiles\$(ConfigurationName)" "-fFractoriumPch.h" "-f../../../../../Source/Fractorium/%(Filename)%(Extension)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
</CustomBuild> </CustomBuild>
@ -734,7 +744,7 @@ xcopy /F /Y /R /D "$(QTDIR)\plugins\imageformats\qjpeg.dll" "$(OutDir)\imageform
</ImportGroup> </ImportGroup>
<ProjectExtensions> <ProjectExtensions>
<VisualStudio> <VisualStudio>
<UserProperties MocDir=".\GeneratedFiles\$(ConfigurationName)" UicDir=".\GeneratedFiles" RccDir=".\GeneratedFiles" lupdateOptions="" lupdateOnBuild="0" lreleaseOptions="" Qt5Version_x0020_x64="Qt5" MocOptions="" /> <UserProperties lreleaseOptions="" lupdateOnBuild="0" lupdateOptions="" MocDir=".\GeneratedFiles\$(ConfigurationName)" MocOptions="" Qt5Version_x0020_x64="$(DefaultQtVersion)" RccDir=".\GeneratedFiles" UicDir=".\GeneratedFiles" />
</VisualStudio> </VisualStudio>
</ProjectExtensions> </ProjectExtensions>
</Project> </Project>

View File

@ -61,4 +61,3 @@ HEADERS += \
$$PRJ_SRC_DIR/OpenCLWrapper.h \ $$PRJ_SRC_DIR/OpenCLWrapper.h \
$$PRJ_SRC_DIR/RendererClDevice.h \ $$PRJ_SRC_DIR/RendererClDevice.h \
$$PRJ_SRC_DIR/RendererCL.h $$PRJ_SRC_DIR/RendererCL.h

View File

@ -1,5 +1,5 @@
TEMPLATE = app TEMPLATE = app
QT += core gui widgets opengl concurrent QT += core gui widgets opengl openglwidgets concurrent
TARGET = fractorium TARGET = fractorium
@ -22,7 +22,8 @@ PRJ_SRC_DIR = $$absolute_path($$EMBER_ROOT/../Source/Fractorium)
win32 { win32 {
CONFIG(release, debug|release) { CONFIG(release, debug|release) {
qtfiles.path = $$BIN_INSTALL_DIR qtfiles.path = $$BIN_INSTALL_DIR
qtfiles.files = $$(QTDIR)\bin\Qt5Core.dll $$(QTDIR)\bin\Qt5Gui.dll $$(QTDIR)\bin\Qt5Widgets.dll
qtfiles.files = $$(QTDIR)\bin\Qt6Core.dll $$(QTDIR)\bin\Qt6Gui.dll $$(QTDIR)\bin\Qt6OpenGL.dll $$(QTDIR)\bin\Qt6OpenGLWidgets.dll $$(QTDIR)\bin\Qt6Widgets.dll
INSTALLS += qtfiles INSTALLS += qtfiles
qtplatforms.path = $$BIN_INSTALL_DIR\platforms qtplatforms.path = $$BIN_INSTALL_DIR\platforms
@ -36,7 +37,7 @@ CONFIG(release, debug|release) {
CONFIG(debug, debug|release) { CONFIG(debug, debug|release) {
qtfiles.path = $$BIN_INSTALL_DIR qtfiles.path = $$BIN_INSTALL_DIR
qtfiles.files = $$(QTDIR)\bin\Qt5Cored.dll $$(QTDIR)\bin\Qt5Guid.dll $$(QTDIR)\bin\Qt5Widgetsd.dll qtfiles.files = $$(QTDIR)\bin\Qt6Cored.dll $$(QTDIR)\bin\Qt6Guid.dll $$(QTDIR)\bin\Qt6OpenGLd.dll $$(QTDIR)\bin\Qt6OpenGLWidgetsd.dll $$(QTDIR)\bin\Qt6Widgetsd.dll
INSTALLS += qtfiles INSTALLS += qtfiles
qtplatforms.path = $$BIN_INSTALL_DIR\platforms qtplatforms.path = $$BIN_INSTALL_DIR\platforms
@ -52,6 +53,7 @@ CONFIG(debug, debug|release) {
#For some reason, a Qt project needs to be told to look at itself. #For some reason, a Qt project needs to be told to look at itself.
INCLUDEPATH += $$PRJ_SRC_DIR INCLUDEPATH += $$PRJ_SRC_DIR
INCLUDEPATH += $$PRJ_SRC_DIR/PaletteEditor INCLUDEPATH += $$PRJ_SRC_DIR/PaletteEditor
INCLUDEPATH += $$(QTDIR)\include\QtWidget
# Uncomment this if you only want to build a binary instead of an app bundle. # Uncomment this if you only want to build a binary instead of an app bundle.
#macx:CONFIG -= app_bundle #macx:CONFIG -= app_bundle

View File

@ -1,6 +1,6 @@
VERSION = 22.21.4.2 VERSION = 22.21.4.2
win32:CONFIG += skip_target_version_ext win32:CONFIG += skip_target_version_ext
CONFIG += c++14 CONFIG += c++20
#message(PWD: $$absolute_path($$PWD)) #message(PWD: $$absolute_path($$PWD))
@ -14,8 +14,6 @@ autobuild {
} }
#2) Declare where dependency folders are. #2) Declare where dependency folders are.
# Point to local copy of OpenCL includes to ensure we have the right ones.
LOCAL_INCLUDE_DIR = $$absolute_path($$EMBER_ROOT/Builds/include/vendor)
# Parent folders for third party dependencies and their compiled outputs. # Parent folders for third party dependencies and their compiled outputs.
win32: { win32: {
EXTERNAL_DIR = $$absolute_path($$EMBER_ROOT/..) EXTERNAL_DIR = $$absolute_path($$EMBER_ROOT/..)
@ -27,7 +25,7 @@ SRC_DIR = $$EMBER_ROOT/Source
SRC_COMMON_DIR = $$absolute_path($$EMBER_ROOT/Source/EmberCommon) SRC_COMMON_DIR = $$absolute_path($$EMBER_ROOT/Source/EmberCommon)
ASSETS_DIR = $$absolute_path($$EMBER_ROOT/Data) ASSETS_DIR = $$absolute_path($$EMBER_ROOT/Data)
QTCREATOR_DIR = $$absolute_path($$EMBER_ROOT/Builds/QtCreator) QTCREATOR_DIR = $$absolute_path($$EMBER_ROOT/Builds/QtCreator)
win32:RCPATH=$$absolute_path($$QTCREATOR_DIR/../MSVC/VS2019) win32:RCPATH=$$absolute_path($$QTCREATOR_DIR/../MSVC/Solution)
#4) Add up all include paths. #4) Add up all include paths.
INCLUDEPATH += $$LOCAL_INCLUDE_DIR INCLUDEPATH += $$LOCAL_INCLUDE_DIR
@ -81,14 +79,7 @@ win32 {
LIBS = "" LIBS = ""
LIBS += OpenGL32.lib LIBS += OpenGL32.lib
LIBS += WS2_32.lib LIBS += WS2_32.lib
_AMDAPPSDK = $$(AMDAPPSDKROOT) LIBS += $$(OCL_ROOT)/lib/x86_64/OpenCL.lib
isEmpty(_AMDAPPSDK) {
LIBS += $$(CUDA_PATH)/lib/x64/OpenCL.lib
}
else {
LIBS += $$(AMDAPPSDKROOT)/lib/x86_64/OpenCL.lib
}
LIBS += $$absolute_path($$EXTERNAL_LIB)/libjpeg.lib LIBS += $$absolute_path($$EXTERNAL_LIB)/libjpeg.lib
LIBS += $$absolute_path($$EXTERNAL_LIB)/libpng.lib LIBS += $$absolute_path($$EXTERNAL_LIB)/libpng.lib
LIBS += $$absolute_path($$EXTERNAL_LIB)/libxml2.lib LIBS += $$absolute_path($$EXTERNAL_LIB)/libxml2.lib
@ -144,6 +135,10 @@ QMAKE_CXXFLAGS_RELEASE += -DNDEBUG
QMAKE_CXXFLAGS += -D_M_X64 QMAKE_CXXFLAGS += -D_M_X64
QMAKE_CXXFLAGS += -D_CONSOLE QMAKE_CXXFLAGS += -D_CONSOLE
QMAKE_CXXFLAGS += -D_USRDLL QMAKE_CXXFLAGS += -D_USRDLL
QMAKE_CXXFLAGS -= -D_UNICODE
QMAKE_CXXFLAGS -= -DUNICODE
DEFINES -= _UNICODE
DEFINES -= UNICODE
win32 { win32 {
QMAKE_CXXFLAGS += -bigobj #Allow for very large object files. QMAKE_CXXFLAGS += -bigobj #Allow for very large object files.
@ -189,12 +184,11 @@ win32 {
QMAKE_CXXFLAGS += -march=k8 QMAKE_CXXFLAGS += -march=k8
} }
CMAKE_CXXFLAGS += -DCL_USE_DEPRECATED_OPENCL_1_1_APIS # Not sure if this is needed. We remove it if all systems we build on support 1.2.
QMAKE_CXXFLAGS_RELEASE += -fomit-frame-pointer QMAKE_CXXFLAGS_RELEASE += -fomit-frame-pointer
QMAKE_CXXFLAGS += -fPIC QMAKE_CXXFLAGS += -fPIC
QMAKE_CXXFLAGS += -fpermissive QMAKE_CXXFLAGS += -fpermissive
QMAKE_CXXFLAGS += -pedantic QMAKE_CXXFLAGS += -pedantic
QMAKE_CXXFLAGS += -std=c++14 QMAKE_CXXFLAGS += -std=c++20
QMAKE_CXXFLAGS += -Wnon-virtual-dtor QMAKE_CXXFLAGS += -Wnon-virtual-dtor
QMAKE_CXXFLAGS += -Wshadow QMAKE_CXXFLAGS += -Wshadow
QMAKE_CXXFLAGS += -Winit-self QMAKE_CXXFLAGS += -Winit-self

View File

@ -1,4 +1,4 @@
<flame version="EMBER-WIN-1.0.0.7" time="0" name="tyrantwave_normal_flippeddisc" size="1920 1280" center="0 0" scale="625" rotate="0" supersample="1" filter="0.5" filter_shape="gaussian" temporal_filter_type="box" temporal_filter_width="1" quality="1000" temporal_samples="100" sub_batch_size="10240" fuse="15" background="0 0 0" brightness="30" gamma="3" highlight_power="1" vibrancy="1" estimator_radius="0" estimator_minimum="0" estimator_curve="0.4" gamma_threshold="0.01" cam_zpos="0" cam_persp="0" cam_yaw="0" cam_pitch="0" cam_dof="0" palette_mode="linear" interpolation="linear" interpolation_type="log" plugins="disc linear spherical radial_blur" new_linear="1" curves="0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 "> <flame version="EMBER-WIN-1.0.0.7" time="0" name="tyrantwave_flippeddisc_normal" size="1920 1280" center="0 0" scale="625" rotate="0" supersample="1" filter="0.5" filter_shape="gaussian" temporal_filter_type="box" temporal_filter_width="1" quality="1000" temporal_samples="100" sub_batch_size="10240" fuse="15" background="0 0 0" brightness="30" gamma="3" highlight_power="1" vibrancy="1" estimator_radius="0" estimator_minimum="0" estimator_curve="0.4" gamma_threshold="0.01" cam_zpos="0" cam_persp="0" cam_yaw="0" cam_pitch="0" cam_dof="0" palette_mode="linear" interpolation="linear" interpolation_type="log" plugins="disc linear spherical radial_blur" new_linear="1" curves="0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 ">
<xform weight="1" color="0" var_color="1" color_speed="0.05" symmetry="0.9" name="" animate="0" disc="1" coefs="0.4 0 0 0.4 0 0" opacity="1"/> <xform weight="1" color="0" var_color="1" color_speed="0.05" symmetry="0.9" name="" animate="0" disc="1" coefs="0.4 0 0 0.4 0 0" opacity="1"/>
<xform weight="1" color="0" var_color="1" color_speed="0.05" symmetry="0.9" name="" animate="0" disc="1" coefs="0.4 0 0 0.4 0 0" post="-1 0 0 1 0 0" opacity="1"/> <xform weight="1" color="0" var_color="1" color_speed="0.05" symmetry="0.9" name="" animate="0" disc="1" coefs="0.4 0 0 0.4 0 0" post="-1 0 0 1 0 0" opacity="1"/>
<xform weight="0.5" color="1" var_color="1" color_speed="1" symmetry="-1" name="" animate="1" linear="0.5" spherical="0.5" radial_blur="1" radial_blur_angle="1" coefs="1 0 0 1 1 0" opacity="1"/> <xform weight="0.5" color="1" var_color="1" color_speed="1" symmetry="-1" name="" animate="1" linear="0.5" spherical="0.5" radial_blur="1" radial_blur_angle="1" coefs="1 0 0 1 1 0" opacity="1"/>

View File

@ -1,8 +1,15 @@
/*---Base Style--- /*---Base Style---
This is needed to deal with the large tabs in the fusion theme which is the default on Linux, and optional on Windows. This may be needed to deal with the large tabs.
It's not needed for other themes.
You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/ You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/
/*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/
/*
*
{
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
*/
/*This is needed to give the labels on the status bar some padding.*/ /*This is needed to give the labels on the status bar some padding.*/
QStatusBar QLabel { padding-left: 2px; padding-right: 2px; } QStatusBar QLabel { padding-left: 2px; padding-right: 2px; }
@ -101,7 +108,6 @@ QDoubleSpinBox
padding-right: 0px; padding-right: 0px;
color: darkgray; color: darkgray;
selection-background-color: darkgray; selection-background-color: darkgray;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QCheckBox QCheckBox
@ -322,7 +328,6 @@ QTreeView
{ {
border: 1px solid gray; border: 1px solid gray;
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
/*Setting this gives a more consistent look. Also, by omitting color and background color, it allows us to set it above with VariationTreeColorNonZero etc...*/ /*Setting this gives a more consistent look. Also, by omitting color and background color, it allows us to set it above with VariationTreeColorNonZero etc...*/
@ -378,7 +383,6 @@ QTableView
color: darkgray; color: darkgray;
selection-color: darkgray; selection-color: darkgray;
selection-background-color: rgb(53, 53, 53); selection-background-color: rgb(53, 53, 53);
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QTableView QTableCornerButton::section:enabled QTableView QTableCornerButton::section:enabled
@ -411,7 +415,6 @@ QHeaderView::section::vertical:enabled
border-bottom: 1px solid gray; border-bottom: 1px solid gray;
padding-left: 5px; padding-left: 5px;
padding-right: 0px; padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::horizontal:enabled QHeaderView::section::horizontal:enabled
@ -423,7 +426,6 @@ QHeaderView::section::horizontal:enabled
padding-top: 0px; padding-top: 0px;
padding-bottom: 0px; padding-bottom: 0px;
padding-left: 3px; padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::vertical:disabled QHeaderView::section::vertical:disabled
@ -434,7 +436,6 @@ QHeaderView::section::vertical:disabled
border-bottom: 1px solid rgb(53, 53, 53); border-bottom: 1px solid rgb(53, 53, 53);
padding-left: 5px; padding-left: 5px;
padding-right: 0px; padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::horizontal:disabled QHeaderView::section::horizontal:disabled
@ -446,7 +447,6 @@ QHeaderView::section::horizontal:disabled
padding-top: 0px; padding-top: 0px;
padding-bottom: 0px; padding-bottom: 0px;
padding-left: 3px; padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QScrollBar::vertical QScrollBar::vertical

View File

@ -1,11 +1,15 @@
/*---Base Style--- /*---Base Style---
This is needed to deal with the large tabs in the fusion theme which is the default on Linux, and optional on Windows. This may be needed to deal with the large tabs.
It's not needed for other themes.
You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/ You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/
/*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/
/*This is needed to give the labels on the status bar some padding.*/ /*
QStatusBar QLabel { padding-left: 2px; padding-right: 2px; } *
{
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
*/
/*Specific styles below this line*/ /*Specific styles below this line*/
Fractorium Fractorium
@ -101,7 +105,6 @@ QDoubleSpinBox
padding-right: 0px; padding-right: 0px;
color: darkgray; color: darkgray;
selection-background-color: darkgray; selection-background-color: darkgray;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QCheckBox QCheckBox
@ -322,7 +325,6 @@ QTreeView
{ {
border: 1px solid gray; border: 1px solid gray;
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
@ -379,7 +381,6 @@ QTableView
color: darkgray; color: darkgray;
selection-color: darkgray; selection-color: darkgray;
selection-background-color: rgb(53, 53, 53); selection-background-color: rgb(53, 53, 53);
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QTableView QTableCornerButton::section:enabled QTableView QTableCornerButton::section:enabled
@ -412,7 +413,6 @@ QHeaderView::section::vertical:enabled
border-bottom: 1px solid gray; border-bottom: 1px solid gray;
padding-left: 5px; padding-left: 5px;
padding-right: 0px; padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::horizontal:enabled QHeaderView::section::horizontal:enabled
@ -424,7 +424,6 @@ QHeaderView::section::horizontal:enabled
padding-top: 0px; padding-top: 0px;
padding-bottom: 0px; padding-bottom: 0px;
padding-left: 3px; padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::vertical:disabled QHeaderView::section::vertical:disabled
@ -435,7 +434,6 @@ QHeaderView::section::vertical:disabled
border-bottom: 1px solid rgb(53, 53, 53); border-bottom: 1px solid rgb(53, 53, 53);
padding-left: 5px; padding-left: 5px;
padding-right: 0px; padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::horizontal:disabled QHeaderView::section::horizontal:disabled
@ -447,7 +445,6 @@ QHeaderView::section::horizontal:disabled
padding-top: 0px; padding-top: 0px;
padding-bottom: 0px; padding-bottom: 0px;
padding-left: 3px; padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QScrollBar::vertical QScrollBar::vertical

View File

@ -1,8 +1,13 @@
/*---Base Style--- /*---Base Style---
This is needed to deal with the large tabs in the fusion theme which is the default on Linux, and optional on Windows. This may be needed to deal with the large tabs.
It's not needed for other themes.
You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/ You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/
/*
QTabBar::tab { height: 4ex; } QTabBar::tab { height: 4ex; }
*/
*
{
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
}
/*This is needed to give the labels on the status bar some padding.*/ /*This is needed to give the labels on the status bar some padding.*/
QStatusBar QLabel { padding-left: 2px; padding-right: 2px; } QStatusBar QLabel { padding-left: 2px; padding-right: 2px; }
@ -101,7 +106,6 @@ QDoubleSpinBox
padding-right: 0px; padding-right: 0px;
color: darkgray; color: darkgray;
selection-background-color: darkgray; selection-background-color: darkgray;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QCheckBox QCheckBox
@ -322,7 +326,6 @@ QTreeView
{ {
border: 1px solid gray; border: 1px solid gray;
background-color: rgb(53, 53, 53); background-color: rgb(53, 53, 53);
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
/*Setting this gives a more consistent look. Also, by omitting color and background color, it allows us to set it above with VariationTreeColorNonZero etc...*/ /*Setting this gives a more consistent look. Also, by omitting color and background color, it allows us to set it above with VariationTreeColorNonZero etc...*/
@ -378,7 +381,6 @@ QTableView
color: darkgray; color: darkgray;
selection-color: darkgray; selection-color: darkgray;
selection-background-color: rgb(53, 53, 53); selection-background-color: rgb(53, 53, 53);
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QTableView QTableCornerButton::section:enabled QTableView QTableCornerButton::section:enabled
@ -411,7 +413,6 @@ QHeaderView::section::vertical:enabled
border-bottom: 1px solid gray; border-bottom: 1px solid gray;
padding-left: 5px; padding-left: 5px;
padding-right: 0px; padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::horizontal:enabled QHeaderView::section::horizontal:enabled
@ -423,7 +424,6 @@ QHeaderView::section::horizontal:enabled
padding-top: 0px; padding-top: 0px;
padding-bottom: 0px; padding-bottom: 0px;
padding-left: 3px; padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::vertical:disabled QHeaderView::section::vertical:disabled
@ -434,7 +434,6 @@ QHeaderView::section::vertical:disabled
border-bottom: 1px solid rgb(53, 53, 53); border-bottom: 1px solid rgb(53, 53, 53);
padding-left: 5px; padding-left: 5px;
padding-right: 0px; padding-right: 0px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QHeaderView::section::horizontal:disabled QHeaderView::section::horizontal:disabled
@ -446,7 +445,6 @@ QHeaderView::section::horizontal:disabled
padding-top: 0px; padding-top: 0px;
padding-bottom: 0px; padding-bottom: 0px;
padding-left: 3px; padding-left: 3px;
font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QScrollBar::vertical QScrollBar::vertical

View File

@ -1,6 +1,12 @@
/*---Base Style---
This may be needed to deal with the large tabs.
You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/
/*
QTabBar::tab { height: 4ex; }
*/
* *
{ {
font: 8.5pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QObject QObject

View File

@ -1,6 +1,12 @@
/*---Base Style---
This may be needed to deal with the large tabs.
You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/
/*
QTabBar::tab { height: 4ex; }
*/
* *
{ {
font: 8.5pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/ font: 8pt "MS Shell Dlg 2";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/
} }
QObject QObject

View File

@ -1605,16 +1605,16 @@ public:
/// <summary> /// <summary>
/// Accessors. /// Accessors.
/// </summary> /// </summary>
inline const Xform<T>* Xforms() const { return m_Xforms.data(); } inline const Xform<T>* Xforms() const noexcept { return m_Xforms.data(); }
inline Xform<T>* NonConstXforms() { return m_Xforms.data(); } inline Xform<T>* NonConstXforms() noexcept { return m_Xforms.data(); }
inline size_t XformCount() const { return m_Xforms.size(); } inline size_t XformCount() const noexcept { return m_Xforms.size(); }
inline const Xform<T>* FinalXform() const { return &m_FinalXform; } inline const Xform<T>* FinalXform() const noexcept { return &m_FinalXform; }
inline Xform<T>* NonConstFinalXform() { return &m_FinalXform; } inline Xform<T>* NonConstFinalXform() noexcept { return &m_FinalXform; }
inline bool UseFinalXform() const { return !m_FinalXform.Empty(); } inline bool UseFinalXform() const noexcept { return !m_FinalXform.Empty(); }
inline size_t TotalXformCount(bool forceFinal = false) const { return XformCount() + ((forceFinal || UseFinalXform()) ? 1 : 0); } inline size_t TotalXformCount(bool forceFinal = false) const noexcept { return XformCount() + ((forceFinal || UseFinalXform()) ? 1 : 0); }
inline int PaletteIndex() const { return m_Palette.m_Index; } inline int PaletteIndex() const noexcept { return m_Palette.m_Index; }
inline T BlurCoef() { return m_BlurCoef; } inline T BlurCoef() noexcept { return m_BlurCoef; }
inline eScaleType ScaleType() const { return m_ScaleType; } inline eScaleType ScaleType() const noexcept { return m_ScaleType; }
//The width and height in pixels of the final output image. The size of the histogram and DE filtering buffers will differ from this. //The width and height in pixels of the final output image. The size of the histogram and DE filtering buffers will differ from this.
//Xml fields: "size". //Xml fields: "size".

View File

@ -88,12 +88,12 @@ typedef std::lock_guard <std::recursive_mutex> rlg;
typedef std::chrono::high_resolution_clock Clock; typedef std::chrono::high_resolution_clock Clock;
typedef std::chrono::duration<double, std::ratio<1, 1000>> DoubleMs; typedef std::chrono::duration<double, std::ratio<1, 1000>> DoubleMs;
typedef std::chrono::time_point<Clock, DoubleMs> DoubleMsTimePoint; typedef std::chrono::time_point<Clock, DoubleMs> DoubleMsTimePoint;
static inline DoubleMsTimePoint NowMsD() { return time_point_cast<DoubleMs>(Clock::now()); } static inline DoubleMsTimePoint NowMsD() noexcept { return time_point_cast<DoubleMs>(Clock::now()); }
static inline size_t NowMs() { return duration_cast<milliseconds>(Clock::now().time_since_epoch()).count(); } static inline size_t NowMs() noexcept { return duration_cast<milliseconds>(Clock::now().time_since_epoch()).count(); }
#ifndef byte //#ifndef byte
typedef unsigned char byte; // typedef unsigned char byte;
#endif //#endif
#define DO_DOUBLE 1//Comment this out for shorter build times during development. Always uncomment for release. #define DO_DOUBLE 1//Comment this out for shorter build times during development. Always uncomment for release.
//#define ISAAC_FLAM3_DEBUG 1//This is almost never needed, but is very useful when troubleshooting difficult bugs. Enable it to do a side by side comparison with flam3. //#define ISAAC_FLAM3_DEBUG 1//This is almost never needed, but is very useful when troubleshooting difficult bugs. Enable it to do a side by side comparison with flam3.

View File

@ -758,11 +758,11 @@ public:
refang = xform->m_Wind[col] - M_2PI; refang = xform->m_Wind[col] - M_2PI;
//Make sure both angles are within [refang refang + 2 * pi]. //Make sure both angles are within [refang refang + 2 * pi].
while (cxAng[k - 1][col] < refang) while (cxAng[k - 1L][col] < refang)
cxAng[k - 1][col] += M_2PI; cxAng[k - 1L][col] += M_2PI;
while (cxAng[k - 1][col] > refang + M_2PI) while (cxAng[k - 1L][col] > refang + M_2PI)
cxAng[k - 1][col] -= M_2PI; cxAng[k - 1L][col] -= M_2PI;
while (cxAng[k][col] < refang) while (cxAng[k][col] < refang)
cxAng[k][col] += M_2PI; cxAng[k][col] += M_2PI;

View File

@ -33,10 +33,10 @@
#ifndef __ISAAC64 #ifndef __ISAAC64
typedef uint ISAAC_INT; typedef uint ISAAC_INT;
const ISAAC_INT GOLDEN_RATIO = ISAAC_INT{ 0x9e3779b9 }; constexpr ISAAC_INT GOLDEN_RATIO = ISAAC_INT{ 0x9e3779b9 };
#else #else
typedef size_t ISAAC_INT; typedef size_t ISAAC_INT;
const ISAAC_INT GOLDEN_RATIO = ISAAC_INT{ 0x9e3779b97f4a7c13 }; constexpr ISAAC_INT GOLDEN_RATIO = ISAAC_INT{ 0x9e3779b97f4a7c13 };
#endif #endif
namespace EmberNs namespace EmberNs

View File

@ -142,7 +142,7 @@ public:
#ifdef _DEBUG #ifdef _DEBUG
//Ensure distribution contains no out of bounds indices. //Ensure distribution contains no out of bounds indices.
if (byte(i) >= ember.XformCount()) if ((unsigned char)i >= ember.XformCount())
throw "Out of bounds xform index in selection distribution."; throw "Out of bounds xform index in selection distribution.";
#endif #endif
@ -156,7 +156,7 @@ public:
//If probability was zero, then nothing was filled in, so make all zero. //If probability was zero, then nothing was filled in, so make all zero.
//If it was non zero but for some reason didn't fill all elements, then just make the remaining //If it was non zero but for some reason didn't fill all elements, then just make the remaining
//elements have the index of the last xform. //elements have the index of the last xform.
byte val = j ? byte(i - 1) : 0; byte val = j ? byte(i - 1) : byte(0);
for (; j < CHOOSE_XFORM_GRAIN; j++)//Make absolutely sure they are set to a valid value. for (; j < CHOOSE_XFORM_GRAIN; j++)//Make absolutely sure they are set to a valid value.
m_XformDistributions[(distrib * CHOOSE_XFORM_GRAIN) + j] = val; m_XformDistributions[(distrib * CHOOSE_XFORM_GRAIN) + j] = val;

View File

@ -54,7 +54,7 @@ public:
else//They passed in null, so just fill with hard coded values so they at least have something. else//They passed in null, so just fill with hard coded values so they at least have something.
{ {
//Palette 15 used in the test ember file. //Palette 15 used in the test ember file.
byte palette15[COLORMAP_LENGTH * 4] = unsigned char palette15[COLORMAP_LENGTH * 4] =
{ {
0x00, 0xda, 0xde, 0xbc, 0x00, 0xee, 0xe6, 0xc5, 0x00, 0xee, 0xf2, 0xce, 0x00, 0xee, 0xf2, 0xcf, 0x00, 0xe6, 0xee, 0xe1, 0x00, 0xea, 0xee, 0xd8, 0x00, 0xf2, 0xf1, 0xeb, 0x00, 0xf2, 0xf5, 0xd8, 0x00, 0xda, 0xde, 0xbc, 0x00, 0xee, 0xe6, 0xc5, 0x00, 0xee, 0xf2, 0xce, 0x00, 0xee, 0xf2, 0xcf, 0x00, 0xe6, 0xee, 0xe1, 0x00, 0xea, 0xee, 0xd8, 0x00, 0xf2, 0xf1, 0xeb, 0x00, 0xf2, 0xf5, 0xd8,
0x00, 0xe6, 0xf2, 0xce, 0x00, 0xde, 0xea, 0xc5, 0x00, 0xd6, 0xda, 0xc6, 0x00, 0xce, 0xd2, 0xbc, 0x00, 0xc2, 0xca, 0xa9, 0x00, 0xbe, 0xca, 0xa0, 0x00, 0xce, 0xd6, 0xaa, 0x00, 0xde, 0xe2, 0xc5, 0x00, 0xe6, 0xf2, 0xce, 0x00, 0xde, 0xea, 0xc5, 0x00, 0xd6, 0xda, 0xc6, 0x00, 0xce, 0xd2, 0xbc, 0x00, 0xc2, 0xca, 0xa9, 0x00, 0xbe, 0xca, 0xa0, 0x00, 0xce, 0xd6, 0xaa, 0x00, 0xde, 0xe2, 0xc5,
@ -395,10 +395,10 @@ public:
/// </summary> /// </summary>
/// <param name="height">The height of the output block</param> /// <param name="height">The height of the output block</param>
/// <returns>A vector holding the color values</returns> /// <returns>A vector holding the color values</returns>
vector<byte> MakeRgbPaletteBlock(size_t height) vector<unsigned char> MakeRgbPaletteBlock(size_t height)
{ {
const auto width = Size(); const auto width = Size();
vector<byte> v(height * width * 3); vector<unsigned char> v(height * width * 3);
if (v.size() == (height * Size() * 3)) if (v.size() == (height * Size() * 3))
{ {
@ -406,9 +406,9 @@ public:
{ {
for (size_t j = 0; j < width; j++) for (size_t j = 0; j < width; j++)
{ {
v[(width * 3 * i) + (j * 3)] = static_cast<byte>(m_Entries[j][0] * static_cast<T>(255));//Palettes are as [0..1], so convert to [0..255] here since it's for GUI display. v[(width * 3 * i) + (j * 3)] = static_cast<unsigned char>(m_Entries[j][0] * static_cast<T>(255));//Palettes are as [0..1], so convert to [0..255] here since it's for GUI display.
v[(width * 3 * i) + (j * 3) + 1] = static_cast<byte>(m_Entries[j][1] * static_cast<T>(255)); v[(width * 3 * i) + (j * 3) + 1] = static_cast<unsigned char>(m_Entries[j][1] * static_cast<T>(255));
v[(width * 3 * i) + (j * 3) + 2] = static_cast<byte>(m_Entries[j][2] * static_cast<T>(255)); v[(width * 3 * i) + (j * 3) + 2] = static_cast<unsigned char>(m_Entries[j][2] * static_cast<T>(255));
} }
} }
} }

View File

@ -291,7 +291,7 @@ Palette<T>* PaletteList<T>::GetRandomPalette()
attempts++; attempts++;
} }
return Size() ? &s_Palettes[0][0] : nullptr; return Size() ? (&s_Palettes.begin()->second[0]) : nullptr;
} }
/// <summary> /// <summary>

View File

@ -116,12 +116,10 @@ static int SortPointByY(const Point<T>& a, const Point<T>& b)
template <typename T> template <typename T>
struct EMBER_API Color : public v4T struct EMBER_API Color : public v4T
{ {
#ifndef _WIN32
using v4T::r; using v4T::r;
using v4T::g; using v4T::g;
using v4T::b; using v4T::b;
using v4T::a; using v4T::a;
#endif
public: public:
/// <summary> /// <summary>
/// Constructor to set color values to zero, with full visibility. /// Constructor to set color values to zero, with full visibility.

View File

@ -384,6 +384,7 @@ bool Renderer<T, bucketT>::CreateTemporalFilter(bool& newAlloc)
template <typename T, typename bucketT> template <typename T, typename bucketT>
eRenderStatus Renderer<T, bucketT>::Run(vector<v4F>& finalImage, double time, size_t subBatchCountOverride, bool forceOutput, size_t finalOffset) eRenderStatus Renderer<T, bucketT>::Run(vector<v4F>& finalImage, double time, size_t subBatchCountOverride, bool forceOutput, size_t finalOffset)
{ {
m_RenderTimer.Tic();
m_InRender = true; m_InRender = true;
EnterRender(); EnterRender();
m_Abort = false; m_Abort = false;
@ -406,7 +407,6 @@ eRenderStatus Renderer<T, bucketT>::Run(vector<v4F>& finalImage, double time, si
if (!resume)//Beginning, reset everything. if (!resume)//Beginning, reset everything.
{ {
m_RenderTimer.Tic();
m_LastTemporalSample = 0; m_LastTemporalSample = 0;
m_LastIter = 0; m_LastIter = 0;
m_LastIterPercent = 0; m_LastIterPercent = 0;
@ -420,7 +420,6 @@ eRenderStatus Renderer<T, bucketT>::Run(vector<v4F>& finalImage, double time, si
//User requested an increase in quality after finishing. //User requested an increase in quality after finishing.
else if (m_ProcessState == eProcessState::ITER_STARTED && m_ProcessAction == eProcessAction::KEEP_ITERATING && TemporalSamples() == 1) else if (m_ProcessState == eProcessState::ITER_STARTED && m_ProcessAction == eProcessAction::KEEP_ITERATING && TemporalSamples() == 1)
{ {
m_RenderTimer.Tic();
m_LastTemporalSample = 0; m_LastTemporalSample = 0;
m_LastIter = m_Stats.m_Iters; m_LastIter = m_Stats.m_Iters;
m_LastIterPercent = 0;//Might skip a progress update, but shouldn't matter. m_LastIterPercent = 0;//Might skip a progress update, but shouldn't matter.
@ -709,7 +708,6 @@ AccumOnly:
if (AccumulatorToFinalImage(finalImage, finalOffset) == eRenderStatus::RENDER_OK) if (AccumulatorToFinalImage(finalImage, finalOffset) == eRenderStatus::RENDER_OK)
{ {
m_Stats.m_RenderMs += m_RenderTimer.Toc();//Record total time from the very beginning to the very end, including all intermediate calls.
//Even though the ember changes throughought the inner loops because of interpolation, it's probably ok to assign here. //Even though the ember changes throughought the inner loops because of interpolation, it's probably ok to assign here.
//This will hold the last interpolated value (even though spatial and temporal filters were created based off of one of the first interpolated values). //This will hold the last interpolated value (even though spatial and temporal filters were created based off of one of the first interpolated values).
m_LastEmber = m_Ember; m_LastEmber = m_Ember;
@ -741,6 +739,7 @@ Finish:
LeaveRender(); LeaveRender();
m_InRender = false; m_InRender = false;
m_Stats.m_RenderMs += m_RenderTimer.Toc();//Record total time from the very beginning to the very end, including all intermediate calls.
return success; return success;
} }

View File

@ -432,7 +432,7 @@ void RendererBase::ThreadCount(size_t threads, const char* seedString)
m_Rand.push_back(isaac); m_Rand.push_back(isaac);
for (i = 0; i < (isaacSize * sizeof(ISAAC_INT)); i++) for (i = 0; i < (isaacSize * sizeof(ISAAC_INT)); i++)
reinterpret_cast<byte*>(seeds)[i]++; reinterpret_cast<unsigned char*>(seeds)[i]++;
} }
else else
{ {

View File

@ -54,12 +54,12 @@ public:
/// <summary> /// <summary>
/// Constructor which sets all values to 0. /// Constructor which sets all values to 0.
/// </summary> /// </summary>
EmberStats() EmberStats() noexcept
{ {
Clear(); Clear();
} }
void Clear() void Clear() noexcept
{ {
m_Success = true; m_Success = true;
m_Iters = 0; m_Iters = 0;
@ -68,7 +68,7 @@ public:
m_RenderMs = 0; m_RenderMs = 0;
} }
EmberStats& operator += (const EmberStats& stats) EmberStats& operator += (const EmberStats& stats) noexcept
{ {
m_Success &= stats.m_Success; m_Success &= stats.m_Success;
m_Iters += stats.m_Iters; m_Iters += stats.m_Iters;

View File

@ -22,7 +22,7 @@ public:
/// As a convenience, the Tic() function is called automatically. /// As a convenience, the Tic() function is called automatically.
/// </summary> /// </summary>
/// <param name="precision">The precision of the seconds field of the elapsed time. Default: 2.</param> /// <param name="precision">The precision of the seconds field of the elapsed time. Default: 2.</param>
Timing(int precision = 2) Timing(int precision = 2) noexcept
{ {
m_Precision = precision; m_Precision = precision;
Init(); Init();
@ -33,7 +33,7 @@ public:
/// Set the begin time. /// Set the begin time.
/// </summary> /// </summary>
/// <returns>The begin time cast to a double</returns> /// <returns>The begin time cast to a double</returns>
double Tic() double Tic() noexcept
{ {
m_BeginTime = NowMsD(); m_BeginTime = NowMsD();
return BeginTime(); return BeginTime();
@ -62,19 +62,19 @@ public:
/// Return the begin time as a double. /// Return the begin time as a double.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
double BeginTime() const { return static_cast<double>(m_BeginTime.time_since_epoch().count()); } double BeginTime() const noexcept { return static_cast<double>(m_BeginTime.time_since_epoch().count()); }
/// <summary> /// <summary>
/// Return the end time as a double. /// Return the end time as a double.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
double EndTime() const { return static_cast<double>(m_EndTime.time_since_epoch().count()); } double EndTime() const noexcept { return static_cast<double>(m_EndTime.time_since_epoch().count()); }
/// <summary> /// <summary>
/// Return the elapsed time in milliseconds. /// Return the elapsed time in milliseconds.
/// </summary> /// </summary>
/// <returns>The elapsed time in milliseconds as a double</returns> /// <returns>The elapsed time in milliseconds as a double</returns>
double ElapsedTime() const double ElapsedTime() const noexcept
{ {
return (m_EndTime - m_BeginTime).count(); return (m_EndTime - m_BeginTime).count();
} }
@ -128,7 +128,7 @@ private:
/// Since it will never change it only needs to be queried once. /// Since it will never change it only needs to be queried once.
/// This is achieved by keeping static state and performance variables. /// This is achieved by keeping static state and performance variables.
/// </summary> /// </summary>
static void Init() static void Init() noexcept
{ {
if (!m_TimingInit) if (!m_TimingInit)
{ {

View File

@ -48,7 +48,7 @@ static inline bool FindIf(c& container, pr pred)
/// <param name="val">The value to search for</param> /// <param name="val">The value to search for</param>
/// <returns>True if the value was contained at least once, else false.</returns> /// <returns>True if the value was contained at least once, else false.</returns>
template<class c, class T> template<class c, class T>
static inline bool Contains(c& container, const T& val) static inline bool Contains(c& container, const T& val) noexcept
{ {
return std::find_if(container.begin(), container.end(), [&](const T & t) -> bool { return t == val; }) != container.end(); return std::find_if(container.begin(), container.end(), [&](const T & t) -> bool { return t == val; }) != container.end();
} }
@ -60,7 +60,7 @@ static inline bool Contains(c& container, const T& val)
/// <param name="str1">The string to call find() on</param> /// <param name="str1">The string to call find() on</param>
/// <param name="str2">The string to search for</param> /// <param name="str2">The string to search for</param>
/// <returns>True if str2 was present at least once, else false.</returns> /// <returns>True if str2 was present at least once, else false.</returns>
static bool Find(const string& str1, const string& str2) static bool Find(const string& str1, const string& str2) noexcept
{ {
return str1.find(str2) != string::npos; return str1.find(str2) != string::npos;
} }
@ -71,7 +71,7 @@ static bool Find(const string& str1, const string& str2)
/// <param name="vec">The vector to compute the size of</param> /// <param name="vec">The vector to compute the size of</param>
/// <returns>The size of one element times the length.</returns> /// <returns>The size of one element times the length.</returns>
template<typename T> template<typename T>
static inline size_t SizeOf(const vector<T>& vec) static inline size_t SizeOf(const vector<T>& vec) noexcept
{ {
return sizeof(vec[0]) * vec.size(); return sizeof(vec[0]) * vec.size();
} }
@ -140,7 +140,7 @@ public:
/// Derived classes with members that also derive from EmberReport should override this to clear /// Derived classes with members that also derive from EmberReport should override this to clear
/// their error information as well as that of their members. /// their error information as well as that of their members.
/// </summary> /// </summary>
virtual void ClearErrorReport() { m_ErrorReport.clear(); } virtual void ClearErrorReport() noexcept { m_ErrorReport.clear(); }
/// <summary> /// <summary>
/// Return the entire error report as a single string. /// Return the entire error report as a single string.
@ -310,7 +310,7 @@ static bool ReadFile(const char* filename, string& buf, bool nullTerminate = tru
ifs.exceptions(ifstream::failbit); ifs.exceptions(ifstream::failbit);
ifs.open(filename, ios::binary | ios::ate); ifs.open(filename, ios::binary | ios::ate);
if (auto pos = ifs.tellg())//Ensure it exists and wasn't empty. if (const auto pos = ifs.tellg())//Ensure it exists and wasn't empty.
{ {
buf.resize(pos + streampos(nullTerminate ? 1 : 0)); buf.resize(pos + streampos(nullTerminate ? 1 : 0));
ifs.seekg(0, ios::beg); ifs.seekg(0, ios::beg);
@ -465,7 +465,7 @@ static inline void Memset(vector<T>& vec, int val = 0)
/// <param name="x">The value to return the floor of</param> /// <param name="x">The value to return the floor of</param>
/// <returns>The floored value</returns> /// <returns>The floored value</returns>
template <typename T> template <typename T>
static inline intmax_t Floor(T val) static inline intmax_t Floor(T val) noexcept
{ {
if (val >= 0) if (val >= 0)
{ {
@ -487,7 +487,7 @@ static inline intmax_t Floor(T val)
/// <param name="max">A value which the clamped value must be less than or equal to</param> /// <param name="max">A value which the clamped value must be less than or equal to</param>
/// <returns>The clamped value</returns> /// <returns>The clamped value</returns>
template <typename T> template <typename T>
static inline T Clamp(T val, T min, T max) static inline T Clamp(T val, T min, T max) noexcept
{ {
if (val < min) if (val < min)
return min; return min;
@ -498,7 +498,7 @@ static inline T Clamp(T val, T min, T max)
} }
template <> template <>
STATIC float Clamp<float>(float val, float min, float max) STATIC float Clamp<float>(float val, float min, float max) noexcept
{ {
if (val < min) if (val < min)
return min; return min;
@ -511,7 +511,7 @@ STATIC float Clamp<float>(float val, float min, float max)
} }
template <> template <>
STATIC double Clamp<double>(double val, double min, double max) STATIC double Clamp<double>(double val, double min, double max) noexcept
{ {
if (val < min) if (val < min)
return min; return min;
@ -533,7 +533,7 @@ STATIC double Clamp<double>(double val, double min, double max)
/// <param name="max">A value which the clamped value must be less than or equal to</param> /// <param name="max">A value which the clamped value must be less than or equal to</param>
/// <returns>The clamped and modded value</returns> /// <returns>The clamped and modded value</returns>
template <typename T> template <typename T>
static inline T ClampMod(T val, T min, T max) static inline T ClampMod(T val, T min, T max) noexcept
{ {
if (val < min) if (val < min)
return min + fmod(val - min, max - min); return min + fmod(val - min, max - min);
@ -552,7 +552,7 @@ static inline T ClampMod(T val, T min, T max)
/// <param name="min">A value which the clamped value must be greater than or equal to</param> /// <param name="min">A value which the clamped value must be greater than or equal to</param>
/// <param name="max">A value which the clamped value must be less than or equal to</param> /// <param name="max">A value which the clamped value must be less than or equal to</param>
template <typename T> template <typename T>
static inline void ClampRef(T& val, T min, T max) static inline void ClampRef(T& val, T min, T max) noexcept
{ {
if (val < min) if (val < min)
val = min; val = min;
@ -561,7 +561,7 @@ static inline void ClampRef(T& val, T min, T max)
} }
template <> template <>
STATIC void ClampRef<float>(float& val, float min, float max) STATIC void ClampRef<float>(float& val, float min, float max) noexcept
{ {
if (val < min) if (val < min)
val = min; val = min;
@ -572,7 +572,7 @@ STATIC void ClampRef<float>(float& val, float min, float max)
} }
template <> template <>
STATIC void ClampRef<double>(double& val, double min, double max) STATIC void ClampRef<double>(double& val, double min, double max) noexcept
{ {
if (val < min) if (val < min)
val = min; val = min;
@ -588,21 +588,21 @@ STATIC void ClampRef<double>(double& val, double min, double max)
/// <param name="val">The reference value to be clamped in place</param> /// <param name="val">The reference value to be clamped in place</param>
/// <param name="gte">A value which the clamped value must be less than or equal to</param> /// <param name="gte">A value which the clamped value must be less than or equal to</param>
template <typename T> template <typename T>
static inline void ClampLteRef(T& val, T lte) static inline void ClampLteRef(T& val, T lte) noexcept
{ {
if (val > lte) if (val > lte)
val = lte; val = lte;
} }
template <> template <>
STATIC void ClampLteRef<float>(float& val, float lte) STATIC void ClampLteRef<float>(float& val, float lte) noexcept
{ {
if (val > lte || !std::isfinite(val)) if (val > lte || !std::isfinite(val))
val = lte; val = lte;
} }
template <> template <>
STATIC void ClampLteRef<double>(double& val, double lte) STATIC void ClampLteRef<double>(double& val, double lte) noexcept
{ {
if (val > lte || !std::isfinite(val)) if (val > lte || !std::isfinite(val))
val = lte; val = lte;
@ -616,13 +616,13 @@ STATIC void ClampLteRef<double>(double& val, double lte)
/// <param name="gte">A value which the clamped value must be greater than or equal to</param> /// <param name="gte">A value which the clamped value must be greater than or equal to</param>
/// <returns>The clamped value</returns> /// <returns>The clamped value</returns>
template <typename T> template <typename T>
static inline T ClampGte(T val, T gte) static inline T ClampGte(T val, T gte) noexcept
{ {
return (val < gte) ? gte : val; return (val < gte) ? gte : val;
} }
template <> template <>
STATIC float ClampGte<float>(float val, float gte) STATIC float ClampGte<float>(float val, float gte) noexcept
{ {
if (val < gte || !std::isfinite(val)) if (val < gte || !std::isfinite(val))
return gte; return gte;
@ -631,7 +631,7 @@ STATIC float ClampGte<float>(float val, float gte)
} }
template <> template <>
STATIC double ClampGte<double>(double val, double gte) STATIC double ClampGte<double>(double val, double gte) noexcept
{ {
if (val < gte || !std::isfinite(val)) if (val < gte || !std::isfinite(val))
return gte; return gte;
@ -645,21 +645,21 @@ STATIC double ClampGte<double>(double val, double gte)
/// <param name="val">The reference value to be clamped in place</param> /// <param name="val">The reference value to be clamped in place</param>
/// <param name="gte">A value which the clamped value must be greater than or equal to</param> /// <param name="gte">A value which the clamped value must be greater than or equal to</param>
template <typename T> template <typename T>
static inline void ClampGteRef(T& val, T gte) static inline void ClampGteRef(T& val, T gte) noexcept
{ {
if (val < gte) if (val < gte)
val = gte; val = gte;
} }
template <> template <>
STATIC void ClampGteRef<float>(float& val, float gte) STATIC void ClampGteRef<float>(float& val, float gte) noexcept
{ {
if (val < gte || !std::isfinite(val)) if (val < gte || !std::isfinite(val))
val = gte; val = gte;
} }
template <> template <>
STATIC void ClampGteRef<double>(double& val, double gte) STATIC void ClampGteRef<double>(double& val, double gte) noexcept
{ {
if (val < gte || !std::isfinite(val)) if (val < gte || !std::isfinite(val))
val = gte; val = gte;
@ -671,7 +671,7 @@ STATIC void ClampGteRef<double>(double& val, double gte)
/// <param name="val">The value to be clamped</param> /// <param name="val">The value to be clamped</param>
/// <returns>The clamped value</returns> /// <returns>The clamped value</returns>
template <typename T> template <typename T>
static inline T ClampGte0(T val) static inline T ClampGte0(T val) noexcept
{ {
return ClampGte<T>(val, 0); return ClampGte<T>(val, 0);
} }
@ -681,7 +681,7 @@ static inline T ClampGte0(T val)
/// </summary> /// </summary>
/// <param name="val">The reference value to be clamped in place</param> /// <param name="val">The reference value to be clamped in place</param>
template <typename T> template <typename T>
static inline void ClampGte0Ref(T& val) static inline void ClampGte0Ref(T& val) noexcept
{ {
ClampGteRef<T>(val, 0); ClampGteRef<T>(val, 0);
} }
@ -692,7 +692,7 @@ static inline void ClampGte0Ref(T& val)
/// <param name="r">The value to round</param> /// <param name="r">The value to round</param>
/// <returns>The rounded value</returns> /// <returns>The rounded value</returns>
template <typename T> template <typename T>
static inline T Round(T r) static inline T Round(T r) noexcept
{ {
return (r > 0) ? static_cast<T>(Floor<T>(r + T(0.5))) : std::ceil(r - T(0.5)); return (r > 0) ? static_cast<T>(Floor<T>(r + T(0.5))) : std::ceil(r - T(0.5));
} }
@ -703,7 +703,7 @@ static inline T Round(T r)
/// <param name="r">The value to round</param> /// <param name="r">The value to round</param>
/// <returns>The rounded value</returns> /// <returns>The rounded value</returns>
template <typename T> template <typename T>
static inline T Round6(T r) static inline T Round6(T r) noexcept
{ {
r *= 1e6; r *= 1e6;
@ -721,7 +721,7 @@ static inline T Round6(T r)
/// <param name="v">The value to square</param> /// <param name="v">The value to square</param>
/// <returns>The squared value</returns> /// <returns>The squared value</returns>
template <typename T> template <typename T>
static inline T Sqr(T t) static inline T Sqr(T t) noexcept
{ {
return t * t; return t * t;
} }
@ -734,25 +734,25 @@ static inline T Sqr(T t)
/// <param name="v">The value to cube</param> /// <param name="v">The value to cube</param>
/// <returns>The cubed value</returns> /// <returns>The cubed value</returns>
template <typename T> template <typename T>
static inline T Cube(T t) static inline T Cube(T t) noexcept
{ {
return t * t * t; return t * t * t;
} }
template <typename T> template <typename T>
static inline T SafeTan(T x) static inline T SafeTan(T x) noexcept
{ {
return x; return x;
} }
template <> template <>
STATIC float SafeTan<float>(float x) STATIC float SafeTan<float>(float x) noexcept
{ {
return std::tan(Clamp<float>(x, FLOAT_MIN_TAN, FLOAT_MAX_TAN)); return std::tan(Clamp<float>(x, FLOAT_MIN_TAN, FLOAT_MAX_TAN));
} }
template <> template <>
STATIC double SafeTan<double>(double x) STATIC double SafeTan<double>(double x) noexcept
{ {
return std::tan(x); return std::tan(x);
} }
@ -764,7 +764,7 @@ STATIC double SafeTan<double>(double x)
/// <param name="y">The y distance</param> /// <param name="y">The y distance</param>
/// <returns>EPS or the value if it was non-zero</returns> /// <returns>EPS or the value if it was non-zero</returns>
template <typename T> template <typename T>
static inline T Zeps(T x) static inline T Zeps(T x) noexcept
{ {
return x == 0 ? EPS : x; return x == 0 ? EPS : x;
} }
@ -777,7 +777,7 @@ static inline T Zeps(T x)
/// <param name="p">The percentage between the two values to calculate.</param> /// <param name="p">The percentage between the two values to calculate.</param>
/// <returns>The interpolated value.</returns> /// <returns>The interpolated value.</returns>
template <typename T> template <typename T>
static inline T Lerp(T a, T b, T p) static inline T Lerp(T a, T b, T p) noexcept
{ {
return a + (b - a) * p; return a + (b - a) * p;
} }
@ -802,7 +802,7 @@ static inline bool Compare(const xmlChar* name, const char* val)
/// <param name="tolerance">The tolerance. Default: 1e-6.</param> /// <param name="tolerance">The tolerance. Default: 1e-6.</param>
/// <returns>True if the value was very close to zero, else false</returns> /// <returns>True if the value was very close to zero, else false</returns>
template <typename T> template <typename T>
static inline bool IsNearZero(T val, T tolerance = 1e-6) static inline bool IsNearZero(T val, T tolerance = 1e-6) noexcept
{ {
return (val > -tolerance && val < tolerance); return (val > -tolerance && val < tolerance);
} }
@ -816,7 +816,7 @@ static inline bool IsNearZero(T val, T tolerance = 1e-6)
/// <param name="tolerance">The tolerance. Default: 1e-6.</param> /// <param name="tolerance">The tolerance. Default: 1e-6.</param>
/// <returns>True if the values were very close to each other, else false</returns> /// <returns>True if the values were very close to each other, else false</returns>
template <typename T> template <typename T>
static inline bool IsClose(T val1, T val2, T tolerance = 1e-6) static inline bool IsClose(T val1, T val2, T tolerance = 1e-6) noexcept
{ {
return IsNearZero(val1 - val2, tolerance); return IsNearZero(val1 - val2, tolerance);
} }
@ -827,7 +827,7 @@ static inline bool IsClose(T val1, T val2, T tolerance = 1e-6)
/// <param name="angle">The angle to normalize</param> /// <param name="angle">The angle to normalize</param>
/// <returns>The normalized angle in a range of -180 - 180</returns> /// <returns>The normalized angle in a range of -180 - 180</returns>
template <typename T> template <typename T>
static inline T NormalizeDeg180(T angle) static inline T NormalizeDeg180(T angle) noexcept
{ {
auto a = fmod(angle, T(360)); auto a = fmod(angle, T(360));
@ -845,7 +845,7 @@ static inline T NormalizeDeg180(T angle)
/// <param name="angle">The angle to normalize</param> /// <param name="angle">The angle to normalize</param>
/// <returns>The normalized angle in a range of 0 - 360</returns> /// <returns>The normalized angle in a range of 0 - 360</returns>
template <typename T> template <typename T>
static inline T NormalizeDeg360(T angle) static inline T NormalizeDeg360(T angle) noexcept
{ {
if (angle > 360 || angle < -360) if (angle > 360 || angle < -360)
angle = fmod(angle, T(360)); angle = fmod(angle, T(360));
@ -862,7 +862,7 @@ static inline T NormalizeDeg360(T angle)
/// <param name="Angle">The angle to convert</param> /// <param name="Angle">The angle to convert</param>
/// <returns>The trig equivalent of the angle passed in</returns> /// <returns>The trig equivalent of the angle passed in</returns>
template <typename T> template <typename T>
static inline T ToTrigAngle(T angle) static inline T ToTrigAngle(T angle) noexcept
{ {
return NormalizeDeg360(90 - angle); return NormalizeDeg360(90 - angle);
} }
@ -1164,7 +1164,7 @@ static void Join(std::vector<std::thread>& vec)
/// <summary> /// <summary>
/// Return a character pointer to a version string composed of the EMBER_OS and EMBER_VERSION values. /// Return a character pointer to a version string composed of the EMBER_OS and EMBER_VERSION values.
/// </summary> /// </summary>
static inline const char* EmberVersion() static inline const char* EmberVersion() noexcept
{ {
return EMBER_OS "-" EMBER_VERSION; return EMBER_OS "-" EMBER_VERSION;
} }

View File

@ -555,7 +555,7 @@ public:
/// <summary> /// <summary>
/// Compute color cache values: color speed and one minus color speed. /// Compute color cache values: color speed and one minus color speed.
/// </summary> /// </summary>
void CacheColorVals() void CacheColorVals() noexcept
{ {
//Figure out which is right. //TODO. //Figure out which is right. //TODO.
//m_ColorSpeedCache = m_ColorX * (1 - m_ColorSpeed) / 2;//Apo style. //m_ColorSpeedCache = m_ColorX * (1 - m_ColorSpeed) / 2;//Apo style.
@ -572,7 +572,7 @@ public:
/// </summary> /// </summary>
/// <param name="i">The xaos index to retrieve</param> /// <param name="i">The xaos index to retrieve</param>
/// <returns>The value at the index if in range, else 1.</returns> /// <returns>The value at the index if in range, else 1.</returns>
T Xaos(size_t i) const T Xaos(size_t i) const noexcept
{ {
return i < m_Xaos.size() ? m_Xaos[i] : 1; return i < m_Xaos.size() ? m_Xaos[i] : 1;
} }
@ -605,7 +605,7 @@ public:
/// of the parent ember is anything other than 1. /// of the parent ember is anything other than 1.
/// </summary> /// </summary>
/// <returns>True if found, else false.</returns> /// <returns>True if found, else false.</returns>
bool XaosPresent() const bool XaosPresent() const noexcept
{ {
if (m_ParentEmber) if (m_ParentEmber)
for (size_t i = 0; i < m_Xaos.size(); i++) for (size_t i = 0; i < m_Xaos.size(); i++)
@ -859,25 +859,25 @@ public:
/// The precalc flags are duplicated in each variation. Each value here /// The precalc flags are duplicated in each variation. Each value here
/// is true if any of the variations need it precalculated. /// is true if any of the variations need it precalculated.
/// </summary> /// </summary>
inline bool NeedPrecalcSumSquares() const { return m_NeedPrecalcSumSquares; } inline bool NeedPrecalcSumSquares() const noexcept { return m_NeedPrecalcSumSquares; }
inline bool NeedPrecalcSqrtSumSquares() const { return m_NeedPrecalcSqrtSumSquares; } inline bool NeedPrecalcSqrtSumSquares() const noexcept { return m_NeedPrecalcSqrtSumSquares; }
inline bool NeedPrecalcAngles() const { return m_NeedPrecalcAngles; } inline bool NeedPrecalcAngles() const noexcept { return m_NeedPrecalcAngles; }
inline bool NeedPrecalcAtanXY() const { return m_NeedPrecalcAtanXY; } inline bool NeedPrecalcAtanXY() const noexcept { return m_NeedPrecalcAtanXY; }
inline bool NeedPrecalcAtanYX() const { return m_NeedPrecalcAtanYX; } inline bool NeedPrecalcAtanYX() const noexcept { return m_NeedPrecalcAtanYX; }
inline bool NeedAnyPrecalc() const { return NeedPrecalcSumSquares() || NeedPrecalcSqrtSumSquares() || NeedPrecalcAngles() || NeedPrecalcAtanXY() || NeedPrecalcAtanYX(); } inline bool NeedAnyPrecalc() const noexcept { return NeedPrecalcSumSquares() || NeedPrecalcSqrtSumSquares() || NeedPrecalcAngles() || NeedPrecalcAtanXY() || NeedPrecalcAtanYX(); }
bool HasPre() const { return m_HasPre; } bool HasPre() const noexcept { return m_HasPre; }
bool HasPost() const { return m_HasPost; } bool HasPost() const noexcept { return m_HasPost; }
size_t PreVariationCount() const { return m_PreVariations.size(); } size_t PreVariationCount() const noexcept { return m_PreVariations.size(); }
size_t VariationCount() const { return m_Variations.size(); } size_t VariationCount() const noexcept { return m_Variations.size(); }
size_t PostVariationCount() const { return m_PostVariations.size(); } size_t PostVariationCount() const noexcept { return m_PostVariations.size(); }
size_t TotalVariationCount() const { return PreVariationCount() + VariationCount() + PostVariationCount(); } size_t TotalVariationCount() const noexcept { return PreVariationCount() + VariationCount() + PostVariationCount(); }
bool Empty() const { return TotalVariationCount() == 0 && m_Affine.IsID(); }//Use this instead of padding like the original did. bool Empty() const noexcept { return TotalVariationCount() == 0 && m_Affine.IsID(); }//Use this instead of padding like the original did.
T ColorSpeedCache() const { return m_ColorSpeedCache; } T ColorSpeedCache() const noexcept { return m_ColorSpeedCache; }
T OneMinusColorCache() const { return m_OneMinusColorCache; } T OneMinusColorCache() const noexcept { return m_OneMinusColorCache; }
const vector<T>& XaosVec() const { return m_Xaos; } const vector<T>& XaosVec() const noexcept { return m_Xaos; }
Ember<T>* ParentEmber() const { return m_ParentEmber; } Ember<T>* ParentEmber() const noexcept { return m_ParentEmber; }
void ParentEmber(Ember<T>* ember) { m_ParentEmber = ember; } void ParentEmber(Ember<T>* ember) { m_ParentEmber = ember; }
intmax_t IndexInParentEmber() const { return m_ParentEmber ? m_ParentEmber->GetTotalXformIndex(const_cast<Xform<T>*>(this)) : -1; } intmax_t IndexInParentEmber() const noexcept { return m_ParentEmber ? m_ParentEmber->GetTotalXformIndex(const_cast<Xform<T>*>(this)) : -1; }
/// <summary> /// <summary>
/// Set the precalc flags based on whether any variation in the vector needs them. /// Set the precalc flags based on whether any variation in the vector needs them.
@ -1079,7 +1079,7 @@ public:
/// </summary> /// </summary>
/// <param name="helper">The helper to store the output values in</param> /// <param name="helper">The helper to store the output values in</param>
/// <param name="assignType">The type of assignment this variation uses, assign or sum.</param> /// <param name="assignType">The type of assignment this variation uses, assign or sum.</param>
inline void WritePost(IteratorHelper<T>& helper, Point<T>& outPoint, eVariationAssignType assignType) inline void WritePost(IteratorHelper<T>& helper, Point<T>& outPoint, eVariationAssignType assignType) noexcept
{ {
switch (assignType) switch (assignType)
{ {

View File

@ -353,7 +353,7 @@ bool EmberAnimate(int argc, _TCHAR* argv[], EmberOptions& opt)
{ {
const auto finalImagep = finalImage.data(); const auto finalImagep = finalImage.data();
const auto size = w * h; const auto size = w * h;
vector<byte> rgb8Image; vector<unsigned char> rgb8Image;
vector<std::thread> writeFileThreads; vector<std::thread> writeFileThreads;
writeFileThreads.reserve(6); writeFileThreads.reserve(6);
@ -399,7 +399,7 @@ bool EmberAnimate(int argc, _TCHAR* argv[], EmberOptions& opt)
{ {
const auto fn = baseFilename + ".png"; const auto fn = baseFilename + ".png";
VerbosePrint("Writing " + fn); VerbosePrint("Writing " + fn);
vector<byte> rgba8Image(size * 4); vector<unsigned char> rgba8Image(size * 4);
Rgba32ToRgba8(finalImagep, rgba8Image.data(), w, h, opt.Transparency()); Rgba32ToRgba8(finalImagep, rgba8Image.data(), w, h, opt.Transparency());
const auto writeSuccess = WritePng(fn.c_str(), rgba8Image.data(), w, h, 1, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick()); const auto writeSuccess = WritePng(fn.c_str(), rgba8Image.data(), w, h, 1, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick());
@ -425,7 +425,7 @@ bool EmberAnimate(int argc, _TCHAR* argv[], EmberOptions& opt)
VerbosePrint("Writing " + fn); VerbosePrint("Writing " + fn);
vector<glm::uint16> rgba16Image(size * 4); vector<glm::uint16> rgba16Image(size * 4);
Rgba32ToRgba16(finalImagep, rgba16Image.data(), w, h, opt.Transparency()); Rgba32ToRgba16(finalImagep, rgba16Image.data(), w, h, opt.Transparency());
const auto writeSuccess = WritePng(fn.c_str(), (byte*)rgba16Image.data(), w, h, 2, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick()); const auto writeSuccess = WritePng(fn.c_str(), (unsigned char*)rgba16Image.data(), w, h, 2, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick());
if (!writeSuccess) if (!writeSuccess)
cout << "Error writing " << fn << "\n"; cout << "Error writing " << fn << "\n";

1945
Source/EmberCL/CL/cl.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,241 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_D3D10_H_
#define OPENCL_CL_D3D10_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( push )
#pragma warning( disable : 4201 )
#pragma warning( disable : 5105 )
#endif
#endif
#include <d3d10.h>
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( pop )
#endif
#endif
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_khr_d3d10_sharing
***************************************************************/
#define cl_khr_d3d10_sharing 1
#define CL_KHR_D3D10_SHARING_EXTENSION_NAME \
"cl_khr_d3d10_sharing"
typedef cl_uint cl_d3d10_device_source_khr;
typedef cl_uint cl_d3d10_device_set_khr;
/* Error codes */
#define CL_INVALID_D3D10_DEVICE_KHR -1002
#define CL_INVALID_D3D10_RESOURCE_KHR -1003
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005
/* cl_d3d10_device_source_khr */
#define CL_D3D10_DEVICE_KHR 0x4010
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011
/* cl_d3d10_device_set_khr */
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013
/* cl_context_info */
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C
/* cl_mem_info */
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015
/* cl_image_info */
#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016
/* cl_command_type */
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018
typedef cl_int (CL_API_CALL *
clGetDeviceIDsFromD3D10KHR_fn)(
cl_platform_id platform,
cl_d3d10_device_source_khr d3d_device_source,
void* d3d_object,
cl_d3d10_device_set_khr d3d_device_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem (CL_API_CALL *
clCreateFromD3D10BufferKHR_fn)(
cl_context context,
cl_mem_flags flags,
ID3D10Buffer* resource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem (CL_API_CALL *
clCreateFromD3D10Texture2DKHR_fn)(
cl_context context,
cl_mem_flags flags,
ID3D10Texture2D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem (CL_API_CALL *
clCreateFromD3D10Texture3DKHR_fn)(
cl_context context,
cl_mem_flags flags,
ID3D10Texture3D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireD3D10ObjectsKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseD3D10ObjectsKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceIDsFromD3D10KHR(
cl_platform_id platform,
cl_d3d10_device_source_khr d3d_device_source,
void* d3d_object,
cl_d3d10_device_set_khr d3d_device_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromD3D10BufferKHR(
cl_context context,
cl_mem_flags flags,
ID3D10Buffer* resource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromD3D10Texture2DKHR(
cl_context context,
cl_mem_flags flags,
ID3D10Texture2D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromD3D10Texture3DKHR(
cl_context context,
cl_mem_flags flags,
ID3D10Texture3D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireD3D10ObjectsKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseD3D10ObjectsKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_intel_sharing_format_query_d3d10
***************************************************************/
#define cl_intel_sharing_format_query_d3d10 1
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D10_EXTENSION_NAME \
"cl_intel_sharing_format_query_d3d10"
/* when cl_khr_d3d10_sharing is supported */
typedef cl_int (CL_API_CALL *
clGetSupportedD3D10TextureFormatsINTEL_fn)(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint num_entries,
DXGI_FORMAT* d3d10_formats,
cl_uint* num_texture_formats) ;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetSupportedD3D10TextureFormatsINTEL(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint num_entries,
DXGI_FORMAT* d3d10_formats,
cl_uint* num_texture_formats) ;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_D3D10_H_ */

View File

@ -0,0 +1,243 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_D3D11_H_
#define OPENCL_CL_D3D11_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( push )
#pragma warning( disable : 4201 )
#pragma warning( disable : 5105 )
#endif
#endif
#include <d3d11.h>
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( pop )
#endif
#endif
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_khr_d3d11_sharing
***************************************************************/
#define cl_khr_d3d11_sharing 1
#define CL_KHR_D3D11_SHARING_EXTENSION_NAME \
"cl_khr_d3d11_sharing"
typedef cl_uint cl_d3d11_device_source_khr;
typedef cl_uint cl_d3d11_device_set_khr;
/* Error codes */
#define CL_INVALID_D3D11_DEVICE_KHR -1006
#define CL_INVALID_D3D11_RESOURCE_KHR -1007
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009
/* cl_d3d11_device_source_khr */
#define CL_D3D11_DEVICE_KHR 0x4019
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A
/* cl_d3d11_device_set_khr */
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C
/* cl_context_info */
#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D
#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D
/* cl_mem_info */
#define CL_MEM_D3D11_RESOURCE_KHR 0x401E
/* cl_image_info */
#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F
/* cl_command_type */
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021
typedef cl_int (CL_API_CALL *
clGetDeviceIDsFromD3D11KHR_fn)(
cl_platform_id platform,
cl_d3d11_device_source_khr d3d_device_source,
void* d3d_object,
cl_d3d11_device_set_khr d3d_device_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem (CL_API_CALL *
clCreateFromD3D11BufferKHR_fn)(
cl_context context,
cl_mem_flags flags,
ID3D11Buffer* resource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem (CL_API_CALL *
clCreateFromD3D11Texture2DKHR_fn)(
cl_context context,
cl_mem_flags flags,
ID3D11Texture2D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem (CL_API_CALL *
clCreateFromD3D11Texture3DKHR_fn)(
cl_context context,
cl_mem_flags flags,
ID3D11Texture3D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireD3D11ObjectsKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseD3D11ObjectsKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceIDsFromD3D11KHR(
cl_platform_id platform,
cl_d3d11_device_source_khr d3d_device_source,
void* d3d_object,
cl_d3d11_device_set_khr d3d_device_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromD3D11BufferKHR(
cl_context context,
cl_mem_flags flags,
ID3D11Buffer* resource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromD3D11Texture2DKHR(
cl_context context,
cl_mem_flags flags,
ID3D11Texture2D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromD3D11Texture3DKHR(
cl_context context,
cl_mem_flags flags,
ID3D11Texture3D* resource,
UINT subresource,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireD3D11ObjectsKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseD3D11ObjectsKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_intel_sharing_format_query_d3d11
***************************************************************/
#define cl_intel_sharing_format_query_d3d11 1
#define CL_INTEL_SHARING_FORMAT_QUERY_D3D11_EXTENSION_NAME \
"cl_intel_sharing_format_query_d3d11"
/* when cl_khr_d3d11_sharing is supported */
typedef cl_int (CL_API_CALL *
clGetSupportedD3D11TextureFormatsINTEL_fn)(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint plane,
cl_uint num_entries,
DXGI_FORMAT* d3d11_formats,
cl_uint* num_texture_formats) ;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetSupportedD3D11TextureFormatsINTEL(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint plane,
cl_uint num_entries,
DXGI_FORMAT* d3d11_formats,
cl_uint* num_texture_formats) ;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_D3D11_H_ */

View File

@ -0,0 +1,350 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_DX9_MEDIA_SHARING_H_
#define OPENCL_CL_DX9_MEDIA_SHARING_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#if defined(_WIN32)
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( push )
#pragma warning( disable : 4201 )
#pragma warning( disable : 5105 )
#endif
#endif
#include <d3d9.h>
#if defined(_MSC_VER)
#if _MSC_VER >=1500
#pragma warning( pop )
#endif
#endif
#endif
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_khr_dx9_media_sharing
***************************************************************/
#define cl_khr_dx9_media_sharing 1
#define CL_KHR_DX9_MEDIA_SHARING_EXTENSION_NAME \
"cl_khr_dx9_media_sharing"
typedef cl_uint cl_dx9_media_adapter_type_khr;
typedef cl_uint cl_dx9_media_adapter_set_khr;
#if defined(_WIN32)
typedef struct _cl_dx9_surface_info_khr {
IDirect3DSurface9* resource;
HANDLE shared_handle;
} cl_dx9_surface_info_khr;
#endif /* defined(_WIN32) */
/* Error codes */
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012
#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013
/* cl_media_adapter_type_khr */
#define CL_ADAPTER_D3D9_KHR 0x2020
#define CL_ADAPTER_D3D9EX_KHR 0x2021
#define CL_ADAPTER_DXVA_KHR 0x2022
/* cl_media_adapter_set_khr */
#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023
#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024
/* cl_context_info */
#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025
#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026
#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027
/* cl_mem_info */
#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028
#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029
/* cl_image_info */
#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A
/* cl_command_type */
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C
typedef cl_int (CL_API_CALL *
clGetDeviceIDsFromDX9MediaAdapterKHR_fn)(
cl_platform_id platform,
cl_uint num_media_adapters,
cl_dx9_media_adapter_type_khr* media_adapter_type,
void* media_adapters,
cl_dx9_media_adapter_set_khr media_adapter_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem (CL_API_CALL *
clCreateFromDX9MediaSurfaceKHR_fn)(
cl_context context,
cl_mem_flags flags,
cl_dx9_media_adapter_type_khr adapter_type,
void* surface_info,
cl_uint plane,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireDX9MediaSurfacesKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseDX9MediaSurfacesKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceIDsFromDX9MediaAdapterKHR(
cl_platform_id platform,
cl_uint num_media_adapters,
cl_dx9_media_adapter_type_khr* media_adapter_type,
void* media_adapters,
cl_dx9_media_adapter_set_khr media_adapter_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromDX9MediaSurfaceKHR(
cl_context context,
cl_mem_flags flags,
cl_dx9_media_adapter_type_khr adapter_type,
void* surface_info,
cl_uint plane,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireDX9MediaSurfacesKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseDX9MediaSurfacesKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_intel_dx9_media_sharing
***************************************************************/
#define cl_intel_dx9_media_sharing 1
#define CL_INTEL_DX9_MEDIA_SHARING_EXTENSION_NAME \
"cl_intel_dx9_media_sharing"
typedef cl_uint cl_dx9_device_source_intel;
typedef cl_uint cl_dx9_device_set_intel;
/* Error codes */
#define CL_INVALID_DX9_DEVICE_INTEL -1010
#define CL_INVALID_DX9_RESOURCE_INTEL -1011
#define CL_DX9_RESOURCE_ALREADY_ACQUIRED_INTEL -1012
#define CL_DX9_RESOURCE_NOT_ACQUIRED_INTEL -1013
/* cl_dx9_device_source_intel */
#define CL_D3D9_DEVICE_INTEL 0x4022
#define CL_D3D9EX_DEVICE_INTEL 0x4070
#define CL_DXVA_DEVICE_INTEL 0x4071
/* cl_dx9_device_set_intel */
#define CL_PREFERRED_DEVICES_FOR_DX9_INTEL 0x4024
#define CL_ALL_DEVICES_FOR_DX9_INTEL 0x4025
/* cl_context_info */
#define CL_CONTEXT_D3D9_DEVICE_INTEL 0x4026
#define CL_CONTEXT_D3D9EX_DEVICE_INTEL 0x4072
#define CL_CONTEXT_DXVA_DEVICE_INTEL 0x4073
/* cl_mem_info */
#define CL_MEM_DX9_RESOURCE_INTEL 0x4027
#define CL_MEM_DX9_SHARED_HANDLE_INTEL 0x4074
/* cl_image_info */
#define CL_IMAGE_DX9_PLANE_INTEL 0x4075
/* cl_command_type */
#define CL_COMMAND_ACQUIRE_DX9_OBJECTS_INTEL 0x402A
#define CL_COMMAND_RELEASE_DX9_OBJECTS_INTEL 0x402B
typedef cl_int (CL_API_CALL *
clGetDeviceIDsFromDX9INTEL_fn)(
cl_platform_id platform,
cl_dx9_device_source_intel dx9_device_source,
void* dx9_object,
cl_dx9_device_set_intel dx9_device_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
typedef cl_mem (CL_API_CALL *
clCreateFromDX9MediaSurfaceINTEL_fn)(
cl_context context,
cl_mem_flags flags,
IDirect3DSurface9* resource,
HANDLE sharedHandle,
UINT plane,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireDX9ObjectsINTEL_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_1;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseDX9ObjectsINTEL_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_1;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceIDsFromDX9INTEL(
cl_platform_id platform,
cl_dx9_device_source_intel dx9_device_source,
void* dx9_object,
cl_dx9_device_set_intel dx9_device_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_1;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromDX9MediaSurfaceINTEL(
cl_context context,
cl_mem_flags flags,
IDirect3DSurface9* resource,
HANDLE sharedHandle,
UINT plane,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireDX9ObjectsINTEL(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_1;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseDX9ObjectsINTEL(
cl_command_queue command_queue,
cl_uint num_objects,
cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_1;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_intel_sharing_format_query_dx9
***************************************************************/
#define cl_intel_sharing_format_query_dx9 1
#define CL_INTEL_SHARING_FORMAT_QUERY_DX9_EXTENSION_NAME \
"cl_intel_sharing_format_query_dx9"
/* when cl_khr_dx9_media_sharing or cl_intel_dx9_media_sharing is supported */
typedef cl_int (CL_API_CALL *
clGetSupportedDX9MediaSurfaceFormatsINTEL_fn)(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint plane,
cl_uint num_entries,
D3DFORMAT* dx9_formats,
cl_uint* num_surface_formats) ;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetSupportedDX9MediaSurfaceFormatsINTEL(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint plane,
cl_uint num_entries,
D3DFORMAT* dx9_formats,
cl_uint* num_surface_formats) ;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_DX9_MEDIA_SHARING_H_ */

View File

@ -0,0 +1,18 @@
/*******************************************************************************
* Copyright (c) 2008-2020 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#include <CL/cl_dx9_media_sharing.h>
#pragma message("The Intel DX9 media sharing extensions have been moved into cl_dx9_media_sharing.h. Please include cl_dx9_media_sharing.h directly.")

167
Source/EmberCL/CL/cl_egl.h Normal file
View File

@ -0,0 +1,167 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_EGL_H_
#define OPENCL_CL_EGL_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_khr_egl_image
***************************************************************/
#define cl_khr_egl_image 1
#define CL_KHR_EGL_IMAGE_EXTENSION_NAME \
"cl_khr_egl_image"
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F
#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D
#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E
/* Error type for clCreateFromEGLImageKHR */
#define CL_INVALID_EGL_OBJECT_KHR -1093
#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092
/* CLeglImageKHR is an opaque handle to an EGLImage */
typedef void* CLeglImageKHR;
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
typedef void* CLeglDisplayKHR;
/* properties passed to clCreateFromEGLImageKHR */
typedef intptr_t cl_egl_image_properties_khr;
typedef cl_mem (CL_API_CALL *
clCreateFromEGLImageKHR_fn)(
cl_context context,
CLeglDisplayKHR egldisplay,
CLeglImageKHR eglimage,
cl_mem_flags flags,
const cl_egl_image_properties_khr* properties,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireEGLObjectsKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseEGLObjectsKHR_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromEGLImageKHR(
cl_context context,
CLeglDisplayKHR egldisplay,
CLeglImageKHR eglimage,
cl_mem_flags flags,
const cl_egl_image_properties_khr* properties,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireEGLObjectsKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseEGLObjectsKHR(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_khr_egl_event
***************************************************************/
#define cl_khr_egl_event 1
#define CL_KHR_EGL_EVENT_EXTENSION_NAME \
"cl_khr_egl_event"
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */
/* type CLeglDisplayKHR */
/* CLeglSyncKHR is an opaque handle to an EGLSync object */
typedef void* CLeglSyncKHR;
typedef cl_event (CL_API_CALL *
clCreateEventFromEGLSyncKHR_fn)(
cl_context context,
CLeglSyncKHR sync,
CLeglDisplayKHR display,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_event CL_API_CALL
clCreateEventFromEGLSyncKHR(
cl_context context,
CLeglSyncKHR sync,
CLeglDisplayKHR display,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_EGL_H_ */

3223
Source/EmberCL/CL/cl_ext.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
/*******************************************************************************
* Copyright (c) 2008-2020 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
#include <CL/cl_ext.h>
#pragma message("The Intel extensions have been moved into cl_ext.h. Please include cl_ext.h directly.")

372
Source/EmberCL/CL/cl_gl.h Normal file
View File

@ -0,0 +1,372 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_GL_H_
#define OPENCL_CL_GL_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_khr_gl_sharing
***************************************************************/
#define cl_khr_gl_sharing 1
#define CL_KHR_GL_SHARING_EXTENSION_NAME \
"cl_khr_gl_sharing"
typedef cl_uint cl_gl_context_info;
/* Error codes */
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000
/* cl_gl_context_info */
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007
/* Additional cl_context_properties */
#define CL_GL_CONTEXT_KHR 0x2008
#define CL_EGL_DISPLAY_KHR 0x2009
#define CL_GLX_DISPLAY_KHR 0x200A
#define CL_WGL_HDC_KHR 0x200B
#define CL_CGL_SHAREGROUP_KHR 0x200C
typedef cl_uint cl_gl_object_type;
typedef cl_uint cl_gl_texture_info;
typedef cl_uint cl_gl_platform_info;
/* cl_gl_object_type */
#define CL_GL_OBJECT_BUFFER 0x2000
#define CL_GL_OBJECT_TEXTURE2D 0x2001
#define CL_GL_OBJECT_TEXTURE3D 0x2002
#define CL_GL_OBJECT_RENDERBUFFER 0x2003
#if defined(CL_VERSION_1_2)
/* cl_gl_object_type */
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E
#define CL_GL_OBJECT_TEXTURE1D 0x200F
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011
#endif /* defined(CL_VERSION_1_2) */
/* cl_gl_texture_info */
#define CL_GL_TEXTURE_TARGET 0x2004
#define CL_GL_MIPMAP_LEVEL 0x2005
typedef cl_int (CL_API_CALL *
clGetGLContextInfoKHR_fn)(
const cl_context_properties* properties,
cl_gl_context_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_mem (CL_API_CALL *
clCreateFromGLBuffer_fn)(
cl_context context,
cl_mem_flags flags,
cl_GLuint bufobj,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetGLContextInfoKHR(
const cl_context_properties* properties,
cl_gl_context_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLBuffer(
cl_context context,
cl_mem_flags flags,
cl_GLuint bufobj,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#if defined(CL_VERSION_1_2)
typedef cl_mem (CL_API_CALL *
clCreateFromGLTexture_fn)(
cl_context context,
cl_mem_flags flags,
cl_GLenum target,
cl_GLint miplevel,
cl_GLuint texture,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLTexture(
cl_context context,
cl_mem_flags flags,
cl_GLenum target,
cl_GLint miplevel,
cl_GLuint texture,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#endif /* defined(CL_VERSION_1_2) */
typedef cl_mem (CL_API_CALL *
clCreateFromGLRenderbuffer_fn)(
cl_context context,
cl_mem_flags flags,
cl_GLuint renderbuffer,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clGetGLObjectInfo_fn)(
cl_mem memobj,
cl_gl_object_type* gl_object_type,
cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clGetGLTextureInfo_fn)(
cl_mem memobj,
cl_gl_texture_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireGLObjects_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseGLObjects_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLRenderbuffer(
cl_context context,
cl_mem_flags flags,
cl_GLuint renderbuffer,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clGetGLObjectInfo(
cl_mem memobj,
cl_gl_object_type* gl_object_type,
cl_GLuint* gl_object_name) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clGetGLTextureInfo(
cl_mem memobj,
cl_gl_texture_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireGLObjects(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseGLObjects(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_0;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/* OpenCL 1.0 APIs that were deprecated in OpenCL 1.2 */
typedef cl_mem (CL_API_CALL *
clCreateFromGLTexture2D_fn)(
cl_context context,
cl_mem_flags flags,
cl_GLenum target,
cl_GLint miplevel,
cl_GLuint texture,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
typedef cl_mem (CL_API_CALL *
clCreateFromGLTexture3D_fn)(
cl_context context,
cl_mem_flags flags,
cl_GLenum target,
cl_GLint miplevel,
cl_GLuint texture,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLTexture2D(
cl_context context,
cl_mem_flags flags,
cl_GLenum target,
cl_GLint miplevel,
cl_GLuint texture,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromGLTexture3D(
cl_context context,
cl_mem_flags flags,
cl_GLenum target,
cl_GLint miplevel,
cl_GLuint texture,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_khr_gl_event
***************************************************************/
#define cl_khr_gl_event 1
#define CL_KHR_GL_EVENT_EXTENSION_NAME \
"cl_khr_gl_event"
typedef struct __GLsync * cl_GLsync;
/* cl_command_type */
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D
typedef cl_event (CL_API_CALL *
clCreateEventFromGLsyncKHR_fn)(
cl_context context,
cl_GLsync sync,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
#if !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_event CL_API_CALL
clCreateEventFromGLsyncKHR(
cl_context context,
cl_GLsync sync,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_1;
#endif /* !defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_khr_gl_depth_images
***************************************************************/
#define cl_khr_gl_depth_images 1
#define CL_KHR_GL_DEPTH_IMAGES_EXTENSION_NAME \
"cl_khr_gl_depth_images"
#if !defined(CL_VERSION_1_2)
/* cl_channel_order - defined in CL.h for OpenCL 1.2 and newer */
#define CL_DEPTH_STENCIL 0x10BE
#endif /* !defined(CL_VERSION_1_2) */
#if !defined(CL_VERSION_1_2)
/* cl_channel_type - defined in CL.h for OpenCL 1.2 and newer */
#define CL_UNORM_INT24 0x10DF
#endif /* !defined(CL_VERSION_1_2) */
/***************************************************************
* cl_khr_gl_msaa_sharing
***************************************************************/
#define cl_khr_gl_msaa_sharing 1
#define CL_KHR_GL_MSAA_SHARING_EXTENSION_NAME \
"cl_khr_gl_msaa_sharing"
/* cl_gl_texture_info */
#define CL_GL_NUM_SAMPLES 0x2012
/***************************************************************
* cl_intel_sharing_format_query_gl
***************************************************************/
#define cl_intel_sharing_format_query_gl 1
#define CL_INTEL_SHARING_FORMAT_QUERY_GL_EXTENSION_NAME \
"cl_intel_sharing_format_query_gl"
/* when cl_khr_gl_sharing is supported */
typedef cl_int (CL_API_CALL *
clGetSupportedGLTextureFormatsINTEL_fn)(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint num_entries,
cl_GLenum* gl_formats,
cl_uint* num_texture_formats) ;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetSupportedGLTextureFormatsINTEL(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint num_entries,
cl_GLenum* gl_formats,
cl_uint* num_texture_formats) ;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_GL_H_ */

View File

@ -0,0 +1,18 @@
/*******************************************************************************
* Copyright (c) 2008-2021 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#include <CL/cl_gl.h>
#pragma message("The extensions in cl_gl_ext.h have been moved into cl_gl.h. Please include cl_gl.h directly.")

440
Source/EmberCL/CL/cl_half.h Normal file
View File

@ -0,0 +1,440 @@
/*******************************************************************************
* Copyright (c) 2019-2020 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
/**
* This is a header-only utility library that provides OpenCL host code with
* routines for converting to/from cl_half values.
*
* Example usage:
*
* #include <CL/cl_half.h>
* ...
* cl_half h = cl_half_from_float(0.5f, CL_HALF_RTE);
* cl_float f = cl_half_to_float(h);
*/
#ifndef OPENCL_CL_HALF_H
#define OPENCL_CL_HALF_H
#include <CL/cl_platform.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* Rounding mode used when converting to cl_half.
*/
typedef enum
{
CL_HALF_RTE, // round to nearest even
CL_HALF_RTZ, // round towards zero
CL_HALF_RTP, // round towards positive infinity
CL_HALF_RTN, // round towards negative infinity
} cl_half_rounding_mode;
/* Private utility macros. */
#define CL_HALF_EXP_MASK 0x7C00
#define CL_HALF_MAX_FINITE_MAG 0x7BFF
/*
* Utility to deal with values that overflow when converting to half precision.
*/
static inline cl_half cl_half_handle_overflow(cl_half_rounding_mode rounding_mode,
uint16_t sign)
{
if (rounding_mode == CL_HALF_RTZ)
{
// Round overflow towards zero -> largest finite number (preserving sign)
return (sign << 15) | CL_HALF_MAX_FINITE_MAG;
}
else if (rounding_mode == CL_HALF_RTP && sign)
{
// Round negative overflow towards positive infinity -> most negative finite number
return (1 << 15) | CL_HALF_MAX_FINITE_MAG;
}
else if (rounding_mode == CL_HALF_RTN && !sign)
{
// Round positive overflow towards negative infinity -> largest finite number
return CL_HALF_MAX_FINITE_MAG;
}
// Overflow to infinity
return (sign << 15) | CL_HALF_EXP_MASK;
}
/*
* Utility to deal with values that underflow when converting to half precision.
*/
static inline cl_half cl_half_handle_underflow(cl_half_rounding_mode rounding_mode,
uint16_t sign)
{
if (rounding_mode == CL_HALF_RTP && !sign)
{
// Round underflow towards positive infinity -> smallest positive value
return (sign << 15) | 1;
}
else if (rounding_mode == CL_HALF_RTN && sign)
{
// Round underflow towards negative infinity -> largest negative value
return (sign << 15) | 1;
}
// Flush to zero
return (sign << 15);
}
/**
* Convert a cl_float to a cl_half.
*/
static inline cl_half cl_half_from_float(cl_float f, cl_half_rounding_mode rounding_mode)
{
// Type-punning to get direct access to underlying bits
union
{
cl_float f;
uint32_t i;
} f32;
f32.f = f;
// Extract sign bit
uint16_t sign = f32.i >> 31;
// Extract FP32 exponent and mantissa
uint32_t f_exp = (f32.i >> (CL_FLT_MANT_DIG - 1)) & 0xFF;
uint32_t f_mant = f32.i & ((1 << (CL_FLT_MANT_DIG - 1)) - 1);
// Remove FP32 exponent bias
int32_t exp = f_exp - CL_FLT_MAX_EXP + 1;
// Add FP16 exponent bias
uint16_t h_exp = (uint16_t)(exp + CL_HALF_MAX_EXP - 1);
// Position of the bit that will become the FP16 mantissa LSB
uint32_t lsb_pos = CL_FLT_MANT_DIG - CL_HALF_MANT_DIG;
// Check for NaN / infinity
if (f_exp == 0xFF)
{
if (f_mant)
{
// NaN -> propagate mantissa and silence it
uint16_t h_mant = (uint16_t)(f_mant >> lsb_pos);
h_mant |= 0x200;
return (sign << 15) | CL_HALF_EXP_MASK | h_mant;
}
else
{
// Infinity -> zero mantissa
return (sign << 15) | CL_HALF_EXP_MASK;
}
}
// Check for zero
if (!f_exp && !f_mant)
{
return (sign << 15);
}
// Check for overflow
if (exp >= CL_HALF_MAX_EXP)
{
return cl_half_handle_overflow(rounding_mode, sign);
}
// Check for underflow
if (exp < (CL_HALF_MIN_EXP - CL_HALF_MANT_DIG - 1))
{
return cl_half_handle_underflow(rounding_mode, sign);
}
// Check for value that will become denormal
if (exp < -14)
{
// Denormal -> include the implicit 1 from the FP32 mantissa
h_exp = 0;
f_mant |= 1 << (CL_FLT_MANT_DIG - 1);
// Mantissa shift amount depends on exponent
lsb_pos = -exp + (CL_FLT_MANT_DIG - 25);
}
// Generate FP16 mantissa by shifting FP32 mantissa
uint16_t h_mant = (uint16_t)(f_mant >> lsb_pos);
// Check whether we need to round
uint32_t halfway = 1 << (lsb_pos - 1);
uint32_t mask = (halfway << 1) - 1;
switch (rounding_mode)
{
case CL_HALF_RTE:
if ((f_mant & mask) > halfway)
{
// More than halfway -> round up
h_mant += 1;
}
else if ((f_mant & mask) == halfway)
{
// Exactly halfway -> round to nearest even
if (h_mant & 0x1)
h_mant += 1;
}
break;
case CL_HALF_RTZ:
// Mantissa has already been truncated -> do nothing
break;
case CL_HALF_RTP:
if ((f_mant & mask) && !sign)
{
// Round positive numbers up
h_mant += 1;
}
break;
case CL_HALF_RTN:
if ((f_mant & mask) && sign)
{
// Round negative numbers down
h_mant += 1;
}
break;
}
// Check for mantissa overflow
if (h_mant & 0x400)
{
h_exp += 1;
h_mant = 0;
}
return (sign << 15) | (h_exp << 10) | h_mant;
}
/**
* Convert a cl_double to a cl_half.
*/
static inline cl_half cl_half_from_double(cl_double d, cl_half_rounding_mode rounding_mode)
{
// Type-punning to get direct access to underlying bits
union
{
cl_double d;
uint64_t i;
} f64;
f64.d = d;
// Extract sign bit
uint16_t sign = f64.i >> 63;
// Extract FP64 exponent and mantissa
uint64_t d_exp = (f64.i >> (CL_DBL_MANT_DIG - 1)) & 0x7FF;
uint64_t d_mant = f64.i & (((uint64_t)1 << (CL_DBL_MANT_DIG - 1)) - 1);
// Remove FP64 exponent bias
int64_t exp = d_exp - CL_DBL_MAX_EXP + 1;
// Add FP16 exponent bias
uint16_t h_exp = (uint16_t)(exp + CL_HALF_MAX_EXP - 1);
// Position of the bit that will become the FP16 mantissa LSB
uint32_t lsb_pos = CL_DBL_MANT_DIG - CL_HALF_MANT_DIG;
// Check for NaN / infinity
if (d_exp == 0x7FF)
{
if (d_mant)
{
// NaN -> propagate mantissa and silence it
uint16_t h_mant = (uint16_t)(d_mant >> lsb_pos);
h_mant |= 0x200;
return (sign << 15) | CL_HALF_EXP_MASK | h_mant;
}
else
{
// Infinity -> zero mantissa
return (sign << 15) | CL_HALF_EXP_MASK;
}
}
// Check for zero
if (!d_exp && !d_mant)
{
return (sign << 15);
}
// Check for overflow
if (exp >= CL_HALF_MAX_EXP)
{
return cl_half_handle_overflow(rounding_mode, sign);
}
// Check for underflow
if (exp < (CL_HALF_MIN_EXP - CL_HALF_MANT_DIG - 1))
{
return cl_half_handle_underflow(rounding_mode, sign);
}
// Check for value that will become denormal
if (exp < -14)
{
// Include the implicit 1 from the FP64 mantissa
h_exp = 0;
d_mant |= (uint64_t)1 << (CL_DBL_MANT_DIG - 1);
// Mantissa shift amount depends on exponent
lsb_pos = (uint32_t)(-exp + (CL_DBL_MANT_DIG - 25));
}
// Generate FP16 mantissa by shifting FP64 mantissa
uint16_t h_mant = (uint16_t)(d_mant >> lsb_pos);
// Check whether we need to round
uint64_t halfway = (uint64_t)1 << (lsb_pos - 1);
uint64_t mask = (halfway << 1) - 1;
switch (rounding_mode)
{
case CL_HALF_RTE:
if ((d_mant & mask) > halfway)
{
// More than halfway -> round up
h_mant += 1;
}
else if ((d_mant & mask) == halfway)
{
// Exactly halfway -> round to nearest even
if (h_mant & 0x1)
h_mant += 1;
}
break;
case CL_HALF_RTZ:
// Mantissa has already been truncated -> do nothing
break;
case CL_HALF_RTP:
if ((d_mant & mask) && !sign)
{
// Round positive numbers up
h_mant += 1;
}
break;
case CL_HALF_RTN:
if ((d_mant & mask) && sign)
{
// Round negative numbers down
h_mant += 1;
}
break;
}
// Check for mantissa overflow
if (h_mant & 0x400)
{
h_exp += 1;
h_mant = 0;
}
return (sign << 15) | (h_exp << 10) | h_mant;
}
/**
* Convert a cl_half to a cl_float.
*/
static inline cl_float cl_half_to_float(cl_half h)
{
// Type-punning to get direct access to underlying bits
union
{
cl_float f;
uint32_t i;
} f32;
// Extract sign bit
uint16_t sign = h >> 15;
// Extract FP16 exponent and mantissa
uint16_t h_exp = (h >> (CL_HALF_MANT_DIG - 1)) & 0x1F;
uint16_t h_mant = h & 0x3FF;
// Remove FP16 exponent bias
int32_t exp = h_exp - CL_HALF_MAX_EXP + 1;
// Add FP32 exponent bias
uint32_t f_exp = exp + CL_FLT_MAX_EXP - 1;
// Check for NaN / infinity
if (h_exp == 0x1F)
{
if (h_mant)
{
// NaN -> propagate mantissa and silence it
uint32_t f_mant = h_mant << (CL_FLT_MANT_DIG - CL_HALF_MANT_DIG);
f_mant |= 0x400000;
f32.i = (sign << 31) | 0x7F800000 | f_mant;
return f32.f;
}
else
{
// Infinity -> zero mantissa
f32.i = (sign << 31) | 0x7F800000;
return f32.f;
}
}
// Check for zero / denormal
if (h_exp == 0)
{
if (h_mant == 0)
{
// Zero -> zero exponent
f_exp = 0;
}
else
{
// Denormal -> normalize it
// - Shift mantissa to make most-significant 1 implicit
// - Adjust exponent accordingly
uint32_t shift = 0;
while ((h_mant & 0x400) == 0)
{
h_mant <<= 1;
shift++;
}
h_mant &= 0x3FF;
f_exp -= shift - 1;
}
}
f32.i = (sign << 31) | (f_exp << 23) | (h_mant << 13);
return f32.f;
}
#undef CL_HALF_EXP_MASK
#undef CL_HALF_MAX_FINITE_MAG
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_HALF_H */

1294
Source/EmberCL/CL/cl_icd.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,124 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_LAYER_H_
#define OPENCL_CL_LAYER_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#include <CL/cl_icd.h>
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_loader_layers
***************************************************************/
#define cl_loader_layers 1
#define CL_LOADER_LAYERS_EXTENSION_NAME \
"cl_loader_layers"
typedef cl_uint cl_layer_info;
typedef cl_uint cl_layer_api_version;
/* cl_layer_info */
#define CL_LAYER_API_VERSION 0x4240
#define CL_LAYER_NAME 0x4241
/* Misc API enums */
#define CL_LAYER_API_VERSION_100 100
typedef cl_int (CL_API_CALL *
clGetLayerInfo_fn)(
cl_layer_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) ;
typedef cl_int (CL_API_CALL *
clInitLayer_fn)(
cl_uint num_entries,
const cl_icd_dispatch* target_dispatch,
cl_uint* num_entries_ret,
const cl_icd_dispatch** layer_dispatch_ret) ;
/*
** The function pointer typedefs prefixed with "pfn_" are provided for
** compatibility with earlier versions of the headers. New code is
** encouraged to use the function pointer typedefs that are suffixed with
** "_fn" instead, for consistency.
*/
typedef cl_int (CL_API_CALL *
pfn_clGetLayerInfo)(
cl_layer_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) ;
typedef cl_int (CL_API_CALL *
pfn_clInitLayer)(
cl_uint num_entries,
const cl_icd_dispatch* target_dispatch,
cl_uint* num_entries_ret,
const cl_icd_dispatch** layer_dispatch_ret) ;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetLayerInfo(
cl_layer_info param_name,
size_t param_value_size,
void* param_value,
size_t* param_value_size_ret) ;
extern CL_API_ENTRY cl_int CL_API_CALL
clInitLayer(
cl_uint num_entries,
const cl_icd_dispatch* target_dispatch,
cl_uint* num_entries_ret,
const cl_icd_dispatch** layer_dispatch_ret) ;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_LAYER_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,199 @@
/*******************************************************************************
* Copyright (c) 2008-2023 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_
#define OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_
/*
** This header is generated from the Khronos OpenCL XML API Registry.
*/
#include <va/va.h>
#include <CL/cl.h>
/* CL_NO_PROTOTYPES implies CL_NO_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_PROTOTYPES) && !defined(CL_NO_EXTENSION_PROTOTYPES)
#define CL_NO_EXTENSION_PROTOTYPES
#endif
/* CL_NO_EXTENSION_PROTOTYPES implies
CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES and
CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES: */
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#if defined(CL_NO_EXTENSION_PROTOTYPES) && \
!defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
#define CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES
#endif
#ifdef __cplusplus
extern "C" {
#endif
/***************************************************************
* cl_intel_sharing_format_query_va_api
***************************************************************/
#define cl_intel_sharing_format_query_va_api 1
#define CL_INTEL_SHARING_FORMAT_QUERY_VA_API_EXTENSION_NAME \
"cl_intel_sharing_format_query_va_api"
/* when cl_intel_va_api_media_sharing is supported */
typedef cl_int (CL_API_CALL *
clGetSupportedVA_APIMediaSurfaceFormatsINTEL_fn)(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint plane,
cl_uint num_entries,
VAImageFormat* va_api_formats,
cl_uint* num_surface_formats) ;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetSupportedVA_APIMediaSurfaceFormatsINTEL(
cl_context context,
cl_mem_flags flags,
cl_mem_object_type image_type,
cl_uint plane,
cl_uint num_entries,
VAImageFormat* va_api_formats,
cl_uint* num_surface_formats) ;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
/***************************************************************
* cl_intel_va_api_media_sharing
***************************************************************/
#define cl_intel_va_api_media_sharing 1
#define CL_INTEL_VA_API_MEDIA_SHARING_EXTENSION_NAME \
"cl_intel_va_api_media_sharing"
typedef cl_uint cl_va_api_device_source_intel;
typedef cl_uint cl_va_api_device_set_intel;
/* Error codes */
#define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098
#define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099
#define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100
#define CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL -1101
/* cl_va_api_device_source_intel */
#define CL_VA_API_DISPLAY_INTEL 0x4094
/* cl_va_api_device_set_intel */
#define CL_PREFERRED_DEVICES_FOR_VA_API_INTEL 0x4095
#define CL_ALL_DEVICES_FOR_VA_API_INTEL 0x4096
/* cl_context_info */
#define CL_CONTEXT_VA_API_DISPLAY_INTEL 0x4097
/* cl_mem_info */
#define CL_MEM_VA_API_MEDIA_SURFACE_INTEL 0x4098
/* cl_image_info */
#define CL_IMAGE_VA_API_PLANE_INTEL 0x4099
/* cl_command_type */
#define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A
#define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B
typedef cl_int (CL_API_CALL *
clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)(
cl_platform_id platform,
cl_va_api_device_source_intel media_adapter_type,
void* media_adapter,
cl_va_api_device_set_intel media_adapter_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
typedef cl_mem (CL_API_CALL *
clCreateFromVA_APIMediaSurfaceINTEL_fn)(
cl_context context,
cl_mem_flags flags,
VASurfaceID* surface,
cl_uint plane,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int (CL_API_CALL *
clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
typedef cl_int (CL_API_CALL *
clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
#if !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES)
extern CL_API_ENTRY cl_int CL_API_CALL
clGetDeviceIDsFromVA_APIMediaAdapterINTEL(
cl_platform_id platform,
cl_va_api_device_source_intel media_adapter_type,
void* media_adapter,
cl_va_api_device_set_intel media_adapter_set,
cl_uint num_entries,
cl_device_id* devices,
cl_uint* num_devices) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_mem CL_API_CALL
clCreateFromVA_APIMediaSurfaceINTEL(
cl_context context,
cl_mem_flags flags,
VASurfaceID* surface,
cl_uint plane,
cl_int* errcode_ret) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueAcquireVA_APIMediaSurfacesINTEL(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
extern CL_API_ENTRY cl_int CL_API_CALL
clEnqueueReleaseVA_APIMediaSurfacesINTEL(
cl_command_queue command_queue,
cl_uint num_objects,
const cl_mem* mem_objects,
cl_uint num_events_in_wait_list,
const cl_event* event_wait_list,
cl_event* event) CL_API_SUFFIX__VERSION_1_2;
#endif /* !defined(CL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES) */
#ifdef __cplusplus
}
#endif
#endif /* OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H_ */

View File

@ -0,0 +1,81 @@
/*******************************************************************************
* Copyright (c) 2018-2020 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef __CL_VERSION_H
#define __CL_VERSION_H
/* Detect which version to target */
#if !defined(CL_TARGET_OPENCL_VERSION)
#pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 300 (OpenCL 3.0)")
#define CL_TARGET_OPENCL_VERSION 300
#endif
#if CL_TARGET_OPENCL_VERSION != 100 && \
CL_TARGET_OPENCL_VERSION != 110 && \
CL_TARGET_OPENCL_VERSION != 120 && \
CL_TARGET_OPENCL_VERSION != 200 && \
CL_TARGET_OPENCL_VERSION != 210 && \
CL_TARGET_OPENCL_VERSION != 220 && \
CL_TARGET_OPENCL_VERSION != 300
#pragma message("cl_version: CL_TARGET_OPENCL_VERSION is not a valid value (100, 110, 120, 200, 210, 220, 300). Defaulting to 300 (OpenCL 3.0)")
#undef CL_TARGET_OPENCL_VERSION
#define CL_TARGET_OPENCL_VERSION 300
#endif
/* OpenCL Version */
#if CL_TARGET_OPENCL_VERSION >= 300 && !defined(CL_VERSION_3_0)
#define CL_VERSION_3_0 1
#endif
#if CL_TARGET_OPENCL_VERSION >= 220 && !defined(CL_VERSION_2_2)
#define CL_VERSION_2_2 1
#endif
#if CL_TARGET_OPENCL_VERSION >= 210 && !defined(CL_VERSION_2_1)
#define CL_VERSION_2_1 1
#endif
#if CL_TARGET_OPENCL_VERSION >= 200 && !defined(CL_VERSION_2_0)
#define CL_VERSION_2_0 1
#endif
#if CL_TARGET_OPENCL_VERSION >= 120 && !defined(CL_VERSION_1_2)
#define CL_VERSION_1_2 1
#endif
#if CL_TARGET_OPENCL_VERSION >= 110 && !defined(CL_VERSION_1_1)
#define CL_VERSION_1_1 1
#endif
#if CL_TARGET_OPENCL_VERSION >= 100 && !defined(CL_VERSION_1_0)
#define CL_VERSION_1_0 1
#endif
/* Allow deprecated APIs for older OpenCL versions. */
#if CL_TARGET_OPENCL_VERSION <= 220 && !defined(CL_USE_DEPRECATED_OPENCL_2_2_APIS)
#define CL_USE_DEPRECATED_OPENCL_2_2_APIS
#endif
#if CL_TARGET_OPENCL_VERSION <= 210 && !defined(CL_USE_DEPRECATED_OPENCL_2_1_APIS)
#define CL_USE_DEPRECATED_OPENCL_2_1_APIS
#endif
#if CL_TARGET_OPENCL_VERSION <= 200 && !defined(CL_USE_DEPRECATED_OPENCL_2_0_APIS)
#define CL_USE_DEPRECATED_OPENCL_2_0_APIS
#endif
#if CL_TARGET_OPENCL_VERSION <= 120 && !defined(CL_USE_DEPRECATED_OPENCL_1_2_APIS)
#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
#endif
#if CL_TARGET_OPENCL_VERSION <= 110 && !defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
#define CL_USE_DEPRECATED_OPENCL_1_1_APIS
#endif
#if CL_TARGET_OPENCL_VERSION <= 100 && !defined(CL_USE_DEPRECATED_OPENCL_1_0_APIS)
#define CL_USE_DEPRECATED_OPENCL_1_0_APIS
#endif
#endif /* __CL_VERSION_H */

View File

@ -0,0 +1,32 @@
/*******************************************************************************
* Copyright (c) 2008-2021 The Khronos Group Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
#ifndef __OPENCL_H
#define __OPENCL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <CL/cl.h>
#include <CL/cl_gl.h>
#include <CL/cl_ext.h>
#ifdef __cplusplus
}
#endif
#endif /* __OPENCL_H */

11103
Source/EmberCL/CL/opencl.hpp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -70,7 +70,7 @@ private:
string m_GaussianDESsWithoutScfNoCacheKernel; string m_GaussianDESsWithoutScfNoCacheKernel;
string m_GaussianDESsWithoutScfNoCacheEntryPoint = "GaussianDESsWithoutScfNoCacheKernel"; string m_GaussianDESsWithoutScfNoCacheEntryPoint = "GaussianDESsWithoutScfNoCacheKernel";
bool m_DoublePrecision; bool m_DoublePrecision = false;
bool m_NVidia; bool m_NVidia = false;
}; };
} }

View File

@ -10,6 +10,13 @@
#define WIN32_LEAN_AND_MEAN//Exclude rarely-used stuff from Windows headers. #define WIN32_LEAN_AND_MEAN//Exclude rarely-used stuff from Windows headers.
#define _USE_MATH_DEFINES #define _USE_MATH_DEFINES
//#define CL_USE_DEPRECATED_OPENCL_1_2_APIS 1 //#define CL_USE_DEPRECATED_OPENCL_1_2_APIS 1
//#define CL_USE_DEPRECATED_OPENCL_2_0_APIS 1
//For reasons unknown, QtCreator cannot use any value higher than 120 with these, because
//it causes errors when compiling opencl.hpp. This happens even though it's using MSVC under the hood
//and it compiles in MSVC when using Visual Studio.
#define CL_TARGET_OPENCL_VERSION 300
#define CL_HPP_TARGET_OPENCL_VERSION 300
#define CL_HPP_MINIMUM_OPENCL_VERSION 300
#include "Timing.h" #include "Timing.h"
#include "Renderer.h" #include "Renderer.h"
@ -26,7 +33,7 @@
#endif #endif
#include <utility> #include <utility>
#include <CL/cl.hpp> #include <CL/opencl.hpp>
#include <algorithm> #include <algorithm>
#include <atomic> #include <atomic>
#include <cstdio> #include <cstdio>

View File

@ -322,18 +322,18 @@ static constexpr char DensityFilterCLStructString[] =
template <typename T> template <typename T>
struct ALIGN SpatialFilterCL struct ALIGN SpatialFilterCL
{ {
uint m_SuperRasW; uint m_SuperRasW = 0;
uint m_SuperRasH; uint m_SuperRasH = 0;
uint m_FinalRasW; uint m_FinalRasW = 0;
uint m_FinalRasH; uint m_FinalRasH = 0;
uint m_Supersample; uint m_Supersample = 0;
uint m_FilterWidth; uint m_FilterWidth = 0;
uint m_DensityFilterOffset; uint m_DensityFilterOffset = 0;
uint m_YAxisUp; uint m_YAxisUp = 0;
T m_Vibrancy; T m_Vibrancy = 0;
T m_HighlightPower; T m_HighlightPower = 0;
T m_Gamma; T m_Gamma = 0;
T m_LinRange; T m_LinRange = 0;
Color<T> m_Background; Color<T> m_Background;
}; };

View File

@ -467,7 +467,7 @@ bool OpenCLWrapper::WriteImage2D(size_t index, bool shared, ::size_t width, ::si
{ {
cl_int err; cl_int err;
cl::Event e; cl::Event e;
cl::size_t<3> origin, region; cl::array<cl::size_type, 3> origin, region;
origin[0] = 0; origin[0] = 0;
origin[1] = 0; origin[1] = 0;
origin[2] = 0; origin[2] = 0;
@ -539,7 +539,7 @@ bool OpenCLWrapper::ReadImage(size_t imageIndex, ::size_t width, ::size_t height
{ {
cl_int err; cl_int err;
cl::Event e; cl::Event e;
cl::size_t<3> origin, region; cl::array<cl::size_type, 3> origin, region;
origin[0] = 0; origin[0] = 0;
origin[1] = 0; origin[1] = 0;
origin[2] = 0; origin[2] = 0;
@ -799,7 +799,7 @@ bool OpenCLWrapper::EnqueueReleaseGLObjects(cl::ImageGL& image)
/// </summary> /// </summary>
/// <param name="memObjects">The memory objects to acquire</param> /// <param name="memObjects">The memory objects to acquire</param>
/// <returns>True if success, else false.</returns> /// <returns>True if success, else false.</returns>
bool OpenCLWrapper::EnqueueAcquireGLObjects(const VECTOR_CLASS<cl::Memory>* memObjects) bool OpenCLWrapper::EnqueueAcquireGLObjects(const cl::vector<cl::Memory>* memObjects)
{ {
if (m_Init && m_Shared) if (m_Init && m_Shared)
{ {
@ -816,7 +816,7 @@ bool OpenCLWrapper::EnqueueAcquireGLObjects(const VECTOR_CLASS<cl::Memory>* memO
/// </summary> /// </summary>
/// <param name="memObjects">The memory objects to release</param> /// <param name="memObjects">The memory objects to release</param>
/// <returns>True if success, else false.</returns> /// <returns>True if success, else false.</returns>
bool OpenCLWrapper::EnqueueReleaseGLObjects(const VECTOR_CLASS<cl::Memory>* memObjects) bool OpenCLWrapper::EnqueueReleaseGLObjects(const cl::vector<cl::Memory>* memObjects)
{ {
if (m_Init && m_Shared) if (m_Init && m_Shared)
{ {
@ -989,7 +989,7 @@ size_t OpenCLWrapper::MaxAllocSize() const { return m_MaxAllocSize; }
/// <summary> /// <summary>
/// Clear the error report for this class as well as the global OpenCLInfo instance. /// Clear the error report for this class as well as the global OpenCLInfo instance.
/// </summary> /// </summary>
void OpenCLWrapper::ClearErrorReport() void OpenCLWrapper::ClearErrorReport() noexcept
{ {
EmberReport::ClearErrorReport(); EmberReport::ClearErrorReport();
m_Info->ClearErrorReport(); m_Info->ClearErrorReport();
@ -1056,8 +1056,9 @@ bool OpenCLWrapper::CreateSPK(const string& name, const string& program, const s
if (m_Init) if (m_Init)
{ {
cl_int err; cl_int err;
vector<std::string> programvec{ program };
spk.m_Name = name; spk.m_Name = name;
spk.m_Source = cl::Program::Sources(1, std::make_pair(program.c_str(), program.length() + 1)); spk.m_Source = cl::Program::Sources(programvec);
spk.m_Program = cl::Program(m_Context, spk.m_Source); spk.m_Program = cl::Program(m_Context, spk.m_Source);
if (doublePrecision) if (doublePrecision)

View File

@ -28,7 +28,7 @@ public:
class EMBERCL_API NamedBuffer class EMBERCL_API NamedBuffer
{ {
public: public:
NamedBuffer() NamedBuffer() noexcept
{ {
} }
@ -48,7 +48,7 @@ public:
class EMBERCL_API NamedImage2D class EMBERCL_API NamedImage2D
{ {
public: public:
NamedImage2D() NamedImage2D() noexcept
{ {
} }
@ -69,7 +69,7 @@ public:
class EMBERCL_API NamedImage2DGL class EMBERCL_API NamedImage2DGL
{ {
public: public:
NamedImage2DGL() NamedImage2DGL() noexcept
{ {
} }
@ -133,8 +133,8 @@ public:
bool EnqueueAcquireGLObjects(cl::ImageGL& image); bool EnqueueAcquireGLObjects(cl::ImageGL& image);
bool EnqueueReleaseGLObjects(const string& name); bool EnqueueReleaseGLObjects(const string& name);
bool EnqueueReleaseGLObjects(cl::ImageGL& image); bool EnqueueReleaseGLObjects(cl::ImageGL& image);
bool EnqueueAcquireGLObjects(const VECTOR_CLASS<cl::Memory>* memObjects = nullptr); bool EnqueueAcquireGLObjects(const cl::vector<cl::Memory>* memObjects = nullptr);
bool EnqueueReleaseGLObjects(const VECTOR_CLASS<cl::Memory>* memObjects = nullptr); bool EnqueueReleaseGLObjects(const cl::vector<cl::Memory>* memObjects = nullptr);
bool CreateSampler(cl::Sampler& sampler, cl_bool normalizedCoords, cl_addressing_mode addressingMode, cl_filter_mode filterMode); bool CreateSampler(cl::Sampler& sampler, cl_bool normalizedCoords, cl_addressing_mode addressingMode, cl_filter_mode filterMode);
//Arguments. //Arguments.
@ -180,9 +180,9 @@ public:
size_t MaxAllocSize() const; size_t MaxAllocSize() const;
//Public virtual functions overridden from base classes. //Public virtual functions overridden from base classes.
virtual void ClearErrorReport() override; void ClearErrorReport() noexcept override;
virtual string ErrorReportString() override; string ErrorReportString() override;
virtual vector<string> ErrorReport() override; vector<string> ErrorReport() override;
static void MakeEvenGridDims(size_t blockW, size_t blockH, size_t& gridW, size_t& gridH); static void MakeEvenGridDims(size_t blockW, size_t blockH, size_t& gridW, size_t& gridH);
@ -194,8 +194,8 @@ private:
size_t m_PlatformIndex = 0; size_t m_PlatformIndex = 0;
size_t m_DeviceIndex = 0; size_t m_DeviceIndex = 0;
size_t m_LocalMemSize = 0; size_t m_LocalMemSize = 0;
size_t m_GlobalMemSize; size_t m_GlobalMemSize = 0;
size_t m_MaxAllocSize; size_t m_MaxAllocSize = 0;
cl::Platform m_Platform; cl::Platform m_Platform;
cl::Context m_Context; cl::Context m_Context;
cl::Device m_Device; cl::Device m_Device;

View File

@ -33,7 +33,7 @@ RendererCL<T, bucketT>::RendererCL(const vector<pair<size_t, size_t>>& devices,
m_FinalFormat.image_channel_order = CL_RGBA; m_FinalFormat.image_channel_order = CL_RGBA;
m_FinalFormat.image_channel_data_type = CL_FLOAT; m_FinalFormat.image_channel_data_type = CL_FLOAT;
m_CompileBegun = [&]() { }; m_CompileBegun = [&]() { };
m_IterCountPerKernel = size_t(m_SubBatchPercentPerThread * m_Ember.m_SubBatchSize); m_IterCountPerKernel = size_t(double(m_SubBatchPercentPerThread) * m_Ember.m_SubBatchSize);
Init(devices, shared, outputTexID); Init(devices, shared, outputTexID);
} }
@ -183,24 +183,29 @@ bool RendererCL<T, bucketT>::SetOutputTexture(GLuint outputTexID)
/// </summary> /// </summary>
//Iters per kernel/block/grid. //Iters per kernel/block/grid.
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterCountPerKernel() const { return m_IterCountPerKernel; } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterCountPerKernel() const noexcept { return m_IterCountPerKernel; }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterCountPerBlock() const { return IterCountPerKernel() * IterBlockKernelCount(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterCountPerBlock() const noexcept { return IterCountPerKernel() * IterBlockKernelCount(); }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterCountPerGrid() const { return IterCountPerKernel() * IterGridKernelCount(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterCountPerGrid() const noexcept { return IterCountPerKernel() * IterGridKernelCount(); }
//Kernels per block. //Kernels per block.
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterBlockKernelWidth() const { return m_IterBlockWidth; } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterBlockKernelWidth() const noexcept { return m_IterBlockWidth; }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterBlockKernelHeight() const { return m_IterBlockHeight; } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterBlockKernelHeight() const noexcept { return m_IterBlockHeight; }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterBlockKernelCount() const { return IterBlockKernelWidth() * IterBlockKernelHeight(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterBlockKernelCount() const noexcept { return IterBlockKernelWidth() * IterBlockKernelHeight(); }
//Kernels per grid. //Kernels per grid.
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridKernelWidth() const { return IterGridBlockWidth() * IterBlockKernelWidth(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridKernelWidth() const noexcept { return IterGridBlockWidth() * IterBlockKernelWidth(); }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridKernelHeight() const { return IterGridBlockHeight() * IterBlockKernelHeight(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridKernelHeight() const noexcept { return IterGridBlockHeight() * IterBlockKernelHeight(); }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridKernelCount() const { return IterGridKernelWidth() * IterGridKernelHeight(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridKernelCount() const noexcept { return IterGridKernelWidth() * IterGridKernelHeight(); }
//Blocks per grid. //Blocks per grid.
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridBlockWidth() const { return m_IterBlocksWide; } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridBlockWidth() const noexcept { return m_IterBlocksWide; }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridBlockHeight() const { return m_IterBlocksHigh; } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridBlockHeight() const noexcept { return m_IterBlocksHigh; }
template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridBlockCount() const { return IterGridBlockWidth() * IterGridBlockHeight(); } template <typename T, typename bucketT> size_t RendererCL<T, bucketT>::IterGridBlockCount() const noexcept { return IterGridBlockWidth() * IterGridBlockHeight(); }
//Allow for setting the number of blocks in each grid dimension.
//These should only be calle before a run starts.
template <typename T, typename bucketT> void RendererCL<T, bucketT>::IterBlocksWide(size_t w) noexcept { m_IterBlocksWide = w; }
template <typename T, typename bucketT> void RendererCL<T, bucketT>::IterBlocksHigh(size_t h) noexcept { m_IterBlocksHigh = h; }
/// <summary> /// <summary>
/// Read the histogram of the specified into the host side CPU buffer. /// Read the histogram of the specified into the host side CPU buffer.
@ -590,7 +595,7 @@ bool RendererCL<T, bucketT>::Shared() const { return m_Shared; }
/// Clear the error report for this class as well as the OpenCLWrapper members of each device. /// Clear the error report for this class as well as the OpenCLWrapper members of each device.
/// </summary> /// </summary>
template <typename T, typename bucketT> template <typename T, typename bucketT>
void RendererCL<T, bucketT>::ClearErrorReport() void RendererCL<T, bucketT>::ClearErrorReport() noexcept
{ {
EmberReport::ClearErrorReport(); EmberReport::ClearErrorReport();
@ -669,7 +674,7 @@ bool RendererCL<T, bucketT>::RandVec(vector<QTIsaac<ISAAC_SIZE, ISAAC_INT>>& ran
/// </summary> /// </summary>
/// <returns>True if an devices are from Nvidia, else false.</returns> /// <returns>True if an devices are from Nvidia, else false.</returns>
template <typename T, typename bucketT> template <typename T, typename bucketT>
bool RendererCL<T, bucketT>::AnyNvidia() const bool RendererCL<T, bucketT>::AnyNvidia() const noexcept
{ {
for (auto& dev : m_Devices) for (auto& dev : m_Devices)
if (dev->Nvidia()) if (dev->Nvidia())
@ -701,7 +706,7 @@ bool RendererCL<T, bucketT>::Alloc(bool histOnly)
static std::string loc = __FUNCTION__; static std::string loc = __FUNCTION__;
auto& wrapper = m_Devices[0]->m_Wrapper; auto& wrapper = m_Devices[0]->m_Wrapper;
InitStateVec(); InitStateVec();
m_IterCountPerKernel = size_t(m_SubBatchPercentPerThread * m_Ember.m_SubBatchSize);//This isn't the greatest place to put this, but it must be computed before the number of iters to do is computed in the base. m_IterCountPerKernel = size_t(double(m_SubBatchPercentPerThread) * m_Ember.m_SubBatchSize);//This isn't the greatest place to put this, but it must be computed before the number of iters to do is computed in the base.
if (b && !(b = wrapper.AddBuffer(m_DEFilterParamsBufferName, sizeof(m_DensityFilterCL)))) { ErrorStr(loc, "Failed to set DE filter parameters buffer", m_Devices[0].get()); } if (b && !(b = wrapper.AddBuffer(m_DEFilterParamsBufferName, sizeof(m_DensityFilterCL)))) { ErrorStr(loc, "Failed to set DE filter parameters buffer", m_Devices[0].get()); }
@ -1305,11 +1310,11 @@ eRenderStatus RendererCL<T, bucketT>::RunDensityFilter()
//that are far enough apart such that their filters do not overlap. //that are far enough apart such that their filters do not overlap.
//Do the latter. //Do the latter.
//Gap is in terms of blocks and specifies how many blocks must separate two blocks running at the same time. //Gap is in terms of blocks and specifies how many blocks must separate two blocks running at the same time.
const auto gapW = static_cast<uint>(ceil(fw2 / blockSizeW)); const auto gapW = static_cast<size_t>(ceil(fw2 / blockSizeW));
const auto chunkSizeW = gapW + 1;//Chunk size is also in terms of blocks and is one block (the one running) plus the gap to the right of it. const auto chunkSizeW = gapW + 1;//Chunk size is also in terms of blocks and is one block (the one running) plus the gap to the right of it.
const auto gapH = static_cast<uint>(ceil(fw2 / blockSizeH)); const auto gapH = static_cast<size_t>(ceil(fw2 / blockSizeH));
const auto chunkSizeH = gapH + 1;//Chunk size is also in terms of blocks and is one block (the one running) plus the gap below it. const auto chunkSizeH = gapH + 1;//Chunk size is also in terms of blocks and is one block (the one running) plus the gap below it.
double totalChunks = chunkSizeW * chunkSizeH; double totalChunks = double(chunkSizeW * chunkSizeH);
if (b && !(b = wrapper.AddAndWriteBuffer(m_DEFilterParamsBufferName, reinterpret_cast<void*>(&m_DensityFilterCL), sizeof(m_DensityFilterCL)))) { ErrorStr(loc, "Writing DE filter parameters buffer failed", m_Devices[0].get()); } if (b && !(b = wrapper.AddAndWriteBuffer(m_DEFilterParamsBufferName, reinterpret_cast<void*>(&m_DensityFilterCL), sizeof(m_DensityFilterCL)))) { ErrorStr(loc, "Writing DE filter parameters buffer failed", m_Devices[0].get()); }
@ -1350,12 +1355,12 @@ eRenderStatus RendererCL<T, bucketT>::RunDensityFilter()
gridH /= chunkSizeH; gridH /= chunkSizeH;
OpenCLWrapper::MakeEvenGridDims(blockSizeW, blockSizeH, gridW, gridH); OpenCLWrapper::MakeEvenGridDims(blockSizeW, blockSizeH, gridW, gridH);
for (uint rowChunkPass = 0; b && !m_Abort && rowChunkPass < chunkSizeH; rowChunkPass++)//Number of vertical passes. for (size_t rowChunkPass = 0; b && !m_Abort && rowChunkPass < chunkSizeH; rowChunkPass++)//Number of vertical passes.
{ {
for (uint colChunkPass = 0; b && !m_Abort && colChunkPass < chunkSizeW; colChunkPass++)//Number of horizontal passes. for (size_t colChunkPass = 0; b && !m_Abort && colChunkPass < chunkSizeW; colChunkPass++)//Number of horizontal passes.
{ {
//t2.Tic(); //t2.Tic();
if (b && !(b = RunDensityFilterPrivate(kernelIndex, gridW, gridH, blockSizeW, blockSizeH, chunkSizeW, chunkSizeH, colChunkPass, rowChunkPass))) if (b && !(b = RunDensityFilterPrivate(kernelIndex, gridW, gridH, blockSizeW, blockSizeH, uint(chunkSizeW), uint(chunkSizeH), uint(colChunkPass), uint(rowChunkPass))))
{ {
ErrorStr(loc, "Running DE filter program for row chunk "s + std::to_string(rowChunkPass) + ", col chunk "s + std::to_string(colChunkPass) + " failed", m_Devices[0].get()); ErrorStr(loc, "Running DE filter program for row chunk "s + std::to_string(rowChunkPass) + ", col chunk "s + std::to_string(colChunkPass) + " failed", m_Devices[0].get());
} }
@ -1510,7 +1515,7 @@ bool RendererCL<T, bucketT>::ClearBuffer(size_t device, const string& bufferName
{ {
size_t blockW = m_Devices[device]->Nvidia() ? 32 : 16;//Max work group size is 256 on AMD, which means 16x16. size_t blockW = m_Devices[device]->Nvidia() ? 32 : 16;//Max work group size is 256 on AMD, which means 16x16.
size_t blockH = m_Devices[device]->Nvidia() ? 32 : 16; size_t blockH = m_Devices[device]->Nvidia() ? 32 : 16;
size_t gridW = width * elementSize; size_t gridW = size_t(width) * elementSize;
size_t gridH = height; size_t gridH = height;
b = true; b = true;
OpenCLWrapper::MakeEvenGridDims(blockW, blockH, gridW, gridH); OpenCLWrapper::MakeEvenGridDims(blockW, blockH, gridW, gridH);

View File

@ -21,9 +21,9 @@ public:
virtual ~RendererCLBase() { } virtual ~RendererCLBase() { }
virtual bool ReadFinal(v4F* pixels) { return false; } virtual bool ReadFinal(v4F* pixels) { return false; }
virtual bool ClearFinal() { return false; } virtual bool ClearFinal() { return false; }
virtual bool AnyNvidia() const { return false; } virtual bool AnyNvidia() const noexcept { return false; }
bool OptAffine() const { return m_OptAffine; } bool OptAffine() const noexcept { return m_OptAffine; }
void OptAffine(bool optAffine) { m_OptAffine = optAffine; } void OptAffine(bool optAffine) noexcept { m_OptAffine = optAffine; }
std::function<void(void)> m_CompileBegun; std::function<void(void)> m_CompileBegun;
@ -112,24 +112,28 @@ public:
bool SetOutputTexture(GLuint outputTexID); bool SetOutputTexture(GLuint outputTexID);
//Iters per kernel/block/grid. //Iters per kernel/block/grid.
inline size_t IterCountPerKernel() const; inline size_t IterCountPerKernel() const noexcept;
inline size_t IterCountPerBlock() const; inline size_t IterCountPerBlock() const noexcept;
inline size_t IterCountPerGrid() const; inline size_t IterCountPerGrid() const noexcept;
//Kernels per block. //Kernels per block.
inline size_t IterBlockKernelWidth() const; inline size_t IterBlockKernelWidth() const noexcept;
inline size_t IterBlockKernelHeight() const; inline size_t IterBlockKernelHeight() const noexcept;
inline size_t IterBlockKernelCount() const; inline size_t IterBlockKernelCount() const noexcept;
//Kernels per grid. //Kernels per grid.
inline size_t IterGridKernelWidth() const; inline size_t IterGridKernelWidth() const noexcept;
inline size_t IterGridKernelHeight() const; inline size_t IterGridKernelHeight() const noexcept;
inline size_t IterGridKernelCount() const; inline size_t IterGridKernelCount() const noexcept;
//Blocks per grid. //Blocks per grid.
inline size_t IterGridBlockWidth() const; inline size_t IterGridBlockWidth() const noexcept;
inline size_t IterGridBlockHeight() const; inline size_t IterGridBlockHeight() const noexcept;
inline size_t IterGridBlockCount() const; inline size_t IterGridBlockCount() const noexcept;
//Allow for changing the number of blocks in each dimension of the grid.
void IterBlocksWide(size_t w) noexcept;
void IterBlocksHigh(size_t h) noexcept;
bool ReadHist(size_t device); bool ReadHist(size_t device);
bool ReadAccum(); bool ReadAccum();
@ -164,11 +168,11 @@ public:
bool CreateSpatialFilter(bool& newAlloc) override; bool CreateSpatialFilter(bool& newAlloc) override;
eRendererType RendererType() const override; eRendererType RendererType() const override;
bool Shared() const override; bool Shared() const override;
void ClearErrorReport() override; void ClearErrorReport() noexcept override;
string ErrorReportString() override; string ErrorReportString() override;
vector<string> ErrorReport() override; vector<string> ErrorReport() override;
bool RandVec(vector<QTIsaac<ISAAC_SIZE, ISAAC_INT>>& randVec) override; bool RandVec(vector<QTIsaac<ISAAC_SIZE, ISAAC_INT>>& randVec) override;
bool AnyNvidia() const override; bool AnyNvidia() const noexcept override;
#ifndef TEST_CL #ifndef TEST_CL
protected: protected:

View File

@ -51,17 +51,17 @@ bool RendererClDevice::Init()
/// <summary> /// <summary>
/// OpenCL property accessors, getters only. /// OpenCL property accessors, getters only.
/// </summary> /// </summary>
bool RendererClDevice::Ok() const { return m_Init; } bool RendererClDevice::Ok() const noexcept { return m_Init; }
bool RendererClDevice::Shared() const { return m_Shared; } bool RendererClDevice::Shared() const noexcept { return m_Shared; }
bool RendererClDevice::Nvidia() const { return m_NVidia; } bool RendererClDevice::Nvidia() const noexcept { return m_NVidia; }
size_t RendererClDevice::WarpSize() const { return m_WarpSize; } size_t RendererClDevice::WarpSize() const noexcept { return m_WarpSize; }
size_t RendererClDevice::PlatformIndex() const { return m_PlatformIndex; } size_t RendererClDevice::PlatformIndex() const noexcept { return m_PlatformIndex; }
size_t RendererClDevice::DeviceIndex() const { return m_DeviceIndex; } size_t RendererClDevice::DeviceIndex() const noexcept { return m_DeviceIndex; }
/// <summary> /// <summary>
/// Clear the error report for this class as well as the wrapper. /// Clear the error report for this class as well as the wrapper.
/// </summary> /// </summary>
void RendererClDevice::ClearErrorReport() void RendererClDevice::ClearErrorReport() noexcept
{ {
EmberReport::ClearErrorReport(); EmberReport::ClearErrorReport();
m_Wrapper.ClearErrorReport(); m_Wrapper.ClearErrorReport();

View File

@ -20,15 +20,15 @@ class EMBERCL_API RendererClDevice : public EmberReport
public: public:
RendererClDevice(size_t platform, size_t device, bool shared); RendererClDevice(size_t platform, size_t device, bool shared);
bool Init(); bool Init();
bool Ok() const; bool Ok() const noexcept;
bool Shared() const; bool Shared() const noexcept;
bool Nvidia() const; bool Nvidia() const noexcept;
size_t WarpSize() const; size_t WarpSize() const noexcept;
size_t PlatformIndex() const; size_t PlatformIndex() const noexcept;
size_t DeviceIndex() const; size_t DeviceIndex() const noexcept;
//Public virtual functions overridden from base classes. //Public virtual functions overridden from base classes.
void ClearErrorReport() override; void ClearErrorReport() noexcept override;
string ErrorReportString() override; string ErrorReportString() override;
vector<string> ErrorReport() override; vector<string> ErrorReport() override;

View File

@ -214,13 +214,16 @@ void FormatName(Ember<T>& result, ostringstream& os, streamsize padding)
/// <param name="rgb">The RGB 8-bit buffer</param> /// <param name="rgb">The RGB 8-bit buffer</param>
/// <param name="width">The width of the image in pixels</param> /// <param name="width">The width of the image in pixels</param>
/// <param name="height">The height of the image in pixels</param> /// <param name="height">The height of the image in pixels</param>
static void Rgba32ToRgb8(v4F* rgba, byte* rgb, size_t width, size_t height) static void Rgba32ToRgb8(const v4F* rgba, unsigned char* rgb, size_t width, size_t height)
{
if (rgba != nullptr && rgb != nullptr)
{ {
for (size_t i = 0, j = 0; i < (width * height); i++) for (size_t i = 0, j = 0; i < (width * height); i++)
{ {
rgb[j++] = static_cast<byte>(Clamp<float>(rgba[i].r * 255.0f, 0.0f, 255.0f)); rgb[j++] = static_cast<unsigned char>(Clamp<float>(rgba[i].r * 255.0f, 0.0f, 255.0f));
rgb[j++] = static_cast<byte>(Clamp<float>(rgba[i].g * 255.0f, 0.0f, 255.0f)); rgb[j++] = static_cast<unsigned char>(Clamp<float>(rgba[i].g * 255.0f, 0.0f, 255.0f));
rgb[j++] = static_cast<byte>(Clamp<float>(rgba[i].b * 255.0f, 0.0f, 255.0f)); rgb[j++] = static_cast<unsigned char>(Clamp<float>(rgba[i].b * 255.0f, 0.0f, 255.0f));
}
} }
} }
@ -233,14 +236,17 @@ static void Rgba32ToRgb8(v4F* rgba, byte* rgb, size_t width, size_t height)
/// <param name="width">The width of the image in pixels</param> /// <param name="width">The width of the image in pixels</param>
/// <param name="height">The height of the image in pixels</param> /// <param name="height">The height of the image in pixels</param>
/// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param> /// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param>
static void Rgba32ToRgba8(v4F* rgba, byte* rgb, size_t width, size_t height, bool doAlpha) static void Rgba32ToRgba8(const v4F* rgba, unsigned char* rgb, size_t width, size_t height, bool doAlpha)
{
if (rgba != nullptr && rgb != nullptr)
{ {
for (size_t i = 0, j = 0; i < (width * height); i++) for (size_t i = 0, j = 0; i < (width * height); i++)
{ {
rgb[j++] = static_cast<byte>(Clamp<float>(rgba[i].r * 255.0f, 0.0f, 255.0f)); rgb[j++] = static_cast<unsigned char>(Clamp<float>(rgba[i].r * 255.0f, 0.0f, 255.0f));
rgb[j++] = static_cast<byte>(Clamp<float>(rgba[i].g * 255.0f, 0.0f, 255.0f)); rgb[j++] = static_cast<unsigned char>(Clamp<float>(rgba[i].g * 255.0f, 0.0f, 255.0f));
rgb[j++] = static_cast<byte>(Clamp<float>(rgba[i].b * 255.0f, 0.0f, 255.0f)); rgb[j++] = static_cast<unsigned char>(Clamp<float>(rgba[i].b * 255.0f, 0.0f, 255.0f));
rgb[j++] = doAlpha ? static_cast<byte>(Clamp<float>(rgba[i].a * 255.0f, 0.0f, 255.0f)) : 255; rgb[j++] = doAlpha ? static_cast<unsigned char>(Clamp<float>(rgba[i].a * 255.0f, 0.0f, 255.0f)) : 255;
}
} }
} }
@ -253,7 +259,9 @@ static void Rgba32ToRgba8(v4F* rgba, byte* rgb, size_t width, size_t height, boo
/// <param name="width">The width of the image in pixels</param> /// <param name="width">The width of the image in pixels</param>
/// <param name="height">The height of the image in pixels</param> /// <param name="height">The height of the image in pixels</param>
/// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param> /// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param>
static void Rgba32ToRgba16(v4F* rgba, glm::uint16* rgb, size_t width, size_t height, bool doAlpha) static void Rgba32ToRgba16(const v4F* rgba, glm::uint16* rgb, size_t width, size_t height, bool doAlpha)
{
if (rgba != nullptr && rgb != nullptr)
{ {
for (size_t i = 0, j = 0; i < (width * height); i++) for (size_t i = 0, j = 0; i < (width * height); i++)
{ {
@ -263,6 +271,7 @@ static void Rgba32ToRgba16(v4F* rgba, glm::uint16* rgb, size_t width, size_t hei
rgb[j++] = doAlpha ? static_cast<glm::uint16>(Clamp<float>(rgba[i].a * 65535.0f, 0.0f, 65535.0f)) : glm::uint16{ 65535 }; rgb[j++] = doAlpha ? static_cast<glm::uint16>(Clamp<float>(rgba[i].a * 65535.0f, 0.0f, 65535.0f)) : glm::uint16{ 65535 };
} }
} }
}
/// <summary> /// <summary>
/// Convert an RGBA 32-bit float buffer to an EXR RGBA 16-bit float buffer. /// Convert an RGBA 32-bit float buffer to an EXR RGBA 16-bit float buffer.
@ -274,7 +283,9 @@ static void Rgba32ToRgba16(v4F* rgba, glm::uint16* rgb, size_t width, size_t hei
/// <param name="width">The width of the image in pixels</param> /// <param name="width">The width of the image in pixels</param>
/// <param name="height">The height of the image in pixels</param> /// <param name="height">The height of the image in pixels</param>
/// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param> /// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param>
static void Rgba32ToRgbaExr(v4F* rgba, Rgba* ilmfRgba, size_t width, size_t height, bool doAlpha) static void Rgba32ToRgbaExr(const v4F* rgba, Rgba* ilmfRgba, size_t width, size_t height, bool doAlpha)
{
if (rgba != nullptr && ilmfRgba != nullptr)
{ {
for (size_t i = 0; i < (width * height); i++) for (size_t i = 0; i < (width * height); i++)
{ {
@ -284,6 +295,7 @@ static void Rgba32ToRgbaExr(v4F* rgba, Rgba* ilmfRgba, size_t width, size_t heig
ilmfRgba[i].a = doAlpha ? Clamp<float>(rgba[i].a * 1.0f, 0.0f, 1.0f) : 1.0f; ilmfRgba[i].a = doAlpha ? Clamp<float>(rgba[i].a * 1.0f, 0.0f, 1.0f) : 1.0f;
} }
} }
}
/// <summary> /// <summary>
/// Convert an RGBA 32-bit float buffer to an EXR RGBA 32-bit float buffer. /// Convert an RGBA 32-bit float buffer to an EXR RGBA 32-bit float buffer.
@ -298,7 +310,9 @@ static void Rgba32ToRgbaExr(v4F* rgba, Rgba* ilmfRgba, size_t width, size_t heig
/// <param name="width">The width of the image in pixels</param> /// <param name="width">The width of the image in pixels</param>
/// <param name="height">The height of the image in pixels</param> /// <param name="height">The height of the image in pixels</param>
/// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param> /// <param name="doAlpha">True to use alpha transparency, false to assign the max alpha value to make each pixel fully visible</param>
static void Rgba32ToRgba32Exr(v4F* rgba, float* r, float* g, float* b, float* a, size_t width, size_t height, bool doAlpha) static void Rgba32ToRgba32Exr(const v4F* rgba, float* r, float* g, float* b, float* a, size_t width, size_t height, bool doAlpha)
{
if (rgba != nullptr && r != nullptr && g != nullptr && b != nullptr && a != nullptr)
{ {
for (size_t i = 0; i < (width * height); i++) for (size_t i = 0; i < (width * height); i++)
{ {
@ -308,6 +322,7 @@ static void Rgba32ToRgba32Exr(v4F* rgba, float* r, float* g, float* b, float* a,
a[i] = doAlpha ? Clamp<float>(rgba[i].a * 1.0f, 0.0f, 1.0f) : 1.0f; a[i] = doAlpha ? Clamp<float>(rgba[i].a * 1.0f, 0.0f, 1.0f) : 1.0f;
} }
} }
}
/// <summary> /// <summary>
/// Returns a string with all illegal file path characters removed. /// Returns a string with all illegal file path characters removed.
@ -383,7 +398,7 @@ static string MakeAnimFilename(const string& path, const string& prefix, const s
/// <param name="memAvailable">Amount of memory available on the system</param> /// <param name="memAvailable">Amount of memory available on the system</param>
/// <param name="useMem">The maximum amount of memory to use. Use max if 0.</param> /// <param name="useMem">The maximum amount of memory to use. Use max if 0.</param>
/// <returns>The number of strips to use</returns> /// <returns>The number of strips to use</returns>
static uint CalcStrips(double memRequired, double memAvailable, double useMem) static uint CalcStrips(double memRequired, double memAvailable, double useMem) noexcept
{ {
if (useMem > 0) if (useMem > 0)
memAvailable = useMem; memAvailable = useMem;
@ -404,7 +419,7 @@ static uint CalcStrips(double memRequired, double memAvailable, double useMem)
/// <param name="denominator">The denominator</param> /// <param name="denominator">The denominator</param>
/// <returns>The next highest divisor if found, else 1.</returns> /// <returns>The next highest divisor if found, else 1.</returns>
template <typename T> template <typename T>
static T NextHighestEvenDiv(T numerator, T denominator) static T NextHighestEvenDiv(T numerator, T denominator) noexcept
{ {
T result = 1; T result = 1;
T numDiv2 = numerator / 2; T numDiv2 = numerator / 2;
@ -432,7 +447,7 @@ static T NextHighestEvenDiv(T numerator, T denominator)
/// <param name="denominator">The denominator</param> /// <param name="denominator">The denominator</param>
/// <returns>The next lowest divisor if found, else 1.</returns> /// <returns>The next lowest divisor if found, else 1.</returns>
template <typename T> template <typename T>
static T NextLowestEvenDiv(T numerator, T denominator) static T NextLowestEvenDiv(T numerator, T denominator) noexcept
{ {
T result = 1; T result = 1;
T numDiv2 = numerator / 2; T numDiv2 = numerator / 2;

View File

@ -161,7 +161,7 @@ private:
/// <summary> /// <summary>
/// Default constructor. This should never be used, instead use the one that takes arguments. /// Default constructor. This should never be used, instead use the one that takes arguments.
/// </summary> /// </summary>
EmberOptionEntry() EmberOptionEntry() noexcept
{ {
m_Option.nId = 0; m_Option.nId = 0;
m_Option.pszArg = _T("--fillmein"); m_Option.pszArg = _T("--fillmein");
@ -220,8 +220,8 @@ public:
/// <summary> /// <summary>
/// Functor accessors. /// Functor accessors.
/// </summary> /// </summary>
inline const T& operator() (void) const { return m_Val; } inline const T& operator() (void) const noexcept { return m_Val; }
inline void operator() (T t) { m_Val = t; } inline void operator() (T t) noexcept { m_Val = t; }
private: private:
eOptionUse m_OptionUse = eOptionUse::OPT_USE_ALL; eOptionUse m_OptionUse = eOptionUse::OPT_USE_ALL;
@ -241,7 +241,7 @@ struct NoDelimiters : std::ctype<char>
/// <summary> /// <summary>
/// Constructor that passes the table created in GetTable() to the base. /// Constructor that passes the table created in GetTable() to the base.
/// </summary> /// </summary>
NoDelimiters() NoDelimiters() noexcept
: std::ctype<char>(GetTable()) : std::ctype<char>(GetTable())
{ {
} }
@ -250,7 +250,7 @@ struct NoDelimiters : std::ctype<char>
/// Create and return a pointer to an empty table with no delimiters. /// Create and return a pointer to an empty table with no delimiters.
/// </summary> /// </summary>
/// <returns>A pointer to the empty delimiter table</returns> /// <returns>A pointer to the empty delimiter table</returns>
static std::ctype_base::mask const* GetTable() static std::ctype_base::mask const* GetTable() noexcept
{ {
typedef std::ctype<char> cctype; typedef std::ctype<char> cctype;
static cctype::mask rc[cctype::table_size]; static cctype::mask rc[cctype::table_size];
@ -330,7 +330,7 @@ public:
/// </summary> /// </summary>
EmberOptions() EmberOptions()
{ {
const size_t size = (size_t)eOptionIDs::OPT_EXTRAS; constexpr size_t size = (size_t)eOptionIDs::OPT_EXTRAS;
m_BoolArgs.reserve(size); m_BoolArgs.reserve(size);
m_IntArgs.reserve(size); m_IntArgs.reserve(size);
m_UintArgs.reserve(size); m_UintArgs.reserve(size);
@ -649,7 +649,7 @@ public:
/// Return a const ref to m_Devices. /// Return a const ref to m_Devices.
/// </summary> /// </summary>
/// <returns>A const ref to the vector of absolute device indices to be used</returns> /// <returns>A const ref to the vector of absolute device indices to be used</returns>
const vector<size_t>& Devices() const vector<size_t>& Devices() noexcept
{ {
return m_Devices; return m_Devices;
} }
@ -662,7 +662,7 @@ public:
vector<CSimpleOpt::SOption> GetSimpleOptions(eOptionUse optUsage = eOptionUse::OPT_USE_ALL) vector<CSimpleOpt::SOption> GetSimpleOptions(eOptionUse optUsage = eOptionUse::OPT_USE_ALL)
{ {
vector<CSimpleOpt::SOption> entries; vector<CSimpleOpt::SOption> entries;
CSimpleOpt::SOption endOption = SO_END_OF_OPTIONS; CSimpleOpt::SOption const endOption = SO_END_OF_OPTIONS;
entries.reserve(75); entries.reserve(75);
for (auto entry : m_BoolArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) entries.push_back(entry->m_Option); for (auto entry : m_BoolArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) entries.push_back(entry->m_Option);
@ -711,15 +711,15 @@ public:
ostringstream os; ostringstream os;
os << std::boolalpha; os << std::boolalpha;
for (auto entry : m_BoolArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; for (auto entry : m_BoolArgs) if (entry != nullptr) { if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; }
for (auto entry : m_IntArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; for (auto entry : m_IntArgs) if (entry != nullptr) { if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; }
for (auto entry : m_UintArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; for (auto entry : m_UintArgs) if (entry != nullptr) { if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; }
for (auto entry : m_DoubleArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; for (auto entry : m_DoubleArgs) if (entry != nullptr) { if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; }
for (auto entry : m_StringArgs) if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; for (auto entry : m_StringArgs) if (entry != nullptr) { if (static_cast<et>(entry->m_OptionUse) & static_cast<et>(optUsage)) os << entry->m_NameWithoutDashes << ": " << (*entry)() << "\n"; }
return os.str(); return os.str();
} }
@ -768,7 +768,7 @@ public:
/// </summary> /// </summary>
/// <param name="errorCode">The code of the last parsing error</param> /// <param name="errorCode">The code of the last parsing error</param>
/// <returns>The last option parsing error text as a string</returns> /// <returns>The last option parsing error text as a string</returns>
string GetLastErrorText(int errorCode) string GetLastErrorText(int errorCode) noexcept
{ {
switch (errorCode) switch (errorCode)
{ {

View File

@ -19,7 +19,7 @@ static std::recursive_mutex fileCs;
/// <param name="url">Url of the author</param> /// <param name="url">Url of the author</param>
/// <param name="nick">Nickname of the author</param> /// <param name="nick">Nickname of the author</param>
/// <returns>True if success, else false</returns> /// <returns>True if success, else false</returns>
static bool WriteJpeg(const char* filename, byte* image, size_t width, size_t height, int quality, bool enableComments, const EmberImageComments& comments, const string& id, const string& url, const string& nick) static bool WriteJpeg(const char* filename, unsigned char* image, size_t width, size_t height, int quality, bool enableComments, const EmberImageComments& comments, const string& id, const string& url, const string& nick)
{ {
bool b = false; bool b = false;
FILE* file = nullptr; FILE* file = nullptr;
@ -38,7 +38,7 @@ static bool WriteJpeg(const char* filename, byte* image, size_t width, size_t he
if (fileResult == 0) if (fileResult == 0)
{ {
size_t i; size_t i = 0;
jpeg_error_mgr jerr; jpeg_error_mgr jerr;
jpeg_compress_struct info; jpeg_compress_struct info;
string nickString, urlString, idString; string nickString, urlString, idString;
@ -73,14 +73,14 @@ static bool WriteJpeg(const char* filename, byte* image, size_t width, size_t he
if (enableComments) if (enableComments)
{ {
string s; string s;
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(verString.c_str()), static_cast<uint>(verString.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(verString.c_str()), static_cast<uint>(verString.size()));
if (nick != "") if (nick != "")
{ {
os.str(""); os.str("");
os << "nickname: " << nick; os << "nickname: " << nick;
s = os.str(); s = os.str();
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(s.c_str()), static_cast<uint>(s.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(s.c_str()), static_cast<uint>(s.size()));
} }
if (url != "") if (url != "")
@ -88,7 +88,7 @@ static bool WriteJpeg(const char* filename, byte* image, size_t width, size_t he
os.str(""); os.str("");
os << "url: " << url; os << "url: " << url;
s = os.str(); s = os.str();
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(s.c_str()), static_cast<uint>(s.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(s.c_str()), static_cast<uint>(s.size()));
} }
if (id != "") if (id != "")
@ -96,13 +96,13 @@ static bool WriteJpeg(const char* filename, byte* image, size_t width, size_t he
os.str(""); os.str("");
os << "id: " << id; os << "id: " << id;
s = os.str(); s = os.str();
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(s.c_str()), static_cast<uint>(s.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(s.c_str()), static_cast<uint>(s.size()));
} }
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(bvString.c_str()), static_cast<uint>(bvString.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(bvString.c_str()), static_cast<uint>(bvString.size()));
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(niString.c_str()), static_cast<uint>(niString.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(niString.c_str()), static_cast<uint>(niString.size()));
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(rtString.c_str()), static_cast<uint>(rtString.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(rtString.c_str()), static_cast<uint>(rtString.size()));
jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const byte*>(genomeString.c_str()), static_cast<uint>(genomeString.size())); jpeg_write_marker(&info, JPEG_COM, reinterpret_cast<const unsigned char*>(genomeString.c_str()), static_cast<uint>(genomeString.size()));
} }
for (i = 0; i < height; i++) for (i = 0; i < height; i++)
@ -138,7 +138,7 @@ static bool WriteJpeg(const char* filename, byte* image, size_t width, size_t he
/// <param name="url">Url of the author</param> /// <param name="url">Url of the author</param>
/// <param name="nick">Nickname of the author</param> /// <param name="nick">Nickname of the author</param>
/// <returns>True if success, else false</returns> /// <returns>True if success, else false</returns>
static bool WritePng(const char* filename, byte* image, size_t width, size_t height, size_t bytesPerChannel, bool enableComments, const EmberImageComments& comments, const string& id, const string& url, const string& nick) static bool WritePng(const char* filename, unsigned char* image, size_t width, size_t height, size_t bytesPerChannel, bool enableComments, const EmberImageComments& comments, const string& id, const string& url, const string& nick)
{ {
bool b = false; bool b = false;
FILE* file = nullptr; FILE* file = nullptr;
@ -160,9 +160,9 @@ static bool WritePng(const char* filename, byte* image, size_t width, size_t hei
png_structp png_ptr; png_structp png_ptr;
png_infop info_ptr; png_infop info_ptr;
png_text text[PNG_COMMENT_MAX]; png_text text[PNG_COMMENT_MAX];
size_t i; size_t i = 0;
glm::uint16 testbe = 1; constexpr glm::uint16 testbe = 1;
vector<byte*> rows(height); vector<unsigned char*> rows(height);
text[0].compression = PNG_TEXT_COMPRESSION_NONE; text[0].compression = PNG_TEXT_COMPRESSION_NONE;
text[0].key = const_cast<png_charp>("ember_version"); text[0].key = const_cast<png_charp>("ember_version");
text[0].text = const_cast<png_charp>(EmberVersion()); text[0].text = const_cast<png_charp>(EmberVersion());
@ -241,10 +241,10 @@ static bool WritePng(const char* filename, byte* image, size_t width, size_t hei
/// <param name="height">The height.</param> /// <param name="height">The height.</param>
/// <param name="newSize">The size of the new buffer created</param> /// <param name="newSize">The size of the new buffer created</param>
/// <returns>The converted buffer if successful, else NULL.</returns> /// <returns>The converted buffer if successful, else NULL.</returns>
static vector<byte> ConvertRGBToBMPBuffer(byte* buffer, size_t width, size_t height, size_t& newSize) static vector<unsigned char> ConvertRGBToBMPBuffer(unsigned char* buffer, size_t width, size_t height, size_t& newSize)
{ {
if (buffer == nullptr || width == 0 || height == 0) if (buffer == nullptr || width == 0 || height == 0)
return vector<byte>(); return vector<unsigned char>();
size_t padding = 0; size_t padding = 0;
const auto scanlinebytes = width * 3; const auto scanlinebytes = width * 3;
@ -254,7 +254,7 @@ static vector<byte> ConvertRGBToBMPBuffer(byte* buffer, size_t width, size_t hei
const auto psw = scanlinebytes + padding; const auto psw = scanlinebytes + padding;
newSize = height * psw; newSize = height * psw;
vector<byte> newBuf(newSize); vector<unsigned char> newBuf(newSize);
size_t bufpos = 0; size_t bufpos = 0;
size_t newpos = 0; size_t newpos = 0;
@ -286,7 +286,7 @@ static vector<byte> ConvertRGBToBMPBuffer(byte* buffer, size_t width, size_t hei
/// <param name="height">Height of the image in pixels</param> /// <param name="height">Height of the image in pixels</param>
/// <param name="paddedSize">Padded size, greater than or equal to total image size.</param> /// <param name="paddedSize">Padded size, greater than or equal to total image size.</param>
/// <returns>True if success, else false</returns> /// <returns>True if success, else false</returns>
static bool SaveBmp(const char* filename, const byte* image, size_t width, size_t height, size_t paddedSize) static bool SaveBmp(const char* filename, const unsigned char* image, size_t width, size_t height, size_t paddedSize)
{ {
#ifdef _WIN32 #ifdef _WIN32
BITMAPFILEHEADER bmfh; BITMAPFILEHEADER bmfh;
@ -362,7 +362,7 @@ static bool SaveBmp(const char* filename, const byte* image, size_t width, size_
/// <param name="width">Width of the image in pixels</param> /// <param name="width">Width of the image in pixels</param>
/// <param name="height">Height of the image in pixels</param> /// <param name="height">Height of the image in pixels</param>
/// <returns>True if success, else false</returns> /// <returns>True if success, else false</returns>
static bool WriteBmp(const char* filename, byte* image, size_t width, size_t height) static bool WriteBmp(const char* filename, unsigned char* image, size_t width, size_t height)
{ {
bool b = false; bool b = false;
size_t newSize; size_t newSize;

View File

@ -126,7 +126,8 @@
@param SG_GLOB_NODOT @param SG_GLOB_NODOT
Do not return the "." or ".." special directories. Do not return the "." or ".." special directories.
*/ */
enum SG_Flags { enum SG_Flags
{
SG_GLOB_ERR = 1 << 0, SG_GLOB_ERR = 1 << 0,
SG_GLOB_MARK = 1 << 1, SG_GLOB_MARK = 1 << 1,
SG_GLOB_NOSORT = 1 << 2, SG_GLOB_NOSORT = 1 << 2,
@ -139,7 +140,8 @@ enum SG_Flags {
}; };
/*! @brief Error return codes */ /*! @brief Error return codes */
enum SG_Error { enum SG_Error
{
SG_SUCCESS = 0, SG_SUCCESS = 0,
SG_ERR_NOMATCH = 1, SG_ERR_NOMATCH = 1,
SG_ERR_MEMORY = -1, SG_ERR_MEMORY = -1,
@ -176,7 +178,7 @@ enum SG_Error {
#endif #endif
#define sg_strcmp ::_mbscmp #define sg_strcmp ::_mbscmp
#define sg_strcasecmp ::_mbsicmp #define sg_strcasecmp ::_mbsicmp
# define SOCHAR_T byte #define SOCHAR_T unsigned char
#else #else
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@ -213,42 +215,49 @@ enum SG_Error {
class SimpleGlobUtil class SimpleGlobUtil
{ {
public: public:
static const char * strchr(const char *s, char c) { static const char* strchr(const char* s, char c) noexcept
{
return reinterpret_cast<const char*>(sg_strchr(reinterpret_cast<const SOCHAR_T*>(s), c)); return reinterpret_cast<const char*>(sg_strchr(reinterpret_cast<const SOCHAR_T*>(s), c));
} }
static const wchar_t * strchr(const wchar_t *s, wchar_t c) { static const wchar_t* strchr(const wchar_t* s, wchar_t c) noexcept
{
return ::wcschr(s, c); return ::wcschr(s, c);
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
static const UChar * strchr(const UChar *s, UChar c) { static const UChar* strchr(const UChar* s, UChar c)
{
return ::u_strchr(s, c); return ::u_strchr(s, c);
} }
#endif #endif
static const char * strrchr(const char *s, char c) { static const char* strrchr(const char* s, char c) noexcept
{
return reinterpret_cast<const char*>(sg_strrchr(reinterpret_cast<const SOCHAR_T*>(s), c)); return reinterpret_cast<const char*>(sg_strrchr(reinterpret_cast<const SOCHAR_T*>(s), c));
} }
static const wchar_t * strrchr(const wchar_t *s, wchar_t c) { static const wchar_t* strrchr(const wchar_t* s, wchar_t c) noexcept
{
return ::wcsrchr(s, c); return ::wcsrchr(s, c);
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
static const UChar * strrchr(const UChar *s, UChar c) { static const UChar* strrchr(const UChar* s, UChar c)
{
return ::u_strrchr(s, c); return ::u_strrchr(s, c);
} }
#endif #endif
// Note: char strlen returns number of bytes, not characters // Note: char strlen returns number of bytes, not characters
static size_t strlen(const char *s) { return ::strlen(s); } static size_t strlen(const char* s) noexcept { return ::strlen(s); }
static size_t strlen(const wchar_t *s) { return ::wcslen(s); } static size_t strlen(const wchar_t* s) noexcept { return ::wcslen(s); }
#if SG_HAVE_ICU #if SG_HAVE_ICU
static size_t strlen(const UChar* s) { return ::u_strlen(s); } static size_t strlen(const UChar* s) { return ::u_strlen(s); }
#endif #endif
static void strcpy_s(char *dst, size_t n, const char *src) { static void strcpy_s(char* dst, size_t n, const char* src) noexcept
(void) n; {
sg_strcpy_s(reinterpret_cast<SOCHAR_T *>(dst), n, reinterpret_cast<const SOCHAR_T *>(src)); sg_strcpy_s(reinterpret_cast<SOCHAR_T*>(dst), 0, reinterpret_cast<const SOCHAR_T*>(src));
} }
static void strcpy_s(wchar_t *dst, size_t n, const wchar_t *src) { static void strcpy_s(wchar_t* dst, size_t n, const wchar_t* src) noexcept
{
# if __STDC_WANT_SECURE_LIB__ # if __STDC_WANT_SECURE_LIB__
::wcscpy_s(dst, n, src); ::wcscpy_s(dst, n, src);
#else #else
@ -257,39 +266,47 @@ public:
#endif #endif
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
static void strcpy_s(UChar *dst, size_t n, const UChar *src) { static void strcpy_s(UChar* dst, size_t n, const UChar* src)
{
::u_strncpy(dst, src, n); ::u_strncpy(dst, src, n);
} }
#endif #endif
static int strcmp(const char *s1, const char *s2) { static int strcmp(const char* s1, const char* s2) noexcept
{
return sg_strcmp(reinterpret_cast<const SOCHAR_T*>(s1), reinterpret_cast<const SOCHAR_T*>(s2)); return sg_strcmp(reinterpret_cast<const SOCHAR_T*>(s1), reinterpret_cast<const SOCHAR_T*>(s2));
} }
static int strcmp(const wchar_t *s1, const wchar_t *s2) { static int strcmp(const wchar_t* s1, const wchar_t* s2) noexcept
{
return ::wcscmp(s1, s2); return ::wcscmp(s1, s2);
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
static int strcmp(const UChar *s1, const UChar *s2) { static int strcmp(const UChar* s1, const UChar* s2)
{
return ::u_strcmp(s1, s2); return ::u_strcmp(s1, s2);
} }
#endif #endif
static int strcasecmp(const char *s1, const char *s2) { static int strcasecmp(const char* s1, const char* s2) noexcept
{
return sg_strcasecmp(reinterpret_cast<const SOCHAR_T*>(s1), reinterpret_cast<const SOCHAR_T*>(s2)); return sg_strcasecmp(reinterpret_cast<const SOCHAR_T*>(s1), reinterpret_cast<const SOCHAR_T*>(s2));
} }
#if _WIN32 #if _WIN32
static int strcasecmp(const wchar_t *s1, const wchar_t *s2) { static int strcasecmp(const wchar_t* s1, const wchar_t* s2) noexcept
{
return ::_wcsicmp(s1, s2); return ::_wcsicmp(s1, s2);
} }
#endif // _WIN32 #endif // _WIN32
#if SG_HAVE_ICU #if SG_HAVE_ICU
static int strcasecmp(const UChar *s1, const UChar *s2) { static int strcasecmp(const UChar* s1, const UChar* s2)
{
return u_strcasecmp(s1, s2, 0); return u_strcasecmp(s1, s2, 0);
} }
#endif #endif
}; };
enum SG_FileType { enum SG_FileType
{
SG_FILETYPE_INVALID, SG_FILETYPE_INVALID,
SG_FILETYPE_FILE, SG_FILETYPE_FILE,
SG_FILETYPE_DIR SG_FILETYPE_DIR
@ -309,67 +326,95 @@ struct SimpleGlobBase
{ {
SimpleGlobBase() : m_hFind(INVALID_HANDLE_VALUE) { } SimpleGlobBase() : m_hFind(INVALID_HANDLE_VALUE) { }
int FindFirstFileS(const char * a_pszFileSpec, uint) { int FindFirstFileS(const char* a_pszFileSpec, uint)
{
m_hFind = FindFirstFileA(a_pszFileSpec, &m_oFindDataA); m_hFind = FindFirstFileA(a_pszFileSpec, &m_oFindDataA);
if (m_hFind != INVALID_HANDLE_VALUE) {
if (m_hFind != INVALID_HANDLE_VALUE)
{
return SG_SUCCESS; return SG_SUCCESS;
} }
DWORD dwErr = GetLastError(); DWORD dwErr = GetLastError();
if (dwErr == ERROR_FILE_NOT_FOUND) {
if (dwErr == ERROR_FILE_NOT_FOUND)
{
return SG_ERR_NOMATCH; return SG_ERR_NOMATCH;
} }
return SG_ERR_FAILURE; return SG_ERR_FAILURE;
} }
int FindFirstFileS(const wchar_t * a_pszFileSpec, uint) { int FindFirstFileS(const wchar_t* a_pszFileSpec, uint)
{
m_hFind = FindFirstFileW(a_pszFileSpec, &m_oFindDataW); m_hFind = FindFirstFileW(a_pszFileSpec, &m_oFindDataW);
if (m_hFind != INVALID_HANDLE_VALUE) {
if (m_hFind != INVALID_HANDLE_VALUE)
{
return SG_SUCCESS; return SG_SUCCESS;
} }
DWORD dwErr = GetLastError(); DWORD dwErr = GetLastError();
if (dwErr == ERROR_FILE_NOT_FOUND) {
if (dwErr == ERROR_FILE_NOT_FOUND)
{
return SG_ERR_NOMATCH; return SG_ERR_NOMATCH;
} }
return SG_ERR_FAILURE; return SG_ERR_FAILURE;
} }
bool FindNextFileS(char) { bool FindNextFileS(char)
{
return FindNextFileA(m_hFind, &m_oFindDataA) != FALSE; return FindNextFileA(m_hFind, &m_oFindDataA) != FALSE;
} }
bool FindNextFileS(wchar_t) { bool FindNextFileS(wchar_t)
{
return FindNextFileW(m_hFind, &m_oFindDataW) != FALSE; return FindNextFileW(m_hFind, &m_oFindDataW) != FALSE;
} }
void FindDone() { void FindDone()
{
FindClose(m_hFind); FindClose(m_hFind);
} }
const char * GetFileNameS(char) const { const char* GetFileNameS(char) const
{
return m_oFindDataA.cFileName; return m_oFindDataA.cFileName;
} }
const wchar_t * GetFileNameS(wchar_t) const { const wchar_t* GetFileNameS(wchar_t) const
{
return m_oFindDataW.cFileName; return m_oFindDataW.cFileName;
} }
bool IsDirS(char) const { bool IsDirS(char) const
{
return this->GetFileTypeS(m_oFindDataA.dwFileAttributes) == SG_FILETYPE_DIR; return this->GetFileTypeS(m_oFindDataA.dwFileAttributes) == SG_FILETYPE_DIR;
} }
bool IsDirS(wchar_t) const { bool IsDirS(wchar_t) const
{
return this->GetFileTypeS(m_oFindDataW.dwFileAttributes) == SG_FILETYPE_DIR; return this->GetFileTypeS(m_oFindDataW.dwFileAttributes) == SG_FILETYPE_DIR;
} }
SG_FileType GetFileTypeS(const char * a_pszPath) { SG_FileType GetFileTypeS(const char* a_pszPath)
{
return this->GetFileTypeS(GetFileAttributesA(a_pszPath)); return this->GetFileTypeS(GetFileAttributesA(a_pszPath));
} }
SG_FileType GetFileTypeS(const wchar_t * a_pszPath) { SG_FileType GetFileTypeS(const wchar_t* a_pszPath)
{
return this->GetFileTypeS(GetFileAttributesW(a_pszPath)); return this->GetFileTypeS(GetFileAttributesW(a_pszPath));
} }
SG_FileType GetFileTypeS(DWORD a_dwAttribs) const { SG_FileType GetFileTypeS(DWORD a_dwAttribs) const
if (a_dwAttribs == INVALID_FILE_ATTRIBUTES) { {
if (a_dwAttribs == INVALID_FILE_ATTRIBUTES)
{
return SG_FILETYPE_INVALID; return SG_FILETYPE_INVALID;
} }
if (a_dwAttribs & FILE_ATTRIBUTE_DIRECTORY) {
if (a_dwAttribs & FILE_ATTRIBUTE_DIRECTORY)
{
return SG_FILETYPE_DIR; return SG_FILETYPE_DIR;
} }
return SG_FILETYPE_FILE; return SG_FILETYPE_FILE;
} }
@ -387,116 +432,157 @@ private:
template<class SOCHAR> template<class SOCHAR>
struct SimpleGlobBase struct SimpleGlobBase
{ {
SimpleGlobBase() { SimpleGlobBase()
{
memset(&m_glob, 0, sizeof(m_glob)); memset(&m_glob, 0, sizeof(m_glob));
m_uiCurr = size_t(-1); m_uiCurr = size_t(-1);
} }
~SimpleGlobBase() { ~SimpleGlobBase()
{
globfree(&m_glob); globfree(&m_glob);
} }
void FilePrep() { void FilePrep()
{
m_bIsDir = false; m_bIsDir = false;
size_t len = strlen(m_glob.gl_pathv[m_uiCurr]); size_t len = strlen(m_glob.gl_pathv[m_uiCurr]);
if (m_glob.gl_pathv[m_uiCurr][len-1] == '/') {
if (m_glob.gl_pathv[m_uiCurr][len - 1] == '/')
{
m_bIsDir = true; m_bIsDir = true;
m_glob.gl_pathv[m_uiCurr][len - 1] = 0; m_glob.gl_pathv[m_uiCurr][len - 1] = 0;
} }
} }
int FindFirstFileS(const char * a_pszFileSpec, uint a_uiFlags) { int FindFirstFileS(const char* a_pszFileSpec, uint a_uiFlags)
{
int nFlags = GLOB_MARK | GLOB_NOSORT; int nFlags = GLOB_MARK | GLOB_NOSORT;
if (a_uiFlags & SG_GLOB_ERR) nFlags |= GLOB_ERR; if (a_uiFlags & SG_GLOB_ERR) nFlags |= GLOB_ERR;
if (a_uiFlags & SG_GLOB_TILDE) nFlags |= GLOB_TILDE; if (a_uiFlags & SG_GLOB_TILDE) nFlags |= GLOB_TILDE;
int rc = glob(a_pszFileSpec, nFlags, nullptr, &m_glob); int rc = glob(a_pszFileSpec, nFlags, nullptr, &m_glob);
if (rc == GLOB_NOSPACE) return SG_ERR_MEMORY; if (rc == GLOB_NOSPACE) return SG_ERR_MEMORY;
if (rc == GLOB_ABORTED) return SG_ERR_FAILURE; if (rc == GLOB_ABORTED) return SG_ERR_FAILURE;
if (rc == GLOB_NOMATCH) return SG_ERR_NOMATCH; if (rc == GLOB_NOMATCH) return SG_ERR_NOMATCH;
m_uiCurr = 0; m_uiCurr = 0;
FilePrep(); FilePrep();
return SG_SUCCESS; return SG_SUCCESS;
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
int FindFirstFileS(const UChar * a_pszFileSpec, uint a_uiFlags) { int FindFirstFileS(const UChar* a_pszFileSpec, uint a_uiFlags)
{
char buf[PATH_MAX] = { 0 }; char buf[PATH_MAX] = { 0 };
UErrorCode status = U_ZERO_ERROR; UErrorCode status = U_ZERO_ERROR;
u_strToUTF8(buf, sizeof(buf), nullptr, a_pszFileSpec, -1, &status); u_strToUTF8(buf, sizeof(buf), nullptr, a_pszFileSpec, -1, &status);
if (U_FAILURE(status)) return SG_ERR_FAILURE; if (U_FAILURE(status)) return SG_ERR_FAILURE;
return this->FindFirstFileS(buf, a_uiFlags); return this->FindFirstFileS(buf, a_uiFlags);
} }
#endif #endif
bool FindNextFileS(char) { bool FindNextFileS(char)
{
SG_ASSERT(m_uiCurr != (size_t) -1); SG_ASSERT(m_uiCurr != (size_t) -1);
if (++m_uiCurr >= m_glob.gl_pathc) {
if (++m_uiCurr >= m_glob.gl_pathc)
{
return false; return false;
} }
FilePrep(); FilePrep();
return true; return true;
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
bool FindNextFileS(UChar) { bool FindNextFileS(UChar)
{
return this->FindNextFileS((char)0); return this->FindNextFileS((char)0);
} }
#endif #endif
void FindDone() { void FindDone()
{
globfree(&m_glob); globfree(&m_glob);
memset(&m_glob, 0, sizeof(m_glob)); memset(&m_glob, 0, sizeof(m_glob));
m_uiCurr = size_t(-1); m_uiCurr = size_t(-1);
} }
const char * GetFileNameS(char) const { const char* GetFileNameS(char) const
{
SG_ASSERT(m_uiCurr != size_t(-1)); SG_ASSERT(m_uiCurr != size_t(-1));
return m_glob.gl_pathv[m_uiCurr]; return m_glob.gl_pathv[m_uiCurr];
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
const UChar * GetFileNameS(UChar) const { const UChar* GetFileNameS(UChar) const
{
const char* pszFile = this->GetFileNameS((char)0); const char* pszFile = this->GetFileNameS((char)0);
if (!pszFile) return nullptr; if (!pszFile) return nullptr;
UErrorCode status = U_ZERO_ERROR; UErrorCode status = U_ZERO_ERROR;
memset(m_szBuf, 0, sizeof(m_szBuf)); memset(m_szBuf, 0, sizeof(m_szBuf));
u_strFromUTF8(m_szBuf, PATH_MAX, nullptr, pszFile, -1, &status); u_strFromUTF8(m_szBuf, PATH_MAX, nullptr, pszFile, -1, &status);
if (U_FAILURE(status)) return nullptr; if (U_FAILURE(status)) return nullptr;
return m_szBuf; return m_szBuf;
} }
#endif #endif
bool IsDirS(char) const { bool IsDirS(char) const
{
SG_ASSERT(m_uiCurr != size_t(-1)); SG_ASSERT(m_uiCurr != size_t(-1));
return m_bIsDir; return m_bIsDir;
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
bool IsDirS(UChar) const { bool IsDirS(UChar) const
{
return this->IsDirS((char)0); return this->IsDirS((char)0);
} }
#endif #endif
SG_FileType GetFileTypeS(const char * a_pszPath) const { SG_FileType GetFileTypeS(const char* a_pszPath) const
{
struct stat sb; struct stat sb;
if (0 != stat(a_pszPath, &sb)) {
if (0 != stat(a_pszPath, &sb))
{
return SG_FILETYPE_INVALID; return SG_FILETYPE_INVALID;
} }
if (S_ISDIR(sb.st_mode)) {
if (S_ISDIR(sb.st_mode))
{
return SG_FILETYPE_DIR; return SG_FILETYPE_DIR;
} }
if (S_ISREG(sb.st_mode)) {
if (S_ISREG(sb.st_mode))
{
return SG_FILETYPE_FILE; return SG_FILETYPE_FILE;
} }
return SG_FILETYPE_INVALID; return SG_FILETYPE_INVALID;
} }
#if SG_HAVE_ICU #if SG_HAVE_ICU
SG_FileType GetFileTypeS(const UChar * a_pszPath) const { SG_FileType GetFileTypeS(const UChar* a_pszPath) const
{
char buf[PATH_MAX] = { 0 }; char buf[PATH_MAX] = { 0 };
UErrorCode status = U_ZERO_ERROR; UErrorCode status = U_ZERO_ERROR;
u_strToUTF8(buf, sizeof(buf), nullptr, a_pszPath, -1, &status); u_strToUTF8(buf, sizeof(buf), nullptr, a_pszPath, -1, &status);
if (U_FAILURE(status)) return SG_FILETYPE_INVALID; if (U_FAILURE(status)) return SG_FILETYPE_INVALID;
return this->GetFileTypeS(buf); return this->GetFileTypeS(buf);
} }
#endif #endif
@ -586,13 +672,15 @@ public:
inline int FileCount() const { return m_nArgsLen; } inline int FileCount() const { return m_nArgsLen; }
/*! @brief Return the full argv array. */ /*! @brief Return the full argv array. */
inline SOCHAR ** Files() { inline SOCHAR** Files()
{
SetArgvArrayType(POINTERS); SetArgvArrayType(POINTERS);
return m_rgpArgs; return m_rgpArgs;
} }
/*! @brief Return the a single file. */ /*! @brief Return the a single file. */
inline SOCHAR * File(int n) { inline SOCHAR* File(int n)
{
SG_ASSERT(n >= 0 && n < m_nArgsLen); SG_ASSERT(n >= 0 && n < m_nArgsLen);
return Files()[n]; return Files()[n];
} }
@ -650,7 +738,6 @@ CSimpleGlobTempl<SOCHAR>::CSimpleGlobTempl(
m_nArgsSize = 0; m_nArgsSize = 0;
m_pBuffer = nullptr; m_pBuffer = nullptr;
m_uiBufferSize = 0; m_uiBufferSize = 0;
Init(a_uiFlags, a_nReservedSlots); Init(a_uiFlags, a_nReservedSlots);
} }
@ -658,6 +745,7 @@ template<class SOCHAR>
CSimpleGlobTempl<SOCHAR>::~CSimpleGlobTempl() CSimpleGlobTempl<SOCHAR>::~CSimpleGlobTempl()
{ {
if (m_rgpArgs) free(m_rgpArgs); if (m_rgpArgs) free(m_rgpArgs);
if (m_pBuffer) free(m_pBuffer); if (m_pBuffer) free(m_pBuffer);
} }
@ -674,11 +762,15 @@ CSimpleGlobTempl<SOCHAR>::Init(
m_nReservedSlots = a_nReservedSlots; m_nReservedSlots = a_nReservedSlots;
m_uiBufferLen = 0; m_uiBufferLen = 0;
if (m_nReservedSlots > 0) { if (m_nReservedSlots > 0)
if (!GrowArgvArray(m_nReservedSlots)) { {
if (!GrowArgvArray(m_nReservedSlots))
{
return SG_ERR_MEMORY; return SG_ERR_MEMORY;
} }
for (int n = 0; n < m_nReservedSlots; ++n) {
for (int n = 0; n < m_nReservedSlots; ++n)
{
m_rgpArgs[n] = nullptr; m_rgpArgs[n] = nullptr;
} }
} }
@ -699,25 +791,33 @@ CSimpleGlobTempl<SOCHAR>::Add(
SOCHAR szFileSpec[MAX_PATH]; SOCHAR szFileSpec[MAX_PATH];
SimpleGlobUtil::strcpy_s(szFileSpec, MAX_PATH, a_pszFileSpec); SimpleGlobUtil::strcpy_s(szFileSpec, MAX_PATH, a_pszFileSpec);
const SOCHAR* pszPath = SimpleGlobUtil::strchr(szFileSpec, '/'); const SOCHAR* pszPath = SimpleGlobUtil::strchr(szFileSpec, '/');
while (pszPath) {
while (pszPath)
{
szFileSpec[pszPath - szFileSpec] = SG_PATH_CHAR; szFileSpec[pszPath - szFileSpec] = SG_PATH_CHAR;
pszPath = SimpleGlobUtil::strchr(pszPath + 1, '/'); pszPath = SimpleGlobUtil::strchr(pszPath + 1, '/');
} }
a_pszFileSpec = szFileSpec; a_pszFileSpec = szFileSpec;
#endif #endif
// if this doesn't contain wildcards then we can just add it directly // if this doesn't contain wildcards then we can just add it directly
m_szPathPrefix[0] = 0; m_szPathPrefix[0] = 0;
if (!SimpleGlobUtil::strchr(a_pszFileSpec, '*') && if (!SimpleGlobUtil::strchr(a_pszFileSpec, '*') &&
!SimpleGlobUtil::strchr(a_pszFileSpec, '?')) !SimpleGlobUtil::strchr(a_pszFileSpec, '?'))
{ {
SG_FileType nType = this->GetFileTypeS(a_pszFileSpec); SG_FileType nType = this->GetFileTypeS(a_pszFileSpec);
if (nType == SG_FILETYPE_INVALID) {
if (m_uiFlags & SG_GLOB_NOCHECK) { if (nType == SG_FILETYPE_INVALID)
{
if (m_uiFlags & SG_GLOB_NOCHECK)
{
return AppendName(a_pszFileSpec, false); return AppendName(a_pszFileSpec, false);
} }
return SG_ERR_NOMATCH; return SG_ERR_NOMATCH;
} }
return AppendName(a_pszFileSpec, nType == SG_FILETYPE_DIR); return AppendName(a_pszFileSpec, nType == SG_FILETYPE_DIR);
} }
@ -727,37 +827,50 @@ CSimpleGlobTempl<SOCHAR>::Add(
// filename we get back. // filename we get back.
const SOCHAR* pszFilename = const SOCHAR* pszFilename =
SimpleGlobUtil::strrchr(a_pszFileSpec, SG_PATH_CHAR); SimpleGlobUtil::strrchr(a_pszFileSpec, SG_PATH_CHAR);
if (pszFilename) {
if (pszFilename)
{
SimpleGlobUtil::strcpy_s(m_szPathPrefix, MAX_PATH, a_pszFileSpec); SimpleGlobUtil::strcpy_s(m_szPathPrefix, MAX_PATH, a_pszFileSpec);
m_szPathPrefix[pszFilename - a_pszFileSpec + 1] = 0; m_szPathPrefix[pszFilename - a_pszFileSpec + 1] = 0;
} }
#endif
#endif
// search for the first match on the file // search for the first match on the file
int rc = this->FindFirstFileS(a_pszFileSpec, m_uiFlags); int rc = this->FindFirstFileS(a_pszFileSpec, m_uiFlags);
if (rc != SG_SUCCESS) {
if (rc == SG_ERR_NOMATCH && (m_uiFlags & SG_GLOB_NOCHECK)) { if (rc != SG_SUCCESS)
{
if (rc == SG_ERR_NOMATCH && (m_uiFlags & SG_GLOB_NOCHECK))
{
int ok = AppendName(a_pszFileSpec, false); int ok = AppendName(a_pszFileSpec, false);
if (ok != SG_SUCCESS) rc = ok; if (ok != SG_SUCCESS) rc = ok;
} }
return rc; return rc;
} }
// add it and find all subsequent matches // add it and find all subsequent matches
int nError, nStartLen = m_nArgsLen; int nError, nStartLen = m_nArgsLen;
bool bSuccess; bool bSuccess;
do {
do
{
nError = AppendName(this->GetFileNameS(SOCHAR(0)), this->IsDirS(SOCHAR(0))); nError = AppendName(this->GetFileNameS(SOCHAR(0)), this->IsDirS(SOCHAR(0)));
bSuccess = this->FindNextFileS(SOCHAR(0)); bSuccess = this->FindNextFileS(SOCHAR(0));
} }
while (nError == SG_SUCCESS && bSuccess); while (nError == SG_SUCCESS && bSuccess);
SimpleGlobBase<SOCHAR>::FindDone(); SimpleGlobBase<SOCHAR>::FindDone();
// sort these files if required // sort these files if required
if (m_nArgsLen > nStartLen && !(m_uiFlags & SG_GLOB_NOSORT)) { if (m_nArgsLen > nStartLen && !(m_uiFlags & SG_GLOB_NOSORT))
if (m_uiFlags & SG_GLOB_FULLSORT) { {
if (m_uiFlags & SG_GLOB_FULLSORT)
{
nStartLen = m_nReservedSlots; nStartLen = m_nReservedSlots;
} }
SetArgvArrayType(POINTERS); SetArgvArrayType(POINTERS);
qsort( qsort(
m_rgpArgs + nStartLen, m_rgpArgs + nStartLen,
@ -776,12 +889,17 @@ CSimpleGlobTempl<SOCHAR>::Add(
) )
{ {
int nResult; int nResult;
for (int n = 0; n < a_nCount; ++n) {
for (int n = 0; n < a_nCount; ++n)
{
nResult = Add(a_rgpszFileSpec[n]); nResult = Add(a_rgpszFileSpec[n]);
if (nResult != SG_SUCCESS) {
if (nResult != SG_SUCCESS)
{
return nResult; return nResult;
} }
} }
return SG_SUCCESS; return SG_SUCCESS;
} }
@ -796,35 +914,49 @@ CSimpleGlobTempl<SOCHAR>::AppendName(
SetArgvArrayType(OFFSETS); SetArgvArrayType(OFFSETS);
// check for special cases which cause us to ignore this entry // check for special cases which cause us to ignore this entry
if ((m_uiFlags & SG_GLOB_ONLYDIR) && !a_bIsDir) { if ((m_uiFlags & SG_GLOB_ONLYDIR) && !a_bIsDir)
{
return SG_SUCCESS; return SG_SUCCESS;
} }
if ((m_uiFlags & SG_GLOB_ONLYFILE) && a_bIsDir) {
if ((m_uiFlags & SG_GLOB_ONLYFILE) && a_bIsDir)
{
return SG_SUCCESS; return SG_SUCCESS;
} }
if ((m_uiFlags & SG_GLOB_NODOT) && a_bIsDir) {
if (a_pszFileName[0] == '.') { if ((m_uiFlags & SG_GLOB_NODOT) && a_bIsDir)
if (a_pszFileName[1] == '\0') { {
if (a_pszFileName[0] == '.')
{
if (a_pszFileName[1] == '\0')
{
return SG_SUCCESS; return SG_SUCCESS;
} }
if (a_pszFileName[1] == '.' && a_pszFileName[2] == '\0') {
if (a_pszFileName[1] == '.' && a_pszFileName[2] == '\0')
{
return SG_SUCCESS; return SG_SUCCESS;
} }
} }
} }
// ensure that we have enough room in the argv array // ensure that we have enough room in the argv array
if (!GrowArgvArray(m_nArgsLen + 1)) { if (!GrowArgvArray(m_nArgsLen + 1))
{
return SG_ERR_MEMORY; return SG_ERR_MEMORY;
} }
// ensure that we have enough room in the string buffer (+1 for null) // ensure that we have enough room in the string buffer (+1 for null)
size_t uiPrefixLen = SimpleGlobUtil::strlen(m_szPathPrefix); size_t uiPrefixLen = SimpleGlobUtil::strlen(m_szPathPrefix);
size_t uiLen = uiPrefixLen + SimpleGlobUtil::strlen(a_pszFileName) + 1; size_t uiLen = uiPrefixLen + SimpleGlobUtil::strlen(a_pszFileName) + 1;
if (a_bIsDir && (m_uiFlags & SG_GLOB_MARK) == SG_GLOB_MARK) {
if (a_bIsDir && (m_uiFlags & SG_GLOB_MARK) == SG_GLOB_MARK)
{
++uiLen; // need space for the backslash ++uiLen; // need space for the backslash
} }
if (!GrowStringBuffer(m_uiBufferLen + uiLen)) {
if (!GrowStringBuffer(m_uiBufferLen + uiLen))
{
return SG_ERR_MEMORY; return SG_ERR_MEMORY;
} }
@ -837,7 +969,8 @@ CSimpleGlobTempl<SOCHAR>::AppendName(
m_uiBufferLen += uiLen; m_uiBufferLen += uiLen;
// add the directory slash if desired // add the directory slash if desired
if (a_bIsDir && (m_uiFlags & SG_GLOB_MARK) == SG_GLOB_MARK) { if (a_bIsDir && (m_uiFlags & SG_GLOB_MARK) == SG_GLOB_MARK)
{
const static SOCHAR szDirSlash[] = { SG_PATH_CHAR, 0 }; const static SOCHAR szDirSlash[] = { SG_PATH_CHAR, 0 };
SimpleGlobUtil::strcpy_s(m_pBuffer + m_uiBufferLen - 2, SimpleGlobUtil::strcpy_s(m_pBuffer + m_uiBufferLen - 2,
m_uiBufferSize - (m_uiBufferLen - 2), szDirSlash); m_uiBufferSize - (m_uiBufferLen - 2), szDirSlash);
@ -853,21 +986,29 @@ CSimpleGlobTempl<SOCHAR>::SetArgvArrayType(
) )
{ {
if (m_nArgArrayType == a_nNewType) return; if (m_nArgArrayType == a_nNewType) return;
if (a_nNewType == POINTERS) {
if (a_nNewType == POINTERS)
{
SG_ASSERT(m_nArgArrayType == OFFSETS); SG_ASSERT(m_nArgArrayType == OFFSETS);
for (int n = 0; n < m_nArgsLen; ++n) {
for (int n = 0; n < m_nArgsLen; ++n)
{
m_rgpArgs[n] = (m_rgpArgs[n] == reinterpret_cast<SOCHAR*>(-1)) ? m_rgpArgs[n] = (m_rgpArgs[n] == reinterpret_cast<SOCHAR*>(-1)) ?
nullptr : m_pBuffer + size_t(m_rgpArgs[n]); nullptr : m_pBuffer + size_t(m_rgpArgs[n]);
} }
} }
else { else
{
SG_ASSERT(a_nNewType == OFFSETS); SG_ASSERT(a_nNewType == OFFSETS);
SG_ASSERT(m_nArgArrayType == POINTERS); SG_ASSERT(m_nArgArrayType == POINTERS);
for (int n = 0; n < m_nArgsLen; ++n) {
for (int n = 0; n < m_nArgsLen; ++n)
{
m_rgpArgs[n] = (m_rgpArgs[n] == nullptr) ? m_rgpArgs[n] = (m_rgpArgs[n] == nullptr) ?
reinterpret_cast<SOCHAR*>(-1) : reinterpret_cast<SOCHAR*>(m_rgpArgs[n] - m_pBuffer); reinterpret_cast<SOCHAR*>(-1) : reinterpret_cast<SOCHAR*>(m_rgpArgs[n] - m_pBuffer);
} }
} }
m_nArgArrayType = a_nNewType; m_nArgArrayType = a_nNewType;
} }
@ -877,18 +1018,25 @@ CSimpleGlobTempl<SOCHAR>::GrowArgvArray(
int a_nNewLen int a_nNewLen
) )
{ {
if (a_nNewLen >= m_nArgsSize) { if (a_nNewLen >= m_nArgsSize)
{
static const int SG_ARGV_INITIAL_SIZE = 32; static const int SG_ARGV_INITIAL_SIZE = 32;
int nNewSize = (m_nArgsSize > 0) ? int nNewSize = (m_nArgsSize > 0) ?
m_nArgsSize * 2 : SG_ARGV_INITIAL_SIZE; m_nArgsSize * 2 : SG_ARGV_INITIAL_SIZE;
while (a_nNewLen >= nNewSize) {
while (a_nNewLen >= nNewSize)
{
nNewSize *= 2; nNewSize *= 2;
} }
void* pNewBuffer = realloc(m_rgpArgs, nNewSize * sizeof(SOCHAR*)); void* pNewBuffer = realloc(m_rgpArgs, nNewSize * sizeof(SOCHAR*));
if (!pNewBuffer) return false; if (!pNewBuffer) return false;
m_nArgsSize = nNewSize; m_nArgsSize = nNewSize;
m_rgpArgs = reinterpret_cast<SOCHAR**>(pNewBuffer); m_rgpArgs = reinterpret_cast<SOCHAR**>(pNewBuffer);
} }
return true; return true;
} }
@ -898,18 +1046,25 @@ CSimpleGlobTempl<SOCHAR>::GrowStringBuffer(
size_t a_uiMinSize size_t a_uiMinSize
) )
{ {
if (a_uiMinSize >= m_uiBufferSize) { if (a_uiMinSize >= m_uiBufferSize)
{
static const int SG_BUFFER_INITIAL_SIZE = 1024; static const int SG_BUFFER_INITIAL_SIZE = 1024;
size_t uiNewSize = (m_uiBufferSize > 0) ? size_t uiNewSize = (m_uiBufferSize > 0) ?
m_uiBufferSize * 2 : SG_BUFFER_INITIAL_SIZE; m_uiBufferSize * 2 : SG_BUFFER_INITIAL_SIZE;
while (a_uiMinSize >= uiNewSize) {
while (a_uiMinSize >= uiNewSize)
{
uiNewSize *= 2; uiNewSize *= 2;
} }
void* pNewBuffer = realloc(m_pBuffer, uiNewSize * sizeof(SOCHAR)); void* pNewBuffer = realloc(m_pBuffer, uiNewSize * sizeof(SOCHAR));
if (!pNewBuffer) return false; if (!pNewBuffer) return false;
m_uiBufferSize = uiNewSize; m_uiBufferSize = uiNewSize;
m_pBuffer = reinterpret_cast<SOCHAR*>(pNewBuffer); m_pBuffer = reinterpret_cast<SOCHAR*>(pNewBuffer);
} }
return true; return true;
} }
@ -922,9 +1077,12 @@ CSimpleGlobTempl<SOCHAR>::fileSortCompare(
{ {
const SOCHAR* s1 = *(reinterpret_cast<const SOCHAR**>(a1)); const SOCHAR* s1 = *(reinterpret_cast<const SOCHAR**>(a1));
const SOCHAR* s2 = *(reinterpret_cast<const SOCHAR**>(a2)); const SOCHAR* s2 = *(reinterpret_cast<const SOCHAR**>(a2));
if (s1 && s2) {
if (s1 && s2)
{
return SimpleGlobUtil::strcasecmp(s1, s2); return SimpleGlobUtil::strcasecmp(s1, s2);
} }
// nullptr sorts first // nullptr sorts first
return s1 == s2 ? 0 : (s1 ? 1 : -1); return s1 == s2 ? 0 : (s1 ? 1 : -1);
} }

View File

@ -275,7 +275,8 @@ enum _ESOFlags
relevant options use either SO_REQ_CMB or SO_OPT. SO_O_CLUMP requires relevant options use either SO_REQ_CMB or SO_OPT. SO_O_CLUMP requires
that relevant options use only SO_NONE. that relevant options use only SO_NONE.
*/ */
typedef enum _ESOArgType { typedef enum _ESOArgType
{
/*! No argument. Just the option flags. /*! No argument. Just the option flags.
e.g. -o --opt */ e.g. -o --opt */
SO_NONE, SO_NONE,
@ -323,7 +324,8 @@ class CSimpleOptTempl
{ {
public: public:
/*! @brief Structure used to define all known options. */ /*! @brief Structure used to define all known options. */
struct SOption { struct SOption
{
//SOption()//Added for compatibility with fractal flames. //SOption()//Added for compatibility with fractal flames.
//{ //{
@ -407,7 +409,8 @@ public:
@param a_rgOptions Valid option array @param a_rgOptions Valid option array
*/ */
inline void SetOptions(const SOption * a_rgOptions) { inline void SetOptions(const SOption* a_rgOptions)
{
m_rgOptions = a_rgOptions; m_rgOptions = a_rgOptions;
} }
@ -421,7 +424,8 @@ public:
inline void SetFlags(int a_nFlags) { m_nFlags = a_nFlags; } inline void SetFlags(int a_nFlags) { m_nFlags = a_nFlags; }
/*! @brief Query if a particular flag is set */ /*! @brief Query if a particular flag is set */
inline bool HasFlag(int a_nFlag) const { inline bool HasFlag(int a_nFlag) const noexcept
{
return (m_nFlags & a_nFlag) == a_nFlag; return (m_nFlags & a_nFlag) == a_nFlag;
} }
@ -453,28 +457,28 @@ public:
This function must always be called before processing the current This function must always be called before processing the current
option. This function is available only when Next() has returned true. option. This function is available only when Next() has returned true.
*/ */
inline ESOError LastError() const { return m_nLastError; } inline ESOError LastError() const noexcept { return m_nLastError; }
/*! @brief Return the nId value from the options array for the current /*! @brief Return the nId value from the options array for the current
option. option.
This function is available only when Next() has returned true. This function is available only when Next() has returned true.
*/ */
inline int OptionId() const { return m_nOptionId; } inline int OptionId() const noexcept { return m_nOptionId; }
/*! @brief Return the pszArg from the options array for the current /*! @brief Return the pszArg from the options array for the current
option. option.
This function is available only when Next() has returned true. This function is available only when Next() has returned true.
*/ */
inline const SOCHAR * OptionText() const { return m_pszOptionText; } inline const SOCHAR* OptionText() const noexcept { return m_pszOptionText; }
/*! @brief Return the argument for the current option where one exists. /*! @brief Return the argument for the current option where one exists.
If there is no argument for the option, this will return nullptr. If there is no argument for the option, this will return nullptr.
This function is available only when Next() has returned true. This function is available only when Next() has returned true.
*/ */
inline SOCHAR * OptionArg() const { return m_pszOptionArg; } inline SOCHAR* OptionArg() const noexcept { return m_pszOptionArg; }
/*! @brief Validate and return the desired number of arguments. /*! @brief Validate and return the desired number of arguments.
@ -502,7 +506,8 @@ public:
@param n Index of the file to return. This must be between 0 @param n Index of the file to return. This must be between 0
and FileCount() - 1; and FileCount() - 1;
*/ */
inline SOCHAR * File(int n) const { inline SOCHAR* File(int n) const
{
SO_ASSERT(n >= 0 && n < FileCount()); SO_ASSERT(n >= 0 && n < FileCount());
return m_argv[m_nLastArg + n]; return m_argv[m_nLastArg + n];
} }
@ -521,16 +526,21 @@ private:
int CalcMatch(const SOCHAR* a_pszSource, const SOCHAR* a_pszTest) const; int CalcMatch(const SOCHAR* a_pszSource, const SOCHAR* a_pszTest) const;
// Find the '=' character within a string. // Find the '=' character within a string.
inline SOCHAR * FindEquals(SOCHAR *s) const { inline SOCHAR* FindEquals(SOCHAR* s) const noexcept
{
while (*s && *s != SOCHAR('=')) ++s; while (*s && *s != SOCHAR('=')) ++s;
return *s ? s : nullptr; return *s ? s : nullptr;
} }
bool IsEqual(SOCHAR a_cLeft, SOCHAR a_cRight, int a_nArgType) const; bool IsEqual(SOCHAR a_cLeft, SOCHAR a_cRight, int a_nArgType) const;
inline void Copy(SOCHAR ** ppDst, SOCHAR ** ppSrc, int nCount) const { inline void Copy(SOCHAR** ppDst, SOCHAR** ppSrc, int nCount) const
{
#ifdef SO_MAX_ARGS #ifdef SO_MAX_ARGS
// keep our promise of no CLIB usage // keep our promise of no CLIB usage
while (nCount-- > 0) *ppDst++ = *ppSrc++; while (nCount-- > 0) *ppDst++ = *ppSrc++;
#else #else
memcpy(ppDst, ppSrc, nCount * sizeof(SOCHAR*)); memcpy(ppDst, ppSrc, nCount * sizeof(SOCHAR*));
#endif #endif
@ -580,25 +590,33 @@ CSimpleOptTempl<SOCHAR>::Init(
m_szShort[2] = SOCHAR('\0'); m_szShort[2] = SOCHAR('\0');
m_nFlags = a_nFlags; m_nFlags = a_nFlags;
m_pszClump = nullptr; m_pszClump = nullptr;
#ifdef SO_MAX_ARGS #ifdef SO_MAX_ARGS
if (m_argc > SO_MAX_ARGS) {
if (m_argc > SO_MAX_ARGS)
{
m_nLastError = SO_ARG_INVALID_DATA; m_nLastError = SO_ARG_INVALID_DATA;
m_nLastArg = 0; m_nLastArg = 0;
return false; return false;
} }
#else #else
if (m_rgShuffleBuf) {
if (m_rgShuffleBuf)
{
free(m_rgShuffleBuf); free(m_rgShuffleBuf);
} }
if (m_argc > SO_STATICBUF) {
if (m_argc > SO_STATICBUF)
{
m_rgShuffleBuf = reinterpret_cast<SOCHAR**>(malloc(sizeof(SOCHAR*) * m_argc)); m_rgShuffleBuf = reinterpret_cast<SOCHAR**>(malloc(sizeof(SOCHAR*) * m_argc));
if (!m_rgShuffleBuf) {
if (!m_rgShuffleBuf)
{
return false; return false;
} }
} }
#endif
#endif
return true; return true;
} }
@ -607,52 +625,64 @@ bool
CSimpleOptTempl<SOCHAR>::Next() CSimpleOptTempl<SOCHAR>::Next()
{ {
#ifdef SO_MAX_ARGS #ifdef SO_MAX_ARGS
if (m_argc > SO_MAX_ARGS) {
if (m_argc > SO_MAX_ARGS)
{
SO_ASSERT(!"Too many args! Check the return value of Init()!"); SO_ASSERT(!"Too many args! Check the return value of Init()!");
return false; return false;
} }
#endif #endif
// process a clumped option string if appropriate // process a clumped option string if appropriate
if (m_pszClump && *m_pszClump) { if (m_pszClump && *m_pszClump)
{
// silently discard invalid clumped option // silently discard invalid clumped option
bool bIsValid = NextClumped(); bool bIsValid = NextClumped();
while (*m_pszClump && !bIsValid && HasFlag(SO_O_NOERR)) {
while (*m_pszClump && !bIsValid && HasFlag(SO_O_NOERR))
{
bIsValid = NextClumped(); bIsValid = NextClumped();
} }
// return this option if valid or we are returning errors // return this option if valid or we are returning errors
if (bIsValid || !HasFlag(SO_O_NOERR)) { if (bIsValid || !HasFlag(SO_O_NOERR))
{
return true; return true;
} }
} }
SO_ASSERT(!m_pszClump || !*m_pszClump); SO_ASSERT(!m_pszClump || !*m_pszClump);
m_pszClump = nullptr; m_pszClump = nullptr;
// init for the next option // init for the next option
m_nOptionIdx = m_nNextOption; m_nOptionIdx = m_nNextOption;
m_nOptionId = -1; m_nOptionId = -1;
m_pszOptionText = nullptr; m_pszOptionText = nullptr;
m_pszOptionArg = nullptr; m_pszOptionArg = nullptr;
m_nLastError = SO_SUCCESS; m_nLastError = SO_SUCCESS;
// find the next option // find the next option
SOCHAR cFirst; SOCHAR cFirst;
int nTableIdx = -1; int nTableIdx = -1;
int nOptIdx = m_nOptionIdx; int nOptIdx = m_nOptionIdx;
while (nTableIdx < 0 && nOptIdx < m_nLastArg) {
while (nTableIdx < 0 && nOptIdx < m_nLastArg)
{
SOCHAR* pszArg = m_argv[nOptIdx]; SOCHAR* pszArg = m_argv[nOptIdx];
m_pszOptionArg = nullptr; m_pszOptionArg = nullptr;
// find this option in the options table // find this option in the options table
cFirst = PrepareArg(pszArg); cFirst = PrepareArg(pszArg);
if (pszArg[0] == SOCHAR('-')) {
if (pszArg[0] == SOCHAR('-'))
{
// find any combined argument string and remove equals sign // find any combined argument string and remove equals sign
m_pszOptionArg = FindEquals(pszArg); m_pszOptionArg = FindEquals(pszArg);
if (m_pszOptionArg) {
if (m_pszOptionArg)
{
*m_pszOptionArg++ = SOCHAR('\0'); *m_pszOptionArg++ = SOCHAR('\0');
} }
} }
nTableIdx = LookupOption(pszArg); nTableIdx = LookupOption(pszArg);
// if we didn't find this option but if it is a short form // if we didn't find this option but if it is a short form
@ -665,9 +695,11 @@ CSimpleOptTempl<SOCHAR>::Next()
&& pszArg[2]) && pszArg[2])
{ {
// test for a short-form with argument if appropriate // test for a short-form with argument if appropriate
if (HasFlag(SO_O_SHORTARG)) { if (HasFlag(SO_O_SHORTARG))
{
m_szShort[1] = pszArg[1]; m_szShort[1] = pszArg[1];
int nIdx = LookupOption(m_szShort); int nIdx = LookupOption(m_szShort);
if (nIdx >= 0 if (nIdx >= 0
&& (m_rgOptions[nIdx].nArgType == SO_REQ_CMB && (m_rgOptions[nIdx].nArgType == SO_REQ_CMB
|| m_rgOptions[nIdx].nArgType == SO_OPT)) || m_rgOptions[nIdx].nArgType == SO_OPT))
@ -680,12 +712,16 @@ CSimpleOptTempl<SOCHAR>::Next()
// test for a clumped short-form option string and we didn't // test for a clumped short-form option string and we didn't
// match on the short-form argument above // match on the short-form argument above
if (nTableIdx < 0 && HasFlag(SO_O_CLUMP)) { if (nTableIdx < 0 && HasFlag(SO_O_CLUMP))
{
m_pszClump = &pszArg[1]; m_pszClump = &pszArg[1];
++m_nNextOption; ++m_nNextOption;
if (nOptIdx > m_nOptionIdx) {
if (nOptIdx > m_nOptionIdx)
{
ShuffleArg(m_nOptionIdx, nOptIdx - m_nOptionIdx); ShuffleArg(m_nOptionIdx, nOptIdx - m_nOptionIdx);
} }
return Next(); return Next();
} }
} }
@ -693,62 +729,80 @@ CSimpleOptTempl<SOCHAR>::Next()
// The option wasn't found. If it starts with a switch character // The option wasn't found. If it starts with a switch character
// and we are not suppressing errors for invalid options then it // and we are not suppressing errors for invalid options then it
// is reported as an error, otherwise it is data. // is reported as an error, otherwise it is data.
if (nTableIdx < 0) { if (nTableIdx < 0)
if (!HasFlag(SO_O_NOERR) && pszArg[0] == SOCHAR('-')) { {
if (!HasFlag(SO_O_NOERR) && pszArg[0] == SOCHAR('-'))
{
m_pszOptionText = pszArg; m_pszOptionText = pszArg;
break; break;
} }
pszArg[0] = cFirst; pszArg[0] = cFirst;
++nOptIdx; ++nOptIdx;
if (m_pszOptionArg) {
if (m_pszOptionArg)
{
*(--m_pszOptionArg) = SOCHAR('='); *(--m_pszOptionArg) = SOCHAR('=');
} }
} }
} }
// end of options // end of options
if (nOptIdx >= m_nLastArg) { if (nOptIdx >= m_nLastArg)
if (nOptIdx > m_nOptionIdx) { {
if (nOptIdx > m_nOptionIdx)
{
ShuffleArg(m_nOptionIdx, nOptIdx - m_nOptionIdx); ShuffleArg(m_nOptionIdx, nOptIdx - m_nOptionIdx);
} }
return false; return false;
} }
++m_nNextOption;
++m_nNextOption;
// get the option id // get the option id
ESOArgType nArgType = SO_NONE; ESOArgType nArgType = SO_NONE;
if (nTableIdx < 0) {
if (nTableIdx < 0)
{
m_nLastError = ESOError(nTableIdx); // error code m_nLastError = ESOError(nTableIdx); // error code
} }
else { else
{
m_nOptionId = m_rgOptions[nTableIdx].nId; m_nOptionId = m_rgOptions[nTableIdx].nId;
m_pszOptionText = m_rgOptions[nTableIdx].pszArg; m_pszOptionText = m_rgOptions[nTableIdx].pszArg;
// ensure that the arg type is valid // ensure that the arg type is valid
nArgType = m_rgOptions[nTableIdx].nArgType; nArgType = m_rgOptions[nTableIdx].nArgType;
switch (nArgType) {
switch (nArgType)
{
case SO_NONE: case SO_NONE:
if (m_pszOptionArg) { if (m_pszOptionArg)
{
m_nLastError = SO_ARG_INVALID; m_nLastError = SO_ARG_INVALID;
} }
break; break;
case SO_REQ_SEP: case SO_REQ_SEP:
if (m_pszOptionArg) { if (m_pszOptionArg)
{
// they wanted separate args, but we got a combined one, // they wanted separate args, but we got a combined one,
// unless we are pedantic, just accept it. // unless we are pedantic, just accept it.
if (HasFlag(SO_O_PEDANTIC)) { if (HasFlag(SO_O_PEDANTIC))
{
m_nLastError = SO_ARG_INVALID_TYPE; m_nLastError = SO_ARG_INVALID_TYPE;
} }
} }
// more processing after we shuffle // more processing after we shuffle
break; break;
case SO_REQ_CMB: case SO_REQ_CMB:
if (!m_pszOptionArg) { if (!m_pszOptionArg)
{
m_nLastError = SO_ARG_MISSING; m_nLastError = SO_ARG_MISSING;
} }
break; break;
case SO_OPT: case SO_OPT:
@ -759,13 +813,15 @@ CSimpleOptTempl<SOCHAR>::Next()
// nothing to do. Caller must now check for valid arguments // nothing to do. Caller must now check for valid arguments
// using GetMultiArg() // using GetMultiArg()
break; break;
default: default:
break; break;
} }
} }
// shuffle the files out of the way // shuffle the files out of the way
if (nOptIdx > m_nOptionIdx) { if (nOptIdx > m_nOptionIdx)
{
ShuffleArg(m_nOptionIdx, nOptIdx - m_nOptionIdx); ShuffleArg(m_nOptionIdx, nOptIdx - m_nOptionIdx);
} }
@ -776,7 +832,9 @@ CSimpleOptTempl<SOCHAR>::Next()
&& m_nLastError == SO_SUCCESS) && m_nLastError == SO_SUCCESS)
{ {
SOCHAR** ppArgs = MultiArg(1); SOCHAR** ppArgs = MultiArg(1);
if (ppArgs) {
if (ppArgs)
{
m_pszOptionArg = *ppArgs; m_pszOptionArg = *ppArgs;
} }
} }
@ -788,7 +846,8 @@ template<class SOCHAR>
void void
CSimpleOptTempl<SOCHAR>::Stop() CSimpleOptTempl<SOCHAR>::Stop()
{ {
if (m_nNextOption < m_nLastArg) { if (m_nNextOption < m_nLastArg)
{
ShuffleArg(m_nNextOption, m_nLastArg - m_nNextOption); ShuffleArg(m_nNextOption, m_nLastArg - m_nNextOption);
} }
} }
@ -800,6 +859,7 @@ CSimpleOptTempl<SOCHAR>::PrepareArg(
) const ) const
{ {
#ifdef _WIN32 #ifdef _WIN32
// On Windows we can accept the forward slash as a single character // On Windows we can accept the forward slash as a single character
// option delimiter, but it cannot replace the '-' option used to // option delimiter, but it cannot replace the '-' option used to
// denote stdin. On Un*x paths may start with slash so it may not // denote stdin. On Un*x paths may start with slash so it may not
@ -812,6 +872,7 @@ CSimpleOptTempl<SOCHAR>::PrepareArg(
a_pszString[0] = (SOCHAR)'-'; a_pszString[0] = (SOCHAR)'-';
return (SOCHAR)'/'; return (SOCHAR)'/';
} }
#endif #endif
return a_pszString[0]; return a_pszString[0];
} }
@ -826,15 +887,15 @@ CSimpleOptTempl<SOCHAR>::NextClumped()
m_pszOptionText = nullptr; m_pszOptionText = nullptr;
m_pszOptionArg = nullptr; m_pszOptionArg = nullptr;
m_nLastError = SO_SUCCESS; m_nLastError = SO_SUCCESS;
// lookup this option, ensure that we are using exact matching // lookup this option, ensure that we are using exact matching
int nSavedFlags = m_nFlags; const auto nSavedFlags = m_nFlags;
m_nFlags = SO_O_EXACT; m_nFlags = SO_O_EXACT;
int nTableIdx = LookupOption(m_szShort); const auto nTableIdx = LookupOption(m_szShort);
m_nFlags = nSavedFlags; m_nFlags = nSavedFlags;
// unknown option // unknown option
if (nTableIdx < 0) { if (nTableIdx < 0)
{
m_pszOptionText = m_szShort; // invalid option m_pszOptionText = m_szShort; // invalid option
m_nLastError = ESOError(nTableIdx); // error code m_nLastError = ESOError(nTableIdx); // error code
return false; return false;
@ -843,15 +904,20 @@ CSimpleOptTempl<SOCHAR>::NextClumped()
// valid option // valid option
m_pszOptionText = m_rgOptions[nTableIdx].pszArg; m_pszOptionText = m_rgOptions[nTableIdx].pszArg;
ESOArgType nArgType = m_rgOptions[nTableIdx].nArgType; ESOArgType nArgType = m_rgOptions[nTableIdx].nArgType;
if (nArgType == SO_NONE) {
if (nArgType == SO_NONE)
{
m_nOptionId = m_rgOptions[nTableIdx].nId; m_nOptionId = m_rgOptions[nTableIdx].nId;
return true; return true;
} }
if (nArgType == SO_REQ_CMB && *m_pszClump) { if (nArgType == SO_REQ_CMB && *m_pszClump)
{
m_nOptionId = m_rgOptions[nTableIdx].nId; m_nOptionId = m_rgOptions[nTableIdx].nId;
m_pszOptionArg = m_pszClump; m_pszOptionArg = m_pszClump;
while (*m_pszClump) ++m_pszClump; // must point to an empty string while (*m_pszClump) ++m_pszClump; // must point to an empty string
return true; return true;
} }
@ -878,16 +944,12 @@ CSimpleOptTempl<SOCHAR>::ShuffleArg(
SOCHAR* staticBuf[SO_STATICBUF]; SOCHAR* staticBuf[SO_STATICBUF];
SOCHAR** buf = m_rgShuffleBuf ? m_rgShuffleBuf : staticBuf; SOCHAR** buf = m_rgShuffleBuf ? m_rgShuffleBuf : staticBuf;
int nTail = m_argc - a_nStartIdx - a_nCount; int nTail = m_argc - a_nStartIdx - a_nCount;
// make a copy of the elements to be moved // make a copy of the elements to be moved
Copy(buf, m_argv + a_nStartIdx, a_nCount); Copy(buf, m_argv + a_nStartIdx, a_nCount);
// move the tail down // move the tail down
Copy(m_argv + a_nStartIdx, m_argv + a_nStartIdx + a_nCount, nTail); Copy(m_argv + a_nStartIdx, m_argv + a_nStartIdx + a_nCount, nTail);
// append the moved elements to the tail // append the moved elements to the tail
Copy(m_argv + a_nStartIdx + nTail, buf, a_nCount); Copy(m_argv + a_nStartIdx + nTail, buf, a_nCount);
// update the index of the last unshuffled arg // update the index of the last unshuffled arg
m_nLastArg -= a_nCount; m_nLastArg -= a_nCount;
} }
@ -904,16 +966,20 @@ CSimpleOptTempl<SOCHAR>::LookupOption(
int nBestMatchLen = 0; // matching characters of best match int nBestMatchLen = 0; // matching characters of best match
int nLastMatchLen = 0; // matching characters of last best match int nLastMatchLen = 0; // matching characters of last best match
for (int n = 0; m_rgOptions[n].nId >= 0; ++n) { for (int n = 0; m_rgOptions[n].nId >= 0; ++n)
{
// the option table must use hyphens as the option character, // the option table must use hyphens as the option character,
// the slash character is converted to a hyphen for testing. // the slash character is converted to a hyphen for testing.
SO_ASSERT(m_rgOptions[n].pszArg[0] != (SOCHAR)'/'); SO_ASSERT(m_rgOptions[n].pszArg[0] != (SOCHAR)'/');
int nMatchLen = CalcMatch(m_rgOptions[n].pszArg, a_pszOption); int nMatchLen = CalcMatch(m_rgOptions[n].pszArg, a_pszOption);
if (nMatchLen == -1) {
if (nMatchLen == -1)
{
return n; return n;
} }
if (nMatchLen > 0 && nMatchLen >= nBestMatchLen) {
if (nMatchLen > 0 && nMatchLen >= nBestMatchLen)
{
nLastMatchLen = nBestMatchLen; nLastMatchLen = nBestMatchLen;
nBestMatchLen = nMatchLen; nBestMatchLen = nMatchLen;
nBestMatch = n; nBestMatch = n;
@ -922,9 +988,11 @@ CSimpleOptTempl<SOCHAR>::LookupOption(
// only partial matches or no match gets to here, ensure that we // only partial matches or no match gets to here, ensure that we
// don't return a partial match unless it is a clear winner // don't return a partial match unless it is a clear winner
if (HasFlag(SO_O_EXACT) || nBestMatch == -1) { if (HasFlag(SO_O_EXACT) || nBestMatch == -1)
{
return SO_OPT_INVALID; return SO_OPT_INVALID;
} }
return (nBestMatchLen > nLastMatchLen) ? nBestMatch : SO_OPT_MULTIPLE; return (nBestMatchLen > nLastMatchLen) ? nBestMatch : SO_OPT_MULTIPLE;
} }
@ -937,40 +1005,51 @@ CSimpleOptTempl<SOCHAR>::CalcMatch(
const SOCHAR* a_pszTest const SOCHAR* a_pszTest
) const ) const
{ {
if (!a_pszSource || !a_pszTest) { if (!a_pszSource || !a_pszTest)
{
return 0; return 0;
} }
// determine the argument type // determine the argument type
int nArgType = SO_O_ICASE_LONG; int nArgType = SO_O_ICASE_LONG;
if (a_pszSource[0] != '-') {
if (a_pszSource[0] != '-')
{
nArgType = SO_O_ICASE_WORD; nArgType = SO_O_ICASE_WORD;
} }
else if (a_pszSource[1] != '-' && !a_pszSource[2]) { else if (a_pszSource[1] != '-' && !a_pszSource[2])
{
nArgType = SO_O_ICASE_SHORT; nArgType = SO_O_ICASE_SHORT;
} }
// match and skip leading hyphens // match and skip leading hyphens
while (*a_pszSource == SOCHAR('-') && *a_pszSource == *a_pszTest) { while (*a_pszSource == SOCHAR('-') && *a_pszSource == *a_pszTest)
{
++a_pszSource; ++a_pszSource;
++a_pszTest; ++a_pszTest;
} }
if (*a_pszSource == SOCHAR('-') || *a_pszTest == SOCHAR('-')) {
if (*a_pszSource == SOCHAR('-') || *a_pszTest == SOCHAR('-'))
{
return 0; return 0;
} }
// find matching number of characters in the strings // find matching number of characters in the strings
int nLen = 0; int nLen = 0;
while (*a_pszSource && IsEqual(*a_pszSource, *a_pszTest, nArgType)) {
while (*a_pszSource && IsEqual(*a_pszSource, *a_pszTest, nArgType))
{
++a_pszSource; ++a_pszSource;
++a_pszTest; ++a_pszTest;
++nLen; ++nLen;
} }
// if we have exhausted the source... // if we have exhausted the source...
if (!*a_pszSource) { if (!*a_pszSource)
{
// and the test strings, then it's a perfect match // and the test strings, then it's a perfect match
if (!*a_pszTest) { if (!*a_pszTest)
{
return -1; return -1;
} }
@ -981,7 +1060,8 @@ CSimpleOptTempl<SOCHAR>::CalcMatch(
// if we haven't exhausted the test string then it is not a match // if we haven't exhausted the test string then it is not a match
// i.e. "--mantle" will not best-fit match to "--mandate" at all. // i.e. "--mantle" will not best-fit match to "--mandate" at all.
if (*a_pszTest) { if (*a_pszTest)
{
return 0; return 0;
} }
@ -998,10 +1078,13 @@ CSimpleOptTempl<SOCHAR>::IsEqual(
) const ) const
{ {
// if this matches then we are doing case-insensitive matching // if this matches then we are doing case-insensitive matching
if (m_nFlags & a_nArgType) { if (m_nFlags & a_nArgType)
{
if (a_cLeft >= 'A' && a_cLeft <= 'Z') a_cLeft += 'a' - 'A'; if (a_cLeft >= 'A' && a_cLeft <= 'Z') a_cLeft += 'a' - 'A';
if (a_cRight >= 'A' && a_cRight <= 'Z') a_cRight += 'a' - 'A'; if (a_cRight >= 'A' && a_cRight <= 'Z') a_cRight += 'a' - 'A';
} }
return a_cLeft == a_cRight; return a_cLeft == a_cRight;
} }
@ -1014,7 +1097,8 @@ CSimpleOptTempl<SOCHAR>::MultiArg(
) )
{ {
// ensure we have enough arguments // ensure we have enough arguments
if (m_nNextOption + a_nCount > m_nLastArg) { if (m_nNextOption + a_nCount > m_nLastArg)
{
m_nLastError = SO_ARG_MISSING; m_nLastError = SO_ARG_MISSING;
return nullptr; return nullptr;
} }
@ -1024,14 +1108,19 @@ CSimpleOptTempl<SOCHAR>::MultiArg(
// Ensure that each of the following don't start with an switch character. // Ensure that each of the following don't start with an switch character.
// Only make this check if we are returning errors for unknown arguments. // Only make this check if we are returning errors for unknown arguments.
if (!HasFlag(SO_O_NOERR)) { if (!HasFlag(SO_O_NOERR))
for (int n = 0; n < a_nCount; ++n) { {
for (int n = 0; n < a_nCount; ++n)
{
SOCHAR ch = PrepareArg(rgpszArg[n]); SOCHAR ch = PrepareArg(rgpszArg[n]);
if (rgpszArg[n][0] == SOCHAR('-')) {
if (rgpszArg[n][0] == SOCHAR('-'))
{
rgpszArg[n][0] = ch; rgpszArg[n][0] = ch;
m_nLastError = SO_ARG_INVALID_DATA; m_nLastError = SO_ARG_INVALID_DATA;
return nullptr; return nullptr;
} }
rgpszArg[n][0] = ch; rgpszArg[n][0] = ch;
} }
} }

View File

@ -65,7 +65,9 @@ bool EmberRender(int argc, _TCHAR* argv[], EmberOptions& opt)
if (opt.EmberCL() && renderer->RendererType() != eRendererType::OPENCL_RENDERER)//OpenCL init failed, so fall back to CPU. if (opt.EmberCL() && renderer->RendererType() != eRendererType::OPENCL_RENDERER)//OpenCL init failed, so fall back to CPU.
opt.EmberCL(false); opt.EmberCL(false);
if (auto rendererCL = dynamic_cast<RendererCL<T, float>*>(renderer.get())) auto rendererCL = dynamic_cast<RendererCL<T, float>*>(renderer.get());
if (rendererCL)
{ {
rendererCL->OptAffine(true);//Optimize empty affines for final renderers, this is normally false for the interactive renderer. rendererCL->OptAffine(true);//Optimize empty affines for final renderers, this is normally false for the interactive renderer.
rendererCL->SubBatchPercentPerThread(float(opt.SBPctPerTh())); rendererCL->SubBatchPercentPerThread(float(opt.SBPctPerTh()));
@ -267,6 +269,17 @@ bool EmberRender(int argc, _TCHAR* argv[], EmberOptions& opt)
// resume = true; // resume = true;
//} //}
//while (success && renderer->ProcessState() != ACCUM_DONE); //while (success && renderer->ProcessState() != ACCUM_DONE);
//for (auto gbw = 64; gbw <= 64; gbw <<= 1)
{
//for (auto gbh = 2; gbh <= 64; gbh <<= 1)
{
//if (rendererCL)
//{
// VerbosePrint("Running OpenCL grid blocks of " << gbw << "x" << gbh);
// rendererCL->IterBlocksWide(gbw);
// rendererCL->IterBlocksHigh(gbh);
//}
stats.Clear();
StripsRender<T>(renderer.get(), ember, finalImage, 0, strips, opt.YAxisUp(), StripsRender<T>(renderer.get(), ember, finalImage, 0, strips, opt.YAxisUp(),
[&](size_t strip)//Pre strip. [&](size_t strip)//Pre strip.
{ {
@ -316,7 +329,7 @@ bool EmberRender(int argc, _TCHAR* argv[], EmberOptions& opt)
const auto doPng16 = Find(opt.Format(), "png16"); const auto doPng16 = Find(opt.Format(), "png16");
const auto doOnlyPng8 = doPng8 && !doPng16; const auto doOnlyPng8 = doPng8 && !doPng16;
const auto doOnlyExr16 = doExr16 && !doExr32; const auto doOnlyExr16 = doExr16 && !doExr32;
vector<byte> rgb8Image; vector<unsigned char> rgb8Image;
vector<std::thread> writeFileThreads; vector<std::thread> writeFileThreads;
writeFileThreads.reserve(6); writeFileThreads.reserve(6);
@ -362,7 +375,7 @@ bool EmberRender(int argc, _TCHAR* argv[], EmberOptions& opt)
{ {
const auto filename = MakeSingleFilename(inputPath, opt.Out(), finalEmber.m_Name, opt.Prefix(), opt.Suffix(), "png", padding, i, useName); const auto filename = MakeSingleFilename(inputPath, opt.Out(), finalEmber.m_Name, opt.Prefix(), opt.Suffix(), "png", padding, i, useName);
VerbosePrint("Writing " + filename); VerbosePrint("Writing " + filename);
vector<byte> rgba8Image(size * 4); vector<unsigned char> rgba8Image(size * 4);
Rgba32ToRgba8(finalImagep, rgba8Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, opt.Transparency()); Rgba32ToRgba8(finalImagep, rgba8Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, opt.Transparency());
const auto writeSuccess = WritePng(filename.c_str(), rgba8Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, 1, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick()); const auto writeSuccess = WritePng(filename.c_str(), rgba8Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, 1, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick());
@ -387,7 +400,7 @@ bool EmberRender(int argc, _TCHAR* argv[], EmberOptions& opt)
VerbosePrint("Writing " + filename); VerbosePrint("Writing " + filename);
vector<glm::uint16> rgba16Image(size * 4); vector<glm::uint16> rgba16Image(size * 4);
Rgba32ToRgba16(finalImagep, rgba16Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, opt.Transparency()); Rgba32ToRgba16(finalImagep, rgba16Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, opt.Transparency());
const auto writeSuccess = WritePng(filename.c_str(), (byte*)rgba16Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, 2, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick()); const auto writeSuccess = WritePng(filename.c_str(), (unsigned char*)rgba16Image.data(), finalEmber.m_FinalRasW, finalEmber.m_FinalRasH, 2, opt.EnableComments(), comments, opt.Id(), opt.Url(), opt.Nick());
if (!writeSuccess) if (!writeSuccess)
cout << "Error writing " << filename << "\n"; cout << "Error writing " << filename << "\n";
@ -451,9 +464,17 @@ bool EmberRender(int argc, _TCHAR* argv[], EmberOptions& opt)
Join(writeFileThreads); Join(writeFileThreads);
}); });
//if (!rendererCL)
// break;
}
// if (!rendererCL)
//break;
}
if (opt.EmberCL() && opt.DumpKernel()) if (opt.EmberCL() && opt.DumpKernel())
{ {
if (const auto rendererCL = dynamic_cast<RendererCL<T, float>*>(renderer.get())) if (rendererCL)
{ {
cout << "Iteration kernel:\n" << cout << "Iteration kernel:\n" <<
rendererCL->IterKernel() << "\n\n" << rendererCL->IterKernel() << "\n\n" <<

View File

@ -81,18 +81,17 @@ void writeRgba1(const char filename[],
cout << e.what() << endl; cout << e.what() << endl;
} }
} }
/*
template <typename T> template <typename T>
void SaveFinalImage(Renderer<T, T>& renderer, vector<byte>& pixels, char* suffix) void SaveFinalImage(Renderer<T, T>& renderer, vector<byte>& pixels, char* suffix)
{ {
long newSize; long newSize;
ostringstream os; ostringstream os;
os << ".\\BasicFlame_" << sizeof(T) << "_" << suffix ".bmp"; os << ".\\BasicFlame_" << sizeof(T) << "_" << suffix << ".bmp";
BYTE* bgrBuf = ConvertRGBToBMPBuffer(pixels.data(), renderer.FinalRasW(), renderer.FinalRasH(), newSize); BYTE* bgrBuf = ConvertRGBToBMPBuffer(pixels.data(), renderer.FinalRasW(), renderer.FinalRasH(), newSize);
SaveBMP(ch, bgrBuf, renderer.FinalRasW(), renderer.FinalRasH(), newSize); SaveBMP(ch, bgrBuf, renderer.FinalRasW(), renderer.FinalRasH(), newSize);
delete [] bgrBuf; delete [] bgrBuf;
} }
template <typename T> template <typename T>
Ember<T> CreateBasicEmber(uint width, uint height, uint ss, T quality, T centerX, T centerY, T rotate) Ember<T> CreateBasicEmber(uint width, uint height, uint ss, T quality, T centerX, T centerY, T rotate)
{ {
@ -125,6 +124,7 @@ Ember<T> CreateBasicEmber(uint width, uint height, uint ss, T quality, T centerX
//ember1.SetFinalXform(xform4); //ember1.SetFinalXform(xform4);
return ember1; return ember1;
} }
*/
string GetEmberCLKernelString(Ember<float>& ember, bool iter, bool log, bool de, uint ss, bool accum) string GetEmberCLKernelString(Ember<float>& ember, bool iter, bool log, bool de, uint ss, bool accum)
{ {
@ -762,12 +762,17 @@ bool TestVarRegPrePost()
success = false; success = false;
} }
if (preVar)
{
if (!TestVarPrecalcEqual<float, float>(regVar, preVar)) if (!TestVarPrecalcEqual<float, float>(regVar, preVar))
{ {
cout << "Regular and pre variation precalc test failed for " << regVar->Name() << " and " << preVar->Name() << "." << endl; cout << "Regular and pre variation precalc test failed for " << regVar->Name() << " and " << preVar->Name() << "." << endl;
success = false; success = false;
} }
}
if (postVar)
{
if (!TestVarPrecalcEqual<float, float>(regVar, postVar)) if (!TestVarPrecalcEqual<float, float>(regVar, postVar))
{ {
cout << "Regular and post variation precalc test failed for " << regVar->Name() << " and " << postVar->Name() << "." << endl; cout << "Regular and post variation precalc test failed for " << regVar->Name() << " and " << postVar->Name() << "." << endl;
@ -775,6 +780,7 @@ bool TestVarRegPrePost()
} }
} }
} }
}
else else
{ {
cout << "Regular variation " << i << " was NULL." << endl; cout << "Regular variation " << i << " was NULL." << endl;
@ -2167,7 +2173,7 @@ void DistribTester()
#ifdef _DEBUG #ifdef _DEBUG
//Ensure distribution contains no out of bounds indices. //Ensure distribution contains no out of bounds indices.
if (byte(i) >= xformCount) if ((unsigned char)i >= xformCount)
throw "Out of bounds xform index in selection distribution."; throw "Out of bounds xform index in selection distribution.";
#endif #endif

View File

@ -15,7 +15,7 @@ class FractoriumAboutDialog : public QDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
FractoriumAboutDialog(QWidget* p = nullptr, Qt::WindowFlags f = 0); FractoriumAboutDialog(QWidget* p = nullptr, Qt::WindowFlags f = Qt::WindowType::Widget);
private: private:
Ui::AboutDialog ui; Ui::AboutDialog ui;

View File

@ -38,8 +38,8 @@ void CurvesGraphicsView::PointChanged(int curveIndex, int pointIndex, const QPoi
{ {
if (curveIndex == m_Index) if (curveIndex == m_Index)
{ {
double x = point.x() / width(); const auto x = point.x() / width();
double y = (height() - point.y()) / height(); const auto y = (height() - point.y()) / height();
emit PointChangedSignal(curveIndex, pointIndex, QPointF(x, y)); emit PointChangedSignal(curveIndex, pointIndex, QPointF(x, y));
} }
} }
@ -54,7 +54,7 @@ QPointF CurvesGraphicsView::Get(int curveIndex, int pointIndex)
{ {
if (curveIndex < 4 && pointIndex < m_Points[curveIndex].size()) if (curveIndex < 4 && pointIndex < m_Points[curveIndex].size())
{ {
EllipseItem* item = m_Points[curveIndex][pointIndex]; if (EllipseItem* item = m_Points[curveIndex][pointIndex])
return QPointF(item->pos().x() / width(), (height() - item->pos().y()) / height()); return QPointF(item->pos().x() / width(), (height() - item->pos().y()) / height());
} }
@ -99,7 +99,7 @@ void CurvesGraphicsView::Set(Curves<float>& curves)
m_Scene.addItem(item); m_Scene.addItem(item);
m_Points[index].push_back(item); m_Points[index].push_back(item);
item->setZValue(zval); item->setZValue(zval);
QPointF point(curves.m_Points[index][i].x, curves.m_Points[index][i].y); const QPointF point(curves.m_Points[index][i].x, curves.m_Points[index][i].y);
Set(index, i, point); Set(index, i, point);
} }
}; };
@ -138,7 +138,7 @@ void CurvesGraphicsView::SetTop(CurveIndex curveIndex)
for (size_t i = 0; i < 4; i++) for (size_t i = 0; i < 4; i++)
{ {
bool b = (i == m_Index); const auto b = (i == m_Index);
for (auto& p : m_Points[i]) for (auto& p : m_Points[i])
p->SetCurrent(b); p->SetCurrent(b);
@ -153,9 +153,9 @@ void CurvesGraphicsView::paintEvent(QPaintEvent* e)
{ {
QGraphicsView::paintEvent(e); QGraphicsView::paintEvent(e);
int i; int i;
QRectF rect = scene()->sceneRect(); const QRectF rect = scene()->sceneRect();
double w2 = width() / 2; const double w2 = width() / 2;
double h2 = height() / 2; const double h2 = height() / 2;
//Draw axis lines. //Draw axis lines.
m_XLine->setLine(QLineF(0, h2, width(), h2)); m_XLine->setLine(QLineF(0, h2, width(), h2));
m_YLine->setLine(QLineF(w2, 0, w2, height())); m_YLine->setLine(QLineF(w2, 0, w2, height()));
@ -196,8 +196,8 @@ void CurvesGraphicsView::paintEvent(QPaintEvent* e)
for (int j = 0; j < rect.width(); j++) for (int j = 0; j < rect.width(); j++)
{ {
auto x = j; const auto x = j;
auto y = spline.Interpolate(x); const auto y = spline.Interpolate(x);
paths[i].lineTo(QPointF(x, y)); paths[i].lineTo(QPointF(x, y));
} }
@ -218,33 +218,39 @@ void CurvesGraphicsView::paintEvent(QPaintEvent* e)
void CurvesGraphicsView::mousePressEvent(QMouseEvent* e) void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
{ {
QGraphicsView::mousePressEvent(e); QGraphicsView::mousePressEvent(e);
auto thresh = devicePixelRatioF() * 4;
if (e != nullptr)
return;
const auto thresh = devicePixelRatioF() * 4;
auto findpoint = [&](int x, int y, double thresh) -> int auto findpoint = [&](int x, int y, double thresh) -> int
{ {
for (int i = 0; i < m_Points[m_Index].size(); i++) for (int i = 0; i < m_Points[m_Index].size(); i++)
{ {
auto item = m_Points[m_Index][i]; if (auto item = m_Points[m_Index][i])
auto xdist = std::abs(item->pos().x() - x); {
auto ydist = std::abs(item->pos().y() - y); const auto xdist = std::abs(item->pos().x() - x);
auto threshAgain = thresh; const auto ydist = std::abs(item->pos().y() - y);
const auto threshAgain = thresh;
if (xdist < threshAgain && ydist < threshAgain) if (xdist < threshAgain && ydist < threshAgain)
return i; return i;
} }
}
return -1; return -1;
}; };
if (e->button() == Qt::RightButton) if (e->button() == Qt::RightButton)
{ {
int i = findpoint(e->pos().x(), e->pos().y(), thresh); const auto i = findpoint(e->pos().x(), e->pos().y(), thresh);
if (i != -1) if (i != -1)
emit PointRemovedSignal(m_Index, i); emit PointRemovedSignal(m_Index, i);
} }
else if (findpoint(e->pos().x(), e->pos().y(), thresh * 2) == -1) else if (findpoint(e->pos().x(), e->pos().y(), thresh * 2) == -1)
{ {
QRectF rect = scene()->sceneRect(); const auto rect = scene()->sceneRect();
auto points = m_Points[m_Index]; auto points = m_Points[m_Index];
if (points.size() < 2) if (points.size() < 2)
@ -261,14 +267,14 @@ void CurvesGraphicsView::mousePressEvent(QMouseEvent* e)
for (int j = 0; j < rect.width(); j++) for (int j = 0; j < rect.width(); j++)
{ {
auto y = spline.Interpolate(j); auto y = spline.Interpolate(j);
auto xdist = std::abs(j - e->pos().x()); const auto xdist = std::abs(j - e->pos().x());
auto ydist = std::abs(y - e->pos().y()); const auto ydist = std::abs(y - e->pos().y());
if (xdist < thresh && ydist < thresh) if (xdist < thresh && ydist < thresh)
{ {
double x = e->pos().x() / (double)width(); const auto x = e->pos().x() / (double)width();
double y = (height() - e->pos().y()) / (double)height(); const auto y2 = (height() - e->pos().y()) / (double)height();
emit PointAddedSignal(m_Index, QPointF(x, y)); emit PointAddedSignal(m_Index, QPointF(x, y2));
break; break;
} }
} }

View File

@ -39,7 +39,7 @@ public:
void Set(int curveIndex, int pointIndex, const QPointF& point); void Set(int curveIndex, int pointIndex, const QPointF& point);
void Set(Curves<float>& curves); void Set(Curves<float>& curves);
void SetTop(CurveIndex curveIndex); void SetTop(CurveIndex curveIndex);
size_t SelectedCurveIndex() const { return m_Index; } size_t SelectedCurveIndex() const noexcept { return m_Index; }
Q_SIGNALS: Q_SIGNALS:
void PointChangedSignal(int curveIndex, int pointIndex, const QPointF& point); void PointChangedSignal(int curveIndex, int pointIndex, const QPointF& point);
@ -47,8 +47,8 @@ Q_SIGNALS:
void PointRemovedSignal(size_t curveIndex, int pointIndex); void PointRemovedSignal(size_t curveIndex, int pointIndex);
protected: protected:
virtual void paintEvent(QPaintEvent* e) override; void paintEvent(QPaintEvent* e) override;
virtual void mousePressEvent(QMouseEvent* e) override; void mousePressEvent(QMouseEvent* e) override;
size_t m_Index = 0; size_t m_Index = 0;
QPen m_APen; QPen m_APen;
@ -110,8 +110,8 @@ public:
/// <summary> /// <summary>
/// Index properties, getters only. /// Index properties, getters only.
/// </summary> /// </summary>
int CurveIndex() const { return m_CurveIndex; } int CurveIndex() const noexcept { return m_CurveIndex; }
int PointIndex() const { return m_PointIndex; } int PointIndex() const noexcept { return m_PointIndex; }
protected: protected:
/// <summary> /// <summary>
@ -121,11 +121,14 @@ protected:
/// <param name="option">Drawing options used which will have the QStyle::State_Selected flag unset</param> /// <param name="option">Drawing options used which will have the QStyle::State_Selected flag unset</param>
/// <param name="widget">Unused and just passed to QGraphicsEllipseItem::paint()</param> /// <param name="widget">Unused and just passed to QGraphicsEllipseItem::paint()</param>
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override
{
if (option != nullptr && widget != nullptr)
{ {
QStyleOptionGraphicsItem myOption(*option); QStyleOptionGraphicsItem myOption(*option);
myOption.state &= ~QStyle::State_Selected; myOption.state &= ~QStyle::State_Selected;
QGraphicsEllipseItem::paint(painter, &myOption, widget); QGraphicsEllipseItem::paint(painter, &myOption, widget);
} }
}
/// <summary> /// <summary>
/// Overridden itemChange event to notify the parent control that it has moved. /// Overridden itemChange event to notify the parent control that it has moved.

View File

@ -350,7 +350,7 @@ void DoubleSpinBox::focusOutEvent(QFocusEvent* e)
/// Must set the focus to make sure key down messages don't erroneously go to the GLWidget. /// Must set the focus to make sure key down messages don't erroneously go to the GLWidget.
/// </summary> /// </summary>
/// <param name="e">The event</param> /// <param name="e">The event</param>
void DoubleSpinBox::enterEvent(QEvent* e) void DoubleSpinBox::enterEvent(QEnterEvent* e)
{ {
StopTimer(); StopTimer();
QDoubleSpinBox::enterEvent(e); QDoubleSpinBox::enterEvent(e);
@ -404,7 +404,7 @@ SpecialDoubleSpinBox::SpecialDoubleSpinBox(QWidget* p, int h, double step)
/// So re-enable it here just to ensure whenever they focus this control, the menu works. /// So re-enable it here just to ensure whenever they focus this control, the menu works.
/// </summary> /// </summary>
/// <param name="e">The event</param> /// <param name="e">The event</param>
void SpecialDoubleSpinBox::enterEvent(QEvent* e) void SpecialDoubleSpinBox::enterEvent(QEnterEvent* e)
{ {
this->setContextMenuPolicy(Qt::ActionsContextMenu); this->setContextMenuPolicy(Qt::ActionsContextMenu);
DoubleSpinBox::enterEvent(e); DoubleSpinBox::enterEvent(e);

View File

@ -41,7 +41,7 @@ protected:
virtual void keyPressEvent(QKeyEvent* event) override; virtual void keyPressEvent(QKeyEvent* event) override;
virtual void focusInEvent(QFocusEvent* e) override; virtual void focusInEvent(QFocusEvent* e) override;
virtual void focusOutEvent(QFocusEvent* e) override; virtual void focusOutEvent(QFocusEvent* e) override;
virtual void enterEvent(QEvent* e) override; virtual void enterEvent(QEnterEvent* e) override;
virtual void leaveEvent(QEvent* e) override; virtual void leaveEvent(QEvent* e) override;
bool m_DoubleClick; bool m_DoubleClick;
@ -76,7 +76,7 @@ public:
virtual ~SpecialDoubleSpinBox() { } virtual ~SpecialDoubleSpinBox() { }
protected: protected:
virtual void enterEvent(QEvent* e) override; virtual void enterEvent(QEnterEvent* e) override;
virtual void leaveEvent(QEvent* e) override; virtual void leaveEvent(QEvent* e) override;
virtual bool eventFilter(QObject* o, QEvent* e) override; virtual bool eventFilter(QObject* o, QEvent* e) override;
}; };

View File

@ -53,7 +53,7 @@ public:
/// <param name="v">The vector containing the RGB pixels [0..255] which will make up the preview image</param> /// <param name="v">The vector containing the RGB pixels [0..255] which will make up the preview image</param>
/// <param name="width">The width of the image in pixels</param> /// <param name="width">The width of the image in pixels</param>
/// <param name="height">The height of the image in pixels</param> /// <param name="height">The height of the image in pixels</param>
void SetImage(vector<byte>& v, uint width, uint height) void SetImage(vector<unsigned char>& v, uint width, uint height)
{ {
constexpr auto size = PREVIEW_SIZE; constexpr auto size = PREVIEW_SIZE;
m_Image = QImage(width, height, QImage::Format_RGBA8888); m_Image = QImage(width, height, QImage::Format_RGBA8888);
@ -70,7 +70,7 @@ public:
protected: protected:
QImage m_Image; QImage m_Image;
QPixmap m_Pixmap; QPixmap m_Pixmap;
bool m_Rendered; bool m_Rendered = false;
}; };
/// <summary> /// <summary>

View File

@ -44,6 +44,10 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(QWidget* p, Qt::WindowF
SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_WidthSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnWidthChanged(int)), true, 1920, 1920, 1920); SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_WidthSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnWidthChanged(int)), true, 1920, 1920, 1920);
SetupSpinner<DoubleSpinBox, double>(ui.FinalRenderSizeTable, this, row, -1, m_HeightScaleSpin, spinHeight, 0.001, 99.99, 0.1, SIGNAL(valueChanged(double)), SLOT(OnHeightScaleChanged(double)), true, 1.0, 1.0, 1.0); SetupSpinner<DoubleSpinBox, double>(ui.FinalRenderSizeTable, this, row, -1, m_HeightScaleSpin, spinHeight, 0.001, 99.99, 0.1, SIGNAL(valueChanged(double)), SLOT(OnHeightScaleChanged(double)), true, 1.0, 1.0, 1.0);
SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_HeightSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnHeightChanged(int)), true, 1080, 1080, 1080); SetupSpinner<SpinBox, int>(ui.FinalRenderSizeTable, this, row, -1, m_HeightSpin, spinHeight, 10, std::numeric_limits<int>::max(), 10, SIGNAL(valueChanged(int)), SLOT(OnHeightChanged(int)), true, 1080, 1080, 1080);
m_SubBatchPctSpin = (DoubleSpinBox*)ui.FinalRenderOpenCLSubBatchPctSpin;
m_SubBatchPctSpin->DoubleClick(true);
m_SubBatchPctSpin->DoubleClickZero(0.025);
m_SubBatchPctSpin->DoubleClickNonZero(0.025);
int spinsize = 120; int spinsize = 120;
m_WidthScaleSpin->setDecimals(4); m_WidthScaleSpin->setDecimals(4);
m_HeightScaleSpin->setDecimals(4); m_HeightScaleSpin->setDecimals(4);
@ -237,10 +241,12 @@ FractoriumFinalRenderDialog::FractoriumFinalRenderDialog(QWidget* p, Qt::WindowF
OnOpenCLCheckBoxStateChanged(ui.FinalRenderOpenCLCheckBox->isChecked()); OnOpenCLCheckBoxStateChanged(ui.FinalRenderOpenCLCheckBox->isChecked());
OnDoAllCheckBoxStateChanged(ui.FinalRenderDoAllCheckBox->isChecked()); OnDoAllCheckBoxStateChanged(ui.FinalRenderDoAllCheckBox->isChecked());
OnDoSequenceCheckBoxStateChanged(ui.FinalRenderDoSequenceCheckBox->isChecked()); OnDoSequenceCheckBoxStateChanged(ui.FinalRenderDoSequenceCheckBox->isChecked());
QSize s = size(); auto s = size();
const auto desktopHeight = qApp->desktop()->availableGeometry().height(); auto screen = QGuiApplication::screenAt(pos());
auto geom = screen->availableGeometry();
const auto desktopHeight = geom.height();
s.setHeight(std::min(s.height(), int(double(desktopHeight * 0.90)))); s.setHeight(std::min(s.height(), int(double(desktopHeight * 0.90))));
setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, s, qApp->desktop()->availableGeometry())); setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, s, geom));
//Update these with new controls. //Update these with new controls.
auto w = SetTabOrder(this, ui.FinalRenderEarlyClipCheckBox, ui.FinalRenderYAxisUpCheckBox); auto w = SetTabOrder(this, ui.FinalRenderEarlyClipCheckBox, ui.FinalRenderYAxisUpCheckBox);
w = SetTabOrder(this, w, ui.FinalRenderTransparencyCheckBox); w = SetTabOrder(this, w, ui.FinalRenderTransparencyCheckBox);

View File

@ -50,7 +50,7 @@ class FractoriumFinalRenderDialog : public QDialog
#endif #endif
public: public:
FractoriumFinalRenderDialog(QWidget* p, Qt::WindowFlags f = 0); FractoriumFinalRenderDialog(QWidget* p, Qt::WindowFlags f = Qt::WindowType::Widget);
~FractoriumFinalRenderDialog(); ~FractoriumFinalRenderDialog();
void Show(bool fromSequence); void Show(bool fromSequence);
bool EarlyClip(); bool EarlyClip();
@ -137,6 +137,7 @@ private:
DoubleSpinBox* m_WidthScaleSpin; DoubleSpinBox* m_WidthScaleSpin;
SpinBox* m_WidthSpin; SpinBox* m_WidthSpin;
DoubleSpinBox* m_HeightScaleSpin; DoubleSpinBox* m_HeightScaleSpin;
DoubleSpinBox* m_SubBatchPctSpin;
SpinBox* m_HeightSpin; SpinBox* m_HeightSpin;
DoubleIntSpinnerWidget* m_WidthSpinnerWidget; DoubleIntSpinnerWidget* m_WidthSpinnerWidget;
DoubleIntSpinnerWidget* m_HeightSpinnerWidget; DoubleIntSpinnerWidget* m_HeightSpinnerWidget;

View File

@ -419,7 +419,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QDoubleSpinBox" name="FinalRenderOpenCLSubBatchPctSpin"> <widget class="DoubleSpinBox" name="FinalRenderOpenCLSubBatchPctSpin">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -442,7 +442,7 @@
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The percentage of a sub batch to execute on each thread per kernel call when using OpenCL. Default: 0.025 (256 iters with a 10k sub batch size).&lt;/p&gt;&lt;p&gt;Increase this number for slightly faster render times.&lt;/p&gt;&lt;p&gt;Note that this can cause a crash and subsequent restart of the graphics driver if each kernel call takes too long. So reduce the value if you encounter such a problem.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The percentage of a sub batch to execute on each thread per kernel call when using OpenCL. Default: 0.025 (256 iters with a 10k sub batch size).&lt;/p&gt;&lt;p&gt;Increase this number for slightly faster render times.&lt;/p&gt;&lt;p&gt;Note that this can cause a crash and subsequent restart of the graphics driver if each kernel call takes too long. So reduce the value if you encounter such a problem.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
<property name="prefix"> <property name="prefix">
<string>OpenCL sub batch percent per thread </string> <string>OpenCL sub batch % per thread </string>
</property> </property>
<property name="decimals"> <property name="decimals">
<number>3</number> <number>3</number>

View File

@ -102,18 +102,16 @@ void FinalRenderEmberControllerBase::Output(const QString& s)
template<typename T> template<typename T>
bool FinalRenderEmberController<T>::RenderSingleEmber(Ember<T>& ember, bool fullRender, size_t& stripForProgress) bool FinalRenderEmberController<T>::RenderSingleEmber(Ember<T>& ember, bool fullRender, size_t& stripForProgress)
{ {
if (!m_Renderer.get()) { if (!m_Renderer.get())
{
return false; return false;
} }
ember.m_TemporalSamples = 1;//No temporal sampling. ember.m_TemporalSamples = 1;//No temporal sampling.
m_Renderer->SetEmber(ember, fullRender ? eProcessAction::FULL_RENDER : eProcessAction::KEEP_ITERATING, /* updatePointer */ true); m_Renderer->SetEmber(ember, fullRender ? eProcessAction::FULL_RENDER : eProcessAction::KEEP_ITERATING, /* updatePointer */ true);
m_Renderer->PrepFinalAccumVector(m_FinalImage);//Must manually call this first because it could be erroneously made smaller due to strips if called inside Renderer::Run(). m_Renderer->PrepFinalAccumVector(m_FinalImage);//Must manually call this first because it could be erroneously made smaller due to strips if called inside Renderer::Run().
m_Stats.Clear(); m_Stats.Clear();
m_RenderTimer.Tic();//Toc() is called in RenderComplete(). m_RenderTimer.Tic();//Toc() is called in RenderComplete().
StripsRender<T>(m_Renderer.get(), ember, m_FinalImage, 0, m_GuiState.m_Strips, m_GuiState.m_YAxisUp, StripsRender<T>(m_Renderer.get(), ember, m_FinalImage, 0, m_GuiState.m_Strips, m_GuiState.m_YAxisUp,
[&](size_t strip) { stripForProgress = strip; },//Pre strip. [&](size_t strip) { stripForProgress = strip; },//Pre strip.
[&](size_t strip) { m_Stats += m_Renderer->Stats(); },//Post strip. [&](size_t strip) { m_Stats += m_Renderer->Stats(); },//Post strip.
@ -129,7 +127,6 @@ bool FinalRenderEmberController<T>::RenderSingleEmber(Ember<T>& ember, bool full
RenderComplete(finalEmber); RenderComplete(finalEmber);
HandleFinishedProgress(); HandleFinishedProgress();
});//Final strip. });//Final strip.
return true; return true;
} }
@ -143,7 +140,8 @@ bool FinalRenderEmberController<T>::RenderSingleEmber(Ember<T>& ember, bool full
template<typename T> template<typename T>
bool FinalRenderEmberController<T>::RenderSingleEmberFromSeries(std::atomic<size_t>* atomfTime, size_t index) bool FinalRenderEmberController<T>::RenderSingleEmberFromSeries(std::atomic<size_t>* atomfTime, size_t index)
{ {
if (m_Renderers.size() <= index) { if (m_Renderers.size() <= index)
{
return false; return false;
} }
@ -156,6 +154,9 @@ bool FinalRenderEmberController<T>::RenderSingleEmberFromSeries(std::atomic<size
Timing renderTimer; Timing renderTimer;
const auto renderer = m_Renderers[index].get(); const auto renderer = m_Renderers[index].get();
if (renderer == nullptr)
return false;
//Render each image, cancelling if m_Run ever gets set to false. //Render each image, cancelling if m_Run ever gets set to false.
//The conditions of this loop use atomics to synchronize when running on multiple GPUs. //The conditions of this loop use atomics to synchronize when running on multiple GPUs.
//The order is reversed from the usual loop: rather than compare and increment the counter, //The order is reversed from the usual loop: rather than compare and increment the counter,
@ -291,7 +292,6 @@ FinalRenderEmberController<T>::FinalRenderEmberController(FractoriumFinalRenderD
//even when using double precision, which most cards at the time of this writing already exceed. //even when using double precision, which most cards at the time of this writing already exceed.
m_GuiState.m_Strips = 1; m_GuiState.m_Strips = 1;
CopyCont(embers, m_EmberFile.m_Embers); CopyCont(embers, m_EmberFile.m_Embers);
std::atomic<size_t> atomfTime(0); std::atomic<size_t> atomfTime(0);
vector<std::thread> threadVec; vector<std::thread> threadVec;
threadVec.reserve(m_Renderers.size()); threadVec.reserve(m_Renderers.size());
@ -300,7 +300,7 @@ FinalRenderEmberController<T>::FinalRenderEmberController(FractoriumFinalRenderD
{ {
//All will share a pointer to the original vector to conserve memory with large files. Ok because the vec doesn't get modified. //All will share a pointer to the original vector to conserve memory with large files. Ok because the vec doesn't get modified.
m_Renderers[r]->SetExternalEmbersPointer(&embers); m_Renderers[r]->SetExternalEmbersPointer(&embers);
threadVec.push_back(std::thread(&RenderSingleEmberFromSeries, this, &atomfTime, r)); threadVec.push_back(std::thread(&FinalRenderEmberController<T>::RenderSingleEmberFromSeries, this, &atomfTime, r));
} }
Join(threadVec); Join(threadVec);
@ -326,11 +326,9 @@ FinalRenderEmberController<T>::FinalRenderEmberController(FractoriumFinalRenderD
else if (m_Renderer.get())//Render a single image. else if (m_Renderer.get())//Render a single image.
{ {
Output(ComposePath(QString::fromStdString(m_Ember->m_Name))); Output(ComposePath(QString::fromStdString(m_Ember->m_Name)));
m_ImageCount = 1; m_ImageCount = 1;
m_Ember->m_TemporalSamples = 1; m_Ember->m_TemporalSamples = 1;
m_Fractorium->m_Controller->ParamsToEmber(*m_Ember, true);//Update color and filter params from the main window controls, which only affect the filter and/or final accumulation stage. m_Fractorium->m_Controller->ParamsToEmber(*m_Ember, true);//Update color and filter params from the main window controls, which only affect the filter and/or final accumulation stage.
RenderSingleEmber(*m_Ember, /* fullRender= */ !isBump, currentStripForProgress); RenderSingleEmber(*m_Ember, /* fullRender= */ !isBump, currentStripForProgress);
} }
else else

View File

@ -121,8 +121,8 @@ public:
bool BumpQualityRender(double d) override; bool BumpQualityRender(double d) override;
bool CreateRenderer(eRendererType renderType, const vector<pair<size_t, size_t>>& devices, bool updatePreviews, bool shared = true) override; bool CreateRenderer(eRendererType renderType, const vector<pair<size_t, size_t>>& devices, bool updatePreviews, bool shared = true) override;
int ProgressFunc(Ember<T>& ember, void* foo, double fraction, int stage, double etaMs) override; int ProgressFunc(Ember<T>& ember, void* foo, double fraction, int stage, double etaMs) override;
size_t Index() const override { return m_Ember->m_Index; } size_t Index() const noexcept override { return m_Ember->m_Index; }
uint SizeOfT() const override { return sizeof(T); } uint SizeOfT() const noexcept override { return sizeof(T); }
//Virtual functions overridden from FinalRenderEmberControllerBase. //Virtual functions overridden from FinalRenderEmberControllerBase.
void SyncCurrentToGui() override; void SyncCurrentToGui() override;

View File

@ -34,7 +34,7 @@ Fractorium::Fractorium(QWidget* p)
tabifyDockWidget(ui.XaosDockWidget, ui.PaletteDockWidget); tabifyDockWidget(ui.XaosDockWidget, ui.PaletteDockWidget);
tabifyDockWidget(ui.PaletteDockWidget, ui.InfoDockWidget); tabifyDockWidget(ui.PaletteDockWidget, ui.InfoDockWidget);
setTabPosition(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea, QTabWidget::TabPosition::North); setTabPosition(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea, QTabWidget::TabPosition::North);
setTabShape(QTabWidget::TabShape::Triangular); //setTabShape(QTabWidget::TabShape::Rounded);
m_Docks.reserve(8); m_Docks.reserve(8);
m_Docks.push_back(ui.LibraryDockWidget); m_Docks.push_back(ui.LibraryDockWidget);
m_Docks.push_back(ui.FlameDockWidget); m_Docks.push_back(ui.FlameDockWidget);
@ -69,8 +69,9 @@ Fractorium::Fractorium(QWidget* p)
m_VarDialog = new FractoriumVariationsDialog(this); m_VarDialog = new FractoriumVariationsDialog(this);
m_AboutDialog = new FractoriumAboutDialog(this); m_AboutDialog = new FractoriumAboutDialog(this);
//Put the about dialog in the screen center. //Put the about dialog in the screen center.
const QRect screen = QApplication::desktop()->screenGeometry(); auto screen = QGuiApplication::screenAt(pos());
m_AboutDialog->move(screen.center() - m_AboutDialog->rect().center()); auto geom = screen->availableGeometry();
m_AboutDialog->move(geom.center() - m_AboutDialog->rect().center());
connect(m_ColorDialog, SIGNAL(colorSelected(const QColor&)), this, SLOT(OnColorSelected(const QColor&)), Qt::QueuedConnection); connect(m_ColorDialog, SIGNAL(colorSelected(const QColor&)), this, SLOT(OnColorSelected(const QColor&)), Qt::QueuedConnection);
m_XformComboColors[i++] = QColor(0XFF, 0X00, 0X00); m_XformComboColors[i++] = QColor(0XFF, 0X00, 0X00);
m_XformComboColors[i++] = QColor(0XCC, 0XCC, 0X00); m_XformComboColors[i++] = QColor(0XCC, 0XCC, 0X00);
@ -261,8 +262,8 @@ QList<QUrl> Fractorium::Urls()
void Fractorium::SetCoordinateStatus(int rasX, int rasY, float worldX, float worldY) void Fractorium::SetCoordinateStatus(int rasX, int rasY, float worldX, float worldY)
{ {
static QString coords; static QString coords;
coords.sprintf("Window: %4d, %4d World: %2.2f, %2.2f", rasX, rasY, worldX, worldY); auto str = coords.asprintf("Window: %4d, %4d World: %2.2f, %2.2f", rasX, rasY, worldX, worldY);
m_CoordinateStatusLabel->setText(coords); m_CoordinateStatusLabel->setText(str);
} }
/// <summary> /// <summary>
@ -824,7 +825,7 @@ void Fractorium::dragMoveEvent(QDragMoveEvent* e)
void Fractorium::dropEvent(QDropEvent* e) void Fractorium::dropEvent(QDropEvent* e)
{ {
QStringList filenames; QStringList filenames;
const auto mod = e->keyboardModifiers(); const auto mod = e->modifiers();
const auto append = mod.testFlag(Qt::ControlModifier) ? false : true; const auto append = mod.testFlag(Qt::ControlModifier) ? false : true;
if (e->mimeData()->hasUrls()) if (e->mimeData()->hasUrls())

View File

@ -240,6 +240,8 @@ public slots:
void OnPaletteModeComboCurrentIndexChanged(int index); void OnPaletteModeComboCurrentIndexChanged(int index);
void OnWidthChanged(int d);//Geometry. void OnWidthChanged(int d);//Geometry.
void OnHeightChanged(int d); void OnHeightChanged(int d);
void PresetWidthActionTriggered(bool b);
void PresetHeightActionTriggered(bool b);
void OnCenterXChanged(double d); void OnCenterXChanged(double d);
void OnCenterYChanged(double d); void OnCenterYChanged(double d);
void OnScaleChanged(double d); void OnScaleChanged(double d);
@ -367,7 +369,7 @@ public slots:
void OnPaletteAdjust(int d); void OnPaletteAdjust(int d);
void OnPaletteCellClicked(int row, int col); void OnPaletteCellClicked(int row, int col);
void OnPaletteCellDoubleClicked(int row, int col); void OnPaletteCellDoubleClicked(int row, int col);
void OnPreviewPaletteMouseDragged(const QPointF& local, const QPoint& global); void OnPreviewPaletteMouseDragged(const QPointF& local, const QPointF& global);
void OnPreviewPaletteMouseReleased(); void OnPreviewPaletteMouseReleased();
void OnPreviewPaletteCellDoubleClicked(int row, int col); void OnPreviewPaletteCellDoubleClicked(int row, int col);
void OnPreviewPaletteCellPressed(int row, int col); void OnPreviewPaletteCellPressed(int row, int col);
@ -443,6 +445,9 @@ private:
void SyncSequenceSettings(); void SyncSequenceSettings();
//Params. //Params.
void AddSizePreset(QString name, int w, int h);
void SetWidthWithAspect(int w, int h);
void SetHeightWithAspect(int w, int h);
//Xforms. //Xforms.
@ -615,6 +620,7 @@ private:
QColor m_VariationTreeColorNonZero, m_VariationTreeColorZero; QColor m_VariationTreeColorNonZero, m_VariationTreeColorZero;
QColor m_VariationTreeBgColorNonZero, m_VariationTreeBgColorZero; QColor m_VariationTreeBgColorNonZero, m_VariationTreeBgColorZero;
vector<QDockWidget*> m_Docks; vector<QDockWidget*> m_Docks;
std::unordered_map<QString, std::pair<int, int>> m_HeightPresets;
bool m_PreviousAffineState[4]; bool m_PreviousAffineState[4];
int m_FontSize; int m_FontSize;
@ -622,7 +628,7 @@ private:
int m_PaletteSortMode; int m_PaletteSortMode;
int m_PreviousPaletteRow; int m_PreviousPaletteRow;
int m_BgRow; int m_BgRow;
vector<byte> m_PreviewVec; vector<unsigned char> m_PreviewVec;
shared_ptr<OpenCLInfo> m_Info; shared_ptr<OpenCLInfo> m_Info;
unique_ptr<FractoriumEmberControllerBase> m_Controller; unique_ptr<FractoriumEmberControllerBase> m_Controller;
Ui::FractoriumClass ui; Ui::FractoriumClass ui;

View File

@ -41,9 +41,6 @@
<height>16</height> <height>16</height>
</size> </size>
</property> </property>
<property name="tabShape">
<enum>QTabWidget::Rounded</enum>
</property>
<property name="dockOptions"> <property name="dockOptions">
<set>QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::GroupedDragging</set> <set>QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::GroupedDragging</set>
</property> </property>
@ -3596,9 +3593,6 @@
<property name="autoFillBackground"> <property name="autoFillBackground">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="tabShape">
<enum>QTabWidget::Triangular</enum>
</property>
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>2</number>
</property> </property>
@ -6455,9 +6449,6 @@
<property name="autoFillBackground"> <property name="autoFillBackground">
<bool>false</bool> <bool>false</bool>
</property> </property>
<property name="tabShape">
<enum>QTabWidget::Triangular</enum>
</property>
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>0</number>
</property> </property>

View File

@ -490,14 +490,20 @@ static QString FindFirstDefaultPalette()
static QString BaseStyle() static QString BaseStyle()
{ {
return "/*---Base Style---\n" return "/*---Base Style---\n"
"This is needed to deal with the large tabs in the fusion theme which is the default on Linux, and optional on Windows.\n" "This may be needed to deal with the large tabs.\n"
"It's not needed for other themes."
"You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/\n" "You should keep this at the top of whatever custom style you make to ensure the tabs aren't unusually large.*/\n"
"/*\n"
#ifndef _WIN32 #ifndef _WIN32
"QTabBar::tab { height: 4ex; }\n\n" "QTabBar::tab { height: 4ex; }\n"
#else #else
"QTabBar::tab { height: 4ex; }\n\n" "QTabBar::tab { height: 4ex; }\n"
#endif #endif
"*/\n"
"*\n"
"{\n"
"\tfont: 8.5pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n"
"\n"
"/*This is needed to give the labels on the status bar some padding.*/\n" "/*This is needed to give the labels on the status bar some padding.*/\n"
"QStatusBar QLabel { padding-left: 2px; padding-right: 2px; }\n" "QStatusBar QLabel { padding-left: 2px; padding-right: 2px; }\n"
"\n" "\n"
@ -520,7 +526,6 @@ static QString BaseStyle()
"\tpadding-right: 0px;\n" "\tpadding-right: 0px;\n"
"\tpadding-top: 0px;\n" "\tpadding-top: 0px;\n"
"\tpadding-bottom: 0px;\n" "\tpadding-bottom: 0px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n" "}\n"
"\n" "\n"
"QHeaderView::section::horizontal:enabled\n" "QHeaderView::section::horizontal:enabled\n"
@ -532,7 +537,6 @@ static QString BaseStyle()
"\tpadding-top: 0px;\n" "\tpadding-top: 0px;\n"
"\tpadding-bottom: 0px;\n" "\tpadding-bottom: 0px;\n"
"\tpadding-left: 3px;\n" "\tpadding-left: 3px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n" "}\n"
"\n" "\n"
"QHeaderView::section::vertical:disabled\n" "QHeaderView::section::vertical:disabled\n"
@ -545,7 +549,6 @@ static QString BaseStyle()
"\tpadding-right: 0px;\n" "\tpadding-right: 0px;\n"
"\tpadding-top: 0px;\n" "\tpadding-top: 0px;\n"
"\tpadding-bottom: 0px;\n" "\tpadding-bottom: 0px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n" "}\n"
"\n" "\n"
"QHeaderView::section::horizontal:disabled\n" "QHeaderView::section::horizontal:disabled\n"
@ -557,7 +560,6 @@ static QString BaseStyle()
"\tpadding-top: 0px;\n" "\tpadding-top: 0px;\n"
"\tpadding-bottom: 0px;\n" "\tpadding-bottom: 0px;\n"
"\tpadding-left: 3px;\n" "\tpadding-left: 3px;\n"
"\tfont: 8pt \"MS Shell Dlg 2\";/*For some reason the font changes if you set any style. Set this to whatever font is the default on your system*/\n"
"}\n" "}\n"
; ;
} }
@ -572,6 +574,8 @@ static QList<T> GetAllParents(QWidget* widget)
{ {
QList<T> parents; QList<T> parents;
if (widget != nullptr)
{
while (const auto parent = qobject_cast<QWidget*>(widget->parent())) while (const auto parent = qobject_cast<QWidget*>(widget->parent()))
{ {
if (const auto parentT = qobject_cast<T>(parent)) if (const auto parentT = qobject_cast<T>(parent))
@ -579,6 +583,7 @@ static QList<T> GetAllParents(QWidget* widget)
widget = parent; widget = parent;
} }
}
return parents; return parents;
} }

View File

@ -78,16 +78,16 @@ public:
virtual void ClearXform() { } virtual void ClearXform() { }
virtual void DeleteXforms() { } virtual void DeleteXforms() { }
virtual void AddFinalXform() { } virtual void AddFinalXform() { }
virtual bool UseFinalXform() { return false; } virtual bool UseFinalXform() const noexcept { return false; }
virtual size_t XformCount() const { return 0; } virtual size_t XformCount() const noexcept { return 0; }
virtual size_t TotalXformCount() const { return 0; } virtual size_t TotalXformCount() const noexcept { return 0; }
virtual QString Name() const { return ""; } virtual QString Name() const { return ""; }
virtual void Name(const string& s) { } virtual void Name(const string& s) { }
virtual size_t FinalRasW() const { return 0; } virtual size_t FinalRasW() const noexcept { return 0; }
virtual void FinalRasW(size_t w) { } virtual void FinalRasW(size_t w) noexcept { }
virtual size_t FinalRasH() const { return 0; } virtual size_t FinalRasH() const noexcept { return 0; }
virtual void FinalRasH(size_t h) { } virtual void FinalRasH(size_t h) noexcept { }
virtual size_t Index() const { return 0; } virtual size_t Index() const noexcept { return 0; }
virtual void AddSymmetry(int sym, QTIsaac<ISAAC_SIZE, ISAAC_INT>& rand) { } virtual void AddSymmetry(int sym, QTIsaac<ISAAC_SIZE, ISAAC_INT>& rand) { }
virtual void CalcNormalizedWeights() { } virtual void CalcNormalizedWeights() { }
@ -213,13 +213,13 @@ public:
virtual void RandomXformsAffine(bool pre) { } virtual void RandomXformsAffine(bool pre) { }
virtual void FillBothAffines() { } virtual void FillBothAffines() { }
virtual void SwapAffines() { } virtual void SwapAffines() { }
double LockedScale() { return m_LockedScale; } double LockedScale() const noexcept { return m_LockedScale; }
double LockedX() { return m_LockedX; } double LockedX() const noexcept { return m_LockedX; }
double LockedY() { return m_LockedY; } double LockedY() const noexcept { return m_LockedY; }
void LockedScale(double scale) { m_LockedScale = scale; } void LockedScale(double scale) noexcept { m_LockedScale = scale; }
virtual void InitLockedScale() { } virtual void InitLockedScale() noexcept { }
virtual double AffineScaleCurrentToLocked() { return 0; }; virtual double AffineScaleCurrentToLocked() noexcept { return 0; };
virtual double AffineScaleLockedToCurrent() { return 0; }; virtual double AffineScaleLockedToCurrent() noexcept { return 0; };
//Xforms Color. //Xforms Color.
virtual void XformColorIndexChanged(double d, bool updateRender, bool updateSpinner, bool updateScroll, eXformUpdate update = eXformUpdate::UPDATE_SELECTED, size_t index = 0) { } virtual void XformColorIndexChanged(double d, bool updateRender, bool updateSpinner, bool updateScroll, eXformUpdate update = eXformUpdate::UPDATE_SELECTED, size_t index = 0) { }
@ -272,7 +272,7 @@ public:
//Rendering/progress. //Rendering/progress.
virtual bool Render() { return false; } virtual bool Render() { return false; }
virtual bool CreateRenderer(eRendererType renderType, const vector<pair<size_t, size_t>>& devices, bool updatePreviews, bool shared = true) { return false; } virtual bool CreateRenderer(eRendererType renderType, const vector<pair<size_t, size_t>>& devices, bool updatePreviews, bool shared = true) { return false; }
virtual uint SizeOfT() const { return 0; } virtual uint SizeOfT() const noexcept { return 0; }
virtual void ClearUndo() { } virtual void ClearUndo() { }
virtual void DeleteRenderer() { } virtual void DeleteRenderer() { }
virtual GLEmberControllerBase* GLController() { return nullptr; } virtual GLEmberControllerBase* GLController() { return nullptr; }
@ -373,16 +373,16 @@ public:
void ClearXform() override; void ClearXform() override;
void DeleteXforms() override; void DeleteXforms() override;
void AddFinalXform() override; void AddFinalXform() override;
bool UseFinalXform() override { return m_Ember.UseFinalXform(); } bool UseFinalXform() const noexcept override { return m_Ember.UseFinalXform(); }
size_t XformCount() const override { return m_Ember.XformCount(); } size_t XformCount() const noexcept override { return m_Ember.XformCount(); }
size_t TotalXformCount() const override { return m_Ember.TotalXformCount(); } size_t TotalXformCount() const noexcept override { return m_Ember.TotalXformCount(); }
QString Name() const override { return QString::fromStdString(m_Ember.m_Name); } QString Name() const override { return QString::fromStdString(m_Ember.m_Name); }
void Name(const string& s) override { m_Ember.m_Name = s; } void Name(const string& s) override { m_Ember.m_Name = s; }
size_t FinalRasW() const override { return m_Ember.m_FinalRasW; } size_t FinalRasW() const noexcept override { return m_Ember.m_FinalRasW; }
void FinalRasW(size_t w) override { m_Ember.m_FinalRasW = w; } void FinalRasW(size_t w) noexcept override { m_Ember.m_FinalRasW = w; }
size_t FinalRasH() const override { return m_Ember.m_FinalRasH; } size_t FinalRasH() const noexcept override { return m_Ember.m_FinalRasH; }
void FinalRasH(size_t h) override { m_Ember.m_FinalRasH = h; } void FinalRasH(size_t h) noexcept override { m_Ember.m_FinalRasH = h; }
size_t Index() const override { return m_Ember.m_Index; } size_t Index() const noexcept override { return m_Ember.m_Index; }
void AddSymmetry(int sym, QTIsaac<ISAAC_SIZE, ISAAC_INT>& rand) override { m_Ember.AddSymmetry(sym, rand); } void AddSymmetry(int sym, QTIsaac<ISAAC_SIZE, ISAAC_INT>& rand) override { m_Ember.AddSymmetry(sym, rand); }
void CalcNormalizedWeights() override { m_Ember.CalcNormalizedWeights(m_NormalizedWeights); } void CalcNormalizedWeights() override { m_Ember.CalcNormalizedWeights(m_NormalizedWeights); }
void ConstrainDimensions(Ember<T>& ember); void ConstrainDimensions(Ember<T>& ember);
@ -515,9 +515,9 @@ public:
void RandomXformsAffine(bool pre) override; void RandomXformsAffine(bool pre) override;
void FillBothAffines() override; void FillBothAffines() override;
void SwapAffines() override; void SwapAffines() override;
void InitLockedScale() override; void InitLockedScale() noexcept override;
double AffineScaleCurrentToLocked() override; double AffineScaleCurrentToLocked() noexcept override;
double AffineScaleLockedToCurrent() override; double AffineScaleLockedToCurrent() noexcept override;
void FillAffineWithXform(Xform<T>* xform, bool pre); void FillAffineWithXform(Xform<T>* xform, bool pre);
void ChangeLockedScale(T value); void ChangeLockedScale(T value);
@ -575,7 +575,7 @@ public:
//Rendering/progress. //Rendering/progress.
bool Render() override; bool Render() override;
bool CreateRenderer(eRendererType renderType, const vector<pair<size_t, size_t>>& devices, bool updatePreviews, bool shared = true) override; bool CreateRenderer(eRendererType renderType, const vector<pair<size_t, size_t>>& devices, bool updatePreviews, bool shared = true) override;
uint SizeOfT() const override { return sizeof(T); } uint SizeOfT() const noexcept override { return sizeof(T); }
int ProgressFunc(Ember<T>& ember, void* foo, double fraction, int stage, double etaMs) override; int ProgressFunc(Ember<T>& ember, void* foo, double fraction, int stage, double etaMs) override;
void ClearUndo() override; void ClearUndo() override;
GLEmberControllerBase* GLController() override { return m_GLController.get(); } GLEmberControllerBase* GLController() override { return m_GLController.get(); }
@ -681,7 +681,7 @@ public:
protected: protected:
volatile bool m_PreviewRun = false; volatile bool m_PreviewRun = false;
Ember<T> m_PreviewEmber; Ember<T> m_PreviewEmber;
vector<byte> m_PreviewVec; vector<unsigned char> m_PreviewVec;
vv4F m_PreviewFinalImage; vv4F m_PreviewFinalImage;
EmberNs::Renderer<T, float> m_PreviewRenderer; EmberNs::Renderer<T, float> m_PreviewRenderer;

View File

@ -139,8 +139,8 @@ void FractoriumEmberController<T>::FillSummary()
colorIndexItem->setFlags(nondraggable | Qt::ItemNeverHasChildren); colorIndexItem->setFlags(nondraggable | Qt::ItemNeverHasChildren);
color = ColorIndexToQColor(xform->m_ColorX); color = ColorIndexToQColor(xform->m_ColorX);
color.setAlphaF(xform->m_Opacity); color.setAlphaF(xform->m_Opacity);
colorIndexItem->setBackgroundColor(1, color); colorIndexItem->setBackground(1, color);
colorIndexItem->setTextColor(1, VisibleColor(color)); colorIndexItem->setForeground(1, VisibleColor(color));
auto colorSpeedItem = new QTreeWidgetItem(item1); auto colorSpeedItem = new QTreeWidgetItem(item1);
colorSpeedItem->setText(0, "Color speed"); colorSpeedItem->setText(0, "Color speed");
colorSpeedItem->setText(1, QLocale::system().toString(xform->m_ColorSpeed, pc, p)); colorSpeedItem->setText(1, QLocale::system().toString(xform->m_ColorSpeed, pc, p));
@ -255,24 +255,24 @@ void Fractorium::UpdateHistogramBounds()
if (auto r = m_Controller->Renderer()) if (auto r = m_Controller->Renderer())
{ {
ul.sprintf("UL: %3.3f, %3.3f", r->LowerLeftX(), r->UpperRightY());//These bounds include gutter padding. auto ulstr = ul.asprintf("UL: %3.3f, %3.3f", r->LowerLeftX(), r->UpperRightY());//These bounds include gutter padding.
ur.sprintf("UR: %3.3f, %3.3f", r->UpperRightX(), r->UpperRightY()); auto urstr = ur.asprintf("UR: %3.3f, %3.3f", r->UpperRightX(), r->UpperRightY());
lr.sprintf("LR: %3.3f, %3.3f", r->UpperRightX(), r->LowerLeftY()); auto lrstr = lr.asprintf("LR: %3.3f, %3.3f", r->UpperRightX(), r->LowerLeftY());
ll.sprintf("LL: %3.3f, %3.3f", r->LowerLeftX(), r->LowerLeftY()); auto llstr = ll.asprintf("LL: %3.3f, %3.3f", r->LowerLeftX(), r->LowerLeftY());
wh.sprintf("W x H: %4u x %4u", r->SuperRasW(), r->SuperRasH()); auto whstr = wh.asprintf("W x H: %4u x %4u", r->SuperRasW(), r->SuperRasH());
g.sprintf("%u", static_cast<uint>(r->GutterWidth())); auto gstr = g.asprintf("%u", static_cast<uint>(r->GutterWidth()));
ui.InfoBoundsLabelUL->setText(ul); ui.InfoBoundsLabelUL->setText(ulstr);
ui.InfoBoundsLabelUR->setText(ur); ui.InfoBoundsLabelUR->setText(urstr);
ui.InfoBoundsLabelLR->setText(lr); ui.InfoBoundsLabelLR->setText(lrstr);
ui.InfoBoundsLabelLL->setText(ll); ui.InfoBoundsLabelLL->setText(llstr);
ui.InfoBoundsLabelWH->setText(wh); ui.InfoBoundsLabelWH->setText(whstr);
ui.InfoBoundsTable->item(0, 1)->setText(g); ui.InfoBoundsTable->item(0, 1)->setText(gstr);
if (r->GetDensityFilter()) if (r->GetDensityFilter())
{ {
const auto deWidth = (r->GetDensityFilter()->FilterWidth() * 2) + 1; const auto deWidth = (r->GetDensityFilter()->FilterWidth() * 2) + 1;
de.sprintf("%d x %d", deWidth, deWidth); auto destr = de.asprintf("%d x %d", deWidth, deWidth);
ui.InfoBoundsTable->item(1, 1)->setText(de); ui.InfoBoundsTable->item(1, 1)->setText(destr);
} }
else else
ui.InfoBoundsTable->item(1, 1)->setText("N/A"); ui.InfoBoundsTable->item(1, 1)->setText("N/A");

View File

@ -183,7 +183,7 @@ void FractoriumEmberController<T>::FillLibraryTree(int selectIndex)
{ {
StopAllPreviewRenderers(); StopAllPreviewRenderers();
const uint size = PREVIEW_SIZE; const uint size = PREVIEW_SIZE;
vector<byte> empy_preview(size * size * 4); vector<unsigned char> empy_preview(size * size * 4);
const auto tree = m_Fractorium->ui.LibraryTree; const auto tree = m_Fractorium->ui.LibraryTree;
tree->clear(); tree->clear();
auto fileItem = new QTreeWidgetItem(tree); auto fileItem = new QTreeWidgetItem(tree);
@ -222,7 +222,7 @@ template <typename T>
void FractoriumEmberController<T>::UpdateLibraryTree() void FractoriumEmberController<T>::UpdateLibraryTree()
{ {
const uint size = PREVIEW_SIZE; const uint size = PREVIEW_SIZE;
vector<byte> empy_preview(size * size * 4); vector<unsigned char> empy_preview(size * size * 4);
const auto tree = m_Fractorium->ui.LibraryTree; const auto tree = m_Fractorium->ui.LibraryTree;
if (auto top = tree->topLevelItem(0)) if (auto top = tree->topLevelItem(0))
@ -440,7 +440,7 @@ void FractoriumEmberController<T>::RenderPreviews(QTreeWidget* tree, TreePreview
if (const auto top = tree->topLevelItem(tree->topLevelItemCount() - 1)) if (const auto top = tree->topLevelItem(tree->topLevelItemCount() - 1))
{ {
const auto childCount = top->childCount(); const auto childCount = top->childCount();
vector<byte> emptyPreview(PREVIEW_SIZE * PREVIEW_SIZE * 4); vector<unsigned char> emptyPreview(PREVIEW_SIZE * PREVIEW_SIZE * 4);
for (int i = 0; i < childCount; i++) for (int i = 0; i < childCount; i++)
if (auto treeItem = dynamic_cast<EmberTreeWidgetItemBase*>(top->child(i))) if (auto treeItem = dynamic_cast<EmberTreeWidgetItemBase*>(top->child(i)))
@ -488,7 +488,7 @@ void FractoriumEmberController<T>::AddAnimationItem()
emberItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); emberItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
emberItem->setToolTip(0, "Animated Frame"); emberItem->setToolTip(0, "Animated Frame");
const uint size = PREVIEW_SIZE; const uint size = PREVIEW_SIZE;
vector<byte> empy_preview(size * size * 4); vector<unsigned char> empy_preview(size * size * 4);
emberItem->SetImage(empy_preview, size, size); emberItem->SetImage(empy_preview, size, size);
} }
@ -502,7 +502,7 @@ void FractoriumEmberController<T>::FillSequenceTree()
{ {
StopAllPreviewRenderers(); StopAllPreviewRenderers();
const uint size = PREVIEW_SIZE; const uint size = PREVIEW_SIZE;
vector<byte> empy_preview(size * size * 4); vector<unsigned char> empy_preview(size * size * 4);
const auto tree = m_Fractorium->ui.SequenceTree; const auto tree = m_Fractorium->ui.SequenceTree;
tree->clear(); tree->clear();
// Add extra TreeWidget for animation at index 0 // Add extra TreeWidget for animation at index 0

View File

@ -256,8 +256,8 @@ void FractoriumEmberController<T>::CreateReferenceFile()
ember.m_Palette = temppal; ember.m_Palette = temppal;
m_EmberFile.m_Embers.push_back(ember); m_EmberFile.m_Embers.push_back(ember);
}; };
size_t i; size_t i;
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
{ {
addsquaresfunc(i, regVars[i]); addsquaresfunc(i, regVars[i]);
@ -685,8 +685,9 @@ void FractoriumEmberController<T>::PasteXmlAppend()
string s, errors; string s, errors;
XmlToEmber<T> parser; XmlToEmber<T> parser;
vector<Ember<T>> embers; vector<Ember<T>> embers;
auto codec = QTextCodec::codecForName("UTF-8"); auto b = QApplication::clipboard()->text().toUtf8();
auto b = codec->fromUnicode(QApplication::clipboard()->text()); //auto codec = QTextCodec::codecForName("UTF-8");
//auto b = codec->fromUnicode(QApplication::clipboard()->text());
s.reserve(b.size()); s.reserve(b.size());
for (auto i = 0; i < b.size(); i++) for (auto i = 0; i < b.size(); i++)
@ -742,8 +743,9 @@ void FractoriumEmberController<T>::PasteXmlOver()
XmlToEmber<T> parser; XmlToEmber<T> parser;
list<Ember<T>> embers; list<Ember<T>> embers;
auto backupEmber = *m_EmberFile.m_Embers.begin(); auto backupEmber = *m_EmberFile.m_Embers.begin();
auto codec = QTextCodec::codecForName("UTF-8"); auto b = QApplication::clipboard()->text().toUtf8();
auto b = codec->fromUnicode(QApplication::clipboard()->text()); //auto codec = QTextCodec::codecForName("UTF-8");
//auto b = codec->fromUnicode(QApplication::clipboard()->text());
s.reserve(b.size()); s.reserve(b.size());
for (auto i = 0; i < b.size(); i++) for (auto i = 0; i < b.size(); i++)

View File

@ -10,10 +10,10 @@ void Fractorium::InitPaletteUI()
int spinHeight = 20, row = 0; int spinHeight = 20, row = 0;
auto paletteTable = ui.PaletteListTable; auto paletteTable = ui.PaletteListTable;
auto palettePreviewTable = ui.PalettePreviewTable; auto palettePreviewTable = ui.PalettePreviewTable;
connect(ui.PaletteFilenameCombo, SIGNAL(currentIndexChanged(const QString&)), this, SLOT(OnPaletteFilenameComboChanged(const QString&)), Qt::QueuedConnection); connect(ui.PaletteFilenameCombo, SIGNAL(currentTextChanged(const QString&)), this, SLOT(OnPaletteFilenameComboChanged(const QString&)), Qt::QueuedConnection);
connect(paletteTable, SIGNAL(cellClicked(int, int)), this, SLOT(OnPaletteCellClicked(int, int)), Qt::QueuedConnection); connect(paletteTable, SIGNAL(cellClicked(int, int)), this, SLOT(OnPaletteCellClicked(int, int)), Qt::QueuedConnection);
connect(paletteTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(OnPaletteCellDoubleClicked(int, int)), Qt::QueuedConnection); connect(paletteTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(OnPaletteCellDoubleClicked(int, int)), Qt::QueuedConnection);
connect(palettePreviewTable, SIGNAL(MouseDragged(const QPointF&, const QPoint&)), this, SLOT(OnPreviewPaletteMouseDragged(const QPointF&, const QPoint&)), Qt::QueuedConnection); connect(palettePreviewTable, SIGNAL(MouseDragged(const QPointF&, const QPointF&)), this, SLOT(OnPreviewPaletteMouseDragged(const QPointF&, const QPointF&)), Qt::QueuedConnection);
connect(palettePreviewTable, SIGNAL(MouseReleased()), this, SLOT(OnPreviewPaletteMouseReleased()), Qt::QueuedConnection); connect(palettePreviewTable, SIGNAL(MouseReleased()), this, SLOT(OnPreviewPaletteMouseReleased()), Qt::QueuedConnection);
connect(palettePreviewTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(OnPreviewPaletteCellDoubleClicked(int, int)), Qt::QueuedConnection); connect(palettePreviewTable, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(OnPreviewPaletteCellDoubleClicked(int, int)), Qt::QueuedConnection);
connect(palettePreviewTable, SIGNAL(cellPressed(int, int)), this, SLOT(OnPreviewPaletteCellPressed(int, int)), Qt::QueuedConnection); connect(palettePreviewTable, SIGNAL(cellPressed(int, int)), this, SLOT(OnPreviewPaletteCellPressed(int, int)), Qt::QueuedConnection);
@ -144,7 +144,7 @@ void FractoriumEmberController<T>::ApplyPaletteToEmber()
const uint freq = m_Fractorium->m_PaletteFrequencySpin->value(); const uint freq = m_Fractorium->m_PaletteFrequencySpin->value();
const auto sat = m_Fractorium->m_PaletteSaturationSpin->value() / 100.0; const auto sat = m_Fractorium->m_PaletteSaturationSpin->value() / 100.0;
const auto brightness = m_Fractorium->m_PaletteBrightnessSpin->value() / 255.0; const auto brightness = m_Fractorium->m_PaletteBrightnessSpin->value() / 255.0;
const auto contrast = m_Fractorium->m_PaletteContrastSpin->value() > 0 ? m_Fractorium->m_PaletteContrastSpin->value() * 2.0 : m_Fractorium->m_PaletteContrastSpin->value() / 100.0; const auto contrast = double(m_Fractorium->m_PaletteContrastSpin->value() > 0 ? m_Fractorium->m_PaletteContrastSpin->value() * 2.0 : m_Fractorium->m_PaletteContrastSpin->value()) / 100.0;
const auto hue = m_Fractorium->m_PaletteHueSpin->value() / 360.0; const auto hue = m_Fractorium->m_PaletteHueSpin->value() / 360.0;
//Use the temp palette as the base and apply the adjustments gotten from the GUI and save the result in the ember palette. //Use the temp palette as the base and apply the adjustments gotten from the GUI and save the result in the ember palette.
m_TempPalette.MakeAdjustedPalette(m_Ember.m_Palette, m_Fractorium->m_PreviewPaletteRotation, hue, sat, brightness, contrast, blur, freq); m_TempPalette.MakeAdjustedPalette(m_Ember.m_Palette, m_Fractorium->m_PreviewPaletteRotation, hue, sat, brightness, contrast, blur, freq);
@ -167,7 +167,7 @@ void FractoriumEmberController<T>::UpdateAdjustedPaletteGUI(Palette<float>& pale
if (previewPaletteItem)//This can be null if the palette file was moved or corrupted. if (previewPaletteItem)//This can be null if the palette file was moved or corrupted.
{ {
//Use the adjusted palette to fill the preview palette control so the user can see the effects of applying the adjustements. //Use the adjusted palette to fill the preview palette control so the user can see the effects of applying the adjustements.
vector<byte> v = palette.MakeRgbPaletteBlock(PALETTE_CELL_HEIGHT);//Make the palette repeat for PALETTE_CELL_HEIGHT rows. vector<unsigned char> v = palette.MakeRgbPaletteBlock(PALETTE_CELL_HEIGHT);//Make the palette repeat for PALETTE_CELL_HEIGHT rows.
m_FinalPaletteImage = QImage(int(palette.Size()), PALETTE_CELL_HEIGHT, QImage::Format_RGB888);//Create a QImage out of it. m_FinalPaletteImage = QImage(int(palette.Size()), PALETTE_CELL_HEIGHT, QImage::Format_RGB888);//Create a QImage out of it.
memcpy(m_FinalPaletteImage.scanLine(0), v.data(), v.size() * sizeof(v[0]));//Memcpy the data in. memcpy(m_FinalPaletteImage.scanLine(0), v.data(), v.size() * sizeof(v[0]));//Memcpy the data in.
QPixmap pixmap(QPixmap::fromImage(m_FinalPaletteImage));//Create a QPixmap out of the QImage. QPixmap pixmap(QPixmap::fromImage(m_FinalPaletteImage));//Create a QPixmap out of the QImage.
@ -269,7 +269,7 @@ void Fractorium::OnPaletteCellClicked(int row, int col)
/// </summary> /// </summary>
/// <param name="local">The local mouse coordinates relative to the palette preview table</param> /// <param name="local">The local mouse coordinates relative to the palette preview table</param>
/// <param name="global">The global mouse coordinates</param> /// <param name="global">The global mouse coordinates</param>
void Fractorium::OnPreviewPaletteMouseDragged(const QPointF& local, const QPoint& global) void Fractorium::OnPreviewPaletteMouseDragged(const QPointF& local, const QPointF& global)
{ {
if (m_PreviewPaletteMouseDown) if (m_PreviewPaletteMouseDown)
{ {

View File

@ -87,7 +87,7 @@ void Fractorium::InitParamsUI()
table = ui.FilterTable; table = ui.FilterTable;
SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_SpatialFilterWidthSpin, spinHeight, 0, 2, 0.1, SIGNAL(valueChanged(double)), SLOT(OnSpatialFilterWidthChanged(double)), true, 1.0, 1.0, 0); SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_SpatialFilterWidthSpin, spinHeight, 0, 2, 0.1, SIGNAL(valueChanged(double)), SLOT(OnSpatialFilterWidthChanged(double)), true, 1.0, 1.0, 0);
comboVals = SpatialFilterCreator<float>::FilterTypes(); comboVals = SpatialFilterCreator<float>::FilterTypes();
SetupCombo(table, this, row, 1, m_SpatialFilterTypeCombo, comboVals, SIGNAL(currentIndexChanged(const QString&)), SLOT(OnSpatialFilterTypeComboCurrentIndexChanged(const QString&))); SetupCombo(table, this, row, 1, m_SpatialFilterTypeCombo, comboVals, SIGNAL(currentTextChanged(const QString&)), SLOT(OnSpatialFilterTypeComboCurrentIndexChanged(const QString&)));
m_SpatialFilterTypeCombo->SetCurrentIndexStealth(0); m_SpatialFilterTypeCombo->SetCurrentIndexStealth(0);
SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_DEFilterMinRadiusSpin, spinHeight, 0, 25, 1, SIGNAL(valueChanged(double)), SLOT(OnDEFilterMinRadiusWidthChanged(double)), true, 0, 0, 0); SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_DEFilterMinRadiusSpin, spinHeight, 0, 25, 1, SIGNAL(valueChanged(double)), SLOT(OnDEFilterMinRadiusWidthChanged(double)), true, 0, 0, 0);
SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_DEFilterMaxRadiusSpin, spinHeight, 0, 25, 1, SIGNAL(valueChanged(double)), SLOT(OnDEFilterMaxRadiusWidthChanged(double)), true, 0.0, 9.0, 0); SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_DEFilterMaxRadiusSpin, spinHeight, 0, 25, 1, SIGNAL(valueChanged(double)), SLOT(OnDEFilterMaxRadiusWidthChanged(double)), true, 0.0, 9.0, 0);
@ -122,10 +122,63 @@ void Fractorium::InitParamsUI()
m_AffineInterpTypeCombo->SetCurrentIndexStealth(static_cast<int>(eAffineInterp::AFFINE_INTERP_LOG)); m_AffineInterpTypeCombo->SetCurrentIndexStealth(static_cast<int>(eAffineInterp::AFFINE_INTERP_LOG));
SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_TemporalFilterWidthSpin, spinHeight, 1, 10, 1, SIGNAL(valueChanged(double)), SLOT(OnTemporalFilterWidthChanged(double)), true, 1, 1, 1); SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_TemporalFilterWidthSpin, spinHeight, 1, 10, 1, SIGNAL(valueChanged(double)), SLOT(OnTemporalFilterWidthChanged(double)), true, 1, 1, 1);
comboVals = TemporalFilterCreator<float>::FilterTypes(); comboVals = TemporalFilterCreator<float>::FilterTypes();
SetupCombo( table, this, row, 1, m_TemporalFilterTypeCombo, comboVals, SIGNAL(currentIndexChanged(const QString&)), SLOT(OnTemporalFilterTypeComboCurrentIndexChanged(const QString&))); SetupCombo( table, this, row, 1, m_TemporalFilterTypeCombo, comboVals, SIGNAL(currentTextChanged(const QString&)), SLOT(OnTemporalFilterTypeComboCurrentIndexChanged(const QString&)));
m_TemporalFilterTypeCombo->SetCurrentIndexStealth(static_cast<int>(eTemporalFilterType::BOX_TEMPORAL_FILTER)); m_TemporalFilterTypeCombo->SetCurrentIndexStealth(static_cast<int>(eTemporalFilterType::BOX_TEMPORAL_FILTER));
table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_TemporalFilterExpSpin, spinHeight, 0, 5, 0.1, SIGNAL(valueChanged(double)), SLOT(OnExpChanged(double)), true, 1, 1, 0); SetupSpinner<DoubleSpinBox, double>(table, this, row, 1, m_TemporalFilterExpSpin, spinHeight, 0, 5, 0.1, SIGNAL(valueChanged(double)), SLOT(OnExpChanged(double)), true, 1, 1, 0);
//
AddSizePreset("HD", 1920, 1080);
AddSizePreset("QHD", 2560, 1440);
AddSizePreset("4K UHD", 3840, 2160);
AddSizePreset("4K DCP", 4096, 2160);
AddSizePreset("5K", 5120, 2880);
AddSizePreset("6K", 6144, 3456);
AddSizePreset("8K UHD", 7680, 4320);
AddSizePreset("8K", 8192, 4608);
AddSizePreset("12K", 12288, 6912);
m_WidthSpin->setContextMenuPolicy(Qt::ActionsContextMenu);
m_HeightSpin->setContextMenuPolicy(Qt::ActionsContextMenu);
}
/// <summary>
/// Add a new size preset.
/// </summary>
/// <param name="name">The name of the preset</param>
/// <param name="w">The width of the preset</param>
/// <param name="h">The height of the preset</param>
void Fractorium::AddSizePreset(QString name, int w, int h)
{
auto widthAction = new QAction(name, m_WidthSpin);
connect(widthAction, SIGNAL(triggered(bool)), this, SLOT(PresetWidthActionTriggered(bool)), Qt::QueuedConnection);
m_WidthSpin->addAction(widthAction);
auto heightAction = new QAction(name, m_HeightSpin);
connect(heightAction, SIGNAL(triggered(bool)), this, SLOT(PresetHeightActionTriggered(bool)), Qt::QueuedConnection);
m_HeightSpin->addAction(heightAction);
m_HeightPresets[name] = std::pair<int, int>(w, h);
}
/// <summary>
/// Assign a new width and height, and scale by the width.
/// </summary>
/// <param name="w">The width to assign</param>
/// <param name="h">The height to assign</param>
void Fractorium::SetWidthWithAspect(int w, int h)
{
m_Controller->ResizeAndScale(w, h, eScaleType::SCALE_WIDTH);
m_WidthSpin->SetValueStealth(w);
m_HeightSpin->SetValueStealth(h);
}
/// <summary>
/// Assign a new width and height, and scale by the height.
/// </summary>
/// <param name="w">The width to assign</param>
/// <param name="h">The height to assign</param>
void Fractorium::SetHeightWithAspect(int w, int h)
{
m_Controller->ResizeAndScale(w, h, eScaleType::SCALE_HEIGHT);
m_WidthSpin->SetValueStealth(w);
m_HeightSpin->SetValueStealth(h);
} }
/// <summary> /// <summary>
@ -260,8 +313,8 @@ void FractoriumEmberController<T>::BackgroundChanged(const QColor& color)
const auto r = ToString(color.red()); const auto r = ToString(color.red());
const auto g = ToString(color.green()); const auto g = ToString(color.green());
const auto b = ToString(color.blue()); const auto b = ToString(color.blue());
colorTable->item(itemRow, 1)->setBackgroundColor(color); colorTable->item(itemRow, 1)->setBackground(color);
colorTable->item(itemRow, 1)->setTextColor(VisibleColor(color)); colorTable->item(itemRow, 1)->setForeground(VisibleColor(color));
colorTable->item(itemRow, 1)->setText("rgb(" + r + ", " + g + ", " + b + ")"); colorTable->item(itemRow, 1)->setText("rgb(" + r + ", " + g + ", " + b + ")");
UpdateAll([&](Ember<T>& ember, bool isMain) UpdateAll([&](Ember<T>& ember, bool isMain)
{ {
@ -325,6 +378,48 @@ template <typename T> void FractoriumEmberController<T>::HeightChanged(uint i)
void Fractorium::OnHeightChanged(int i) { m_Controller->HeightChanged(i); } void Fractorium::OnHeightChanged(int i) { m_Controller->HeightChanged(i); }
/// <summary>
/// Change the width and height to the value specified in the preset, and scale relative to the original width.
/// Called when the popup menu is clicked in the width spinner.
/// Resets the rendering process.
/// </summary>
/// <param name="b">Ignored</param>
void Fractorium::PresetWidthActionTriggered(bool b)
{
const auto act = qobject_cast<QAction*>(sender());
if (act)
{
auto it = m_HeightPresets.find(act->text());
if (it != m_HeightPresets.end())
{
SetWidthWithAspect(it->second.first, it->second.second);
}
}
}
/// <summary>
/// Change the width and height to the value specified in the preset, and scale relative to the original height.
/// Called when the popup menu is clicked in the height spinner.
/// Resets the rendering process.
/// </summary>
/// <param name="b">Ignored</param>
void Fractorium::PresetHeightActionTriggered(bool b)
{
const auto act = qobject_cast<QAction*>(sender());
if (act)
{
auto it = m_HeightPresets.find(act->text());
if (it != m_HeightPresets.end())
{
SetHeightWithAspect(it->second.first, it->second.second);
}
}
}
/// <summary> /// <summary>
/// Set the width and height of the ember in pixels to the passed in values. /// Set the width and height of the ember in pixels to the passed in values.
/// Called when either the width or height spinners are double clicked. /// Called when either the width or height spinners are double clicked.
@ -822,7 +917,7 @@ void FractoriumEmberController<T>::FillParamTablesAndPalette()
m_Fractorium->m_HighlightSpin->SetValueStealth(m_Ember.m_HighlightPower); m_Fractorium->m_HighlightSpin->SetValueStealth(m_Ember.m_HighlightPower);
m_Fractorium->m_K2Spin->SetValueStealth(m_Ember.m_K2); m_Fractorium->m_K2Spin->SetValueStealth(m_Ember.m_K2);
m_Fractorium->m_ColorDialog->setCurrentColor(QColor(m_Ember.m_Background.r * 255, m_Ember.m_Background.g * 255, m_Ember.m_Background.b * 255)); m_Fractorium->m_ColorDialog->setCurrentColor(QColor(m_Ember.m_Background.r * 255, m_Ember.m_Background.g * 255, m_Ember.m_Background.b * 255));
m_Fractorium->ui.ColorTable->item(m_Fractorium->m_BgRow, 1)->setBackgroundColor(m_Fractorium->m_ColorDialog->currentColor()); m_Fractorium->ui.ColorTable->item(m_Fractorium->m_BgRow, 1)->setBackground(m_Fractorium->m_ColorDialog->currentColor());
BackgroundChanged(m_Fractorium->m_ColorDialog->currentColor()); BackgroundChanged(m_Fractorium->m_ColorDialog->currentColor());
m_Fractorium->m_PaletteModeCombo->SetCurrentIndexStealth(static_cast<int>(m_Ember.m_PaletteMode)); m_Fractorium->m_PaletteModeCombo->SetCurrentIndexStealth(static_cast<int>(m_Ember.m_PaletteMode));
m_Fractorium->m_WidthSpin->SetValueStealth(m_Ember.m_FinalRasW);//Geometry. m_Fractorium->m_WidthSpin->SetValueStealth(m_Ember.m_FinalRasW);//Geometry.
@ -897,10 +992,10 @@ void FractoriumEmberController<T>::ParamsToEmberPrivate(Ember<U>& ember, bool im
ember.m_TemporalFilterWidth = m_Fractorium->m_TemporalFilterWidthSpin->value(); ember.m_TemporalFilterWidth = m_Fractorium->m_TemporalFilterWidthSpin->value();
ember.m_TemporalFilterType = static_cast<eTemporalFilterType>(m_Fractorium->m_TemporalFilterTypeCombo->currentIndex()); ember.m_TemporalFilterType = static_cast<eTemporalFilterType>(m_Fractorium->m_TemporalFilterTypeCombo->currentIndex());
ember.m_TemporalFilterExp = m_Fractorium->m_TemporalFilterExpSpin->value(); ember.m_TemporalFilterExp = m_Fractorium->m_TemporalFilterExpSpin->value();
auto const color = m_Fractorium->ui.ColorTable->item(5, 1)->backgroundColor(); const auto color = m_Fractorium->ui.ColorTable->item(5, 1)->background();
ember.m_Background.r = color.red() / 255.0; ember.m_Background.r = color.color().red() / 255.0;
ember.m_Background.g = color.green() / 255.0; ember.m_Background.g = color.color().green() / 255.0;
ember.m_Background.b = color.blue() / 255.0; ember.m_Background.b = color.color().blue() / 255.0;
ember.m_PaletteMode = static_cast<ePaletteMode>(m_Fractorium->m_PaletteModeCombo->currentIndex()); ember.m_PaletteMode = static_cast<ePaletteMode>(m_Fractorium->m_PaletteModeCombo->currentIndex());
ember.m_FinalRasW = m_Fractorium->m_WidthSpin->value();//Geometry. ember.m_FinalRasW = m_Fractorium->m_WidthSpin->value();//Geometry.
ember.m_FinalRasH = m_Fractorium->m_HeightSpin->value(); ember.m_FinalRasH = m_Fractorium->m_HeightSpin->value();

View File

@ -39,7 +39,6 @@
#include <QComboBox> #include <QComboBox>
#include <QConicalGradient> #include <QConicalGradient>
#include <QDebug> #include <QDebug>
#include <QDesktopWidget>
#include <QDial> #include <QDial>
#include <QDoubleSpinBox> #include <QDoubleSpinBox>
#include <QEvent> #include <QEvent>
@ -71,7 +70,8 @@
#include <QModelIndex> #include <QModelIndex>
#include <QMouseEvent> #include <QMouseEvent>
#include <QOpenGLFunctions> #include <QOpenGLFunctions>
#include <QOpenGLWidget> #include <QtOpenGLWidgets/QOpenGLWidget>
#include <QOpenGLShaderProgram>
#include <QPainter> #include <QPainter>
#include <QPainterPath> #include <QPainterPath>
#include <QPaintEvent> #include <QPaintEvent>

View File

@ -145,7 +145,7 @@ void FractoriumEmberControllerBase::SaveCurrentRender(const QString& filename, c
if (suffix.endsWith("bmp", Qt::CaseInsensitive) || suffix.endsWith("jpg", Qt::CaseInsensitive)) if (suffix.endsWith("bmp", Qt::CaseInsensitive) || suffix.endsWith("jpg", Qt::CaseInsensitive))
{ {
vector<byte> rgb8Image(size * 3); vector<unsigned char> rgb8Image(size * 3);
Rgba32ToRgb8(data, rgb8Image.data(), width, height); Rgba32ToRgb8(data, rgb8Image.data(), width, height);
if (suffix.endsWith("bmp", Qt::CaseInsensitive)) if (suffix.endsWith("bmp", Qt::CaseInsensitive))
@ -157,7 +157,7 @@ void FractoriumEmberControllerBase::SaveCurrentRender(const QString& filename, c
{ {
if (!png16Bit) if (!png16Bit)
{ {
vector<byte> rgba8Image(size * 4); vector<unsigned char> rgba8Image(size * 4);
Rgba32ToRgba8(data, rgba8Image.data(), width, height, transparency); Rgba32ToRgba8(data, rgba8Image.data(), width, height, transparency);
ret = WritePng(s.c_str(), rgba8Image.data(), width, height, 1, true, comments, id, url, nick); ret = WritePng(s.c_str(), rgba8Image.data(), width, height, 1, true, comments, id, url, nick);
} }
@ -165,7 +165,7 @@ void FractoriumEmberControllerBase::SaveCurrentRender(const QString& filename, c
{ {
vector<glm::uint16> rgba16Image(size * 4); vector<glm::uint16> rgba16Image(size * 4);
Rgba32ToRgba16(data, rgba16Image.data(), width, height, transparency); Rgba32ToRgba16(data, rgba16Image.data(), width, height, transparency);
ret = WritePng(s.c_str(), (byte*)rgba16Image.data(), width, height, 2, true, comments, id, url, nick); ret = WritePng(s.c_str(), (unsigned char*)rgba16Image.data(), width, height, 2, true, comments, id, url, nick);
} }
} }
else if (suffix.endsWith("exr", Qt::CaseInsensitive)) else if (suffix.endsWith("exr", Qt::CaseInsensitive))
@ -432,7 +432,8 @@ bool FractoriumEmberController<T>::Render()
const auto stats = m_Renderer->Stats(); const auto stats = m_Renderer->Stats();
auto iters = ToString<qulonglong>(stats.m_Iters); auto iters = ToString<qulonglong>(stats.m_Iters);
auto scaledQuality = ToString(static_cast<qulonglong>(m_Renderer->ScaledQuality())); auto scaledQuality = ToString(static_cast<qulonglong>(m_Renderer->ScaledQuality()));
auto renderTime = m_RenderElapsedTimer.Format(m_RenderElapsedTimer.Toc()); //auto renderTime = m_RenderElapsedTimer.Format(m_RenderElapsedTimer.Toc());
auto renderTime = m_RenderElapsedTimer.Format(stats.m_RenderMs);
m_Fractorium->m_ProgressBar->setValue(100); m_Fractorium->m_ProgressBar->setValue(100);
//Only certain stats can be reported with OpenCL. //Only certain stats can be reported with OpenCL.

View File

@ -706,11 +706,11 @@ void FractoriumEmberController<T>::UpdateXformName(int index)
m_Fractorium->ui.CurrentXformCombo->setItemText(index, name); m_Fractorium->ui.CurrentXformCombo->setItemText(index, name);
const auto view = m_Fractorium->ui.CurrentXformCombo->view(); const auto view = m_Fractorium->ui.CurrentXformCombo->view();
const auto fontMetrics1 = view->fontMetrics(); const auto fontMetrics1 = view->fontMetrics();
const auto ww = fontMetrics1.width("WW") * 3; const auto ww = fontMetrics1.horizontalAdvance("WW") * 3;
auto textWidth = m_Fractorium->ui.CurrentXformCombo->width(); auto textWidth = m_Fractorium->ui.CurrentXformCombo->width();
for (int i = 0; i < m_Fractorium->ui.CurrentXformCombo->count(); ++i) for (int i = 0; i < m_Fractorium->ui.CurrentXformCombo->count(); ++i)
textWidth = std::max(fontMetrics1.width(m_Fractorium->ui.CurrentXformCombo->itemText(i)) + ww, textWidth); textWidth = std::max(fontMetrics1.horizontalAdvance(m_Fractorium->ui.CurrentXformCombo->itemText(i)) + ww, textWidth);
view->setMinimumWidth(textWidth); view->setMinimumWidth(textWidth);
view->setMaximumWidth(textWidth); view->setMaximumWidth(textWidth);

View File

@ -161,7 +161,7 @@ void Fractorium::InitXformsAffineUI()
/// Set the scale used for drawing the affines to a default value. /// Set the scale used for drawing the affines to a default value.
/// </summary> /// </summary>
template <typename T> template <typename T>
void FractoriumEmberController<T>::InitLockedScale() void FractoriumEmberController<T>::InitLockedScale() noexcept
{ {
m_LockedScale = (T)std::min<size_t>(m_Ember.m_FinalRasW, m_Ember.m_FinalRasH) / 4.0; m_LockedScale = (T)std::min<size_t>(m_Ember.m_FinalRasW, m_Ember.m_FinalRasH) / 4.0;
m_LockedX = m_Ember.m_CenterX; m_LockedX = m_Ember.m_CenterX;
@ -187,7 +187,7 @@ void FractoriumEmberController<T>::ChangeLockedScale(T value)
/// </summary> /// </summary>
/// <returns>The scale value</returns> /// <returns>The scale value</returns>
template <typename T> template <typename T>
double FractoriumEmberController<T>::AffineScaleCurrentToLocked() double FractoriumEmberController<T>::AffineScaleCurrentToLocked() noexcept
{ {
return LockedScale() / m_Ember.m_PixelsPerUnit; return LockedScale() / m_Ember.m_PixelsPerUnit;
} }
@ -197,7 +197,7 @@ double FractoriumEmberController<T>::AffineScaleCurrentToLocked()
/// </summary> /// </summary>
/// <returns>The scale value</returns> /// <returns>The scale value</returns>
template <typename T> template <typename T>
double FractoriumEmberController<T>::AffineScaleLockedToCurrent() double FractoriumEmberController<T>::AffineScaleLockedToCurrent() noexcept
{ {
return m_Ember.m_PixelsPerUnit / LockedScale(); return m_Ember.m_PixelsPerUnit / LockedScale();
} }

View File

@ -74,7 +74,7 @@ void FractoriumEmberController<T>::XformColorIndexChanged(double d, bool updateR
} }
if (updateGUI) if (updateGUI)
m_Fractorium->ui.XformColorIndexTable->item(0, 0)->setBackgroundColor(ColorIndexToQColor(d));//Grab the current color from the index and assign it to the first cell of the first table. m_Fractorium->ui.XformColorIndexTable->item(0, 0)->setBackground(ColorIndexToQColor(d));//Grab the current color from the index and assign it to the first cell of the first table.
} }
void Fractorium::OnXformColorIndexChanged(double d) { OnXformColorIndexChanged(d, true, false, true, eXformUpdate::UPDATE_SELECTED, std::numeric_limits<size_t>::max()); } void Fractorium::OnXformColorIndexChanged(double d) { OnXformColorIndexChanged(d, true, false, true, eXformUpdate::UPDATE_SELECTED, std::numeric_limits<size_t>::max()); }

View File

@ -268,8 +268,8 @@ void FractoriumEmberController<T>::VariationSpinBoxValueChanged(double d)//Would
if (xformVar) if (xformVar)
xform->DeleteVariationById(var->VariationId()); xform->DeleteVariationById(var->VariationId());
widgetItem->setTextColor(0, m_Fractorium->m_VariationTreeColorZero); widgetItem->setForeground(0, m_Fractorium->m_VariationTreeColorZero);
widgetItem->setBackgroundColor(0, m_Fractorium->m_VariationTreeBgColorZero); widgetItem->setBackground(0, m_Fractorium->m_VariationTreeBgColorZero);
} }
else else
{ {
@ -284,8 +284,8 @@ void FractoriumEmberController<T>::VariationSpinBoxValueChanged(double d)//Would
const auto newVar = var->Copy();//Create a new one with default values. const auto newVar = var->Copy();//Create a new one with default values.
newVar->m_Weight = d; newVar->m_Weight = d;
xform->AddVariation(newVar); xform->AddVariation(newVar);
widgetItem->setTextColor(0, m_Fractorium->m_VariationTreeColorNonZero); widgetItem->setForeground(0, m_Fractorium->m_VariationTreeColorNonZero);
widgetItem->setBackgroundColor(0, m_Fractorium->m_VariationTreeBgColorNonZero); widgetItem->setBackground(0, m_Fractorium->m_VariationTreeBgColorNonZero);
//If they've added a new parametric variation, then grab the values currently in the spinners //If they've added a new parametric variation, then grab the values currently in the spinners
//for the child parameters and assign them to the newly added variation. //for the child parameters and assign them to the newly added variation.
@ -353,8 +353,8 @@ void FractoriumEmberController<T>::FillVariationTreeWithXform(Xform<T>* xform)
item->setHidden(false); item->setHidden(false);
spinBox->SetValueStealth(var ? var->m_Weight : 0);//If the variation was present, set the spin box to its weight, else zero. spinBox->SetValueStealth(var ? var->m_Weight : 0);//If the variation was present, set the spin box to its weight, else zero.
item->setTextColor(0, var ? m_Fractorium->m_VariationTreeColorNonZero : m_Fractorium->m_VariationTreeColorZero); item->setForeground(0, var ? m_Fractorium->m_VariationTreeColorNonZero : m_Fractorium->m_VariationTreeColorZero);
item->setBackgroundColor(0, var ? m_Fractorium->m_VariationTreeBgColorNonZero : m_Fractorium->m_VariationTreeBgColorZero); item->setBackground(0, var ? m_Fractorium->m_VariationTreeBgColorNonZero : m_Fractorium->m_VariationTreeBgColorZero);
for (int j = 0; j < item->childCount(); j++)//Iterate through all of the children, which will be the params if it was a parametric variation. for (int j = 0; j < item->childCount(); j++)//Iterate through all of the children, which will be the params if it was a parametric variation.
{ {

View File

@ -375,12 +375,12 @@ void GLWidget::SetMainWindow(Fractorium* f) { m_Fractorium = f; }
/// Getters for OpenGL state. /// Getters for OpenGL state.
/// </summary> /// </summary>
bool GLWidget::Init() { return m_Init; } bool GLWidget::Init() const { return m_Init; }
bool GLWidget::Drawing() { return m_Drawing; } bool GLWidget::Drawing() const { return m_Drawing; }
GLint GLWidget::MaxTexSize() { return m_MaxTexSize; } GLint GLWidget::MaxTexSize() const { return m_MaxTexSize; }
GLuint GLWidget::OutputTexID() { return m_OutputTexID; } GLuint GLWidget::OutputTexID() const { return m_OutputTexID; }
GLint GLWidget::TexWidth() { return m_TexWidth; } GLint GLWidget::TexWidth() const { return m_TexWidth; }
GLint GLWidget::TexHeight() { return m_TexHeight; } GLint GLWidget::TexHeight() const { return m_TexHeight; }
/// <summary> /// <summary>
/// Initialize OpenGL, called once at startup after the main window constructor finishes. /// Initialize OpenGL, called once at startup after the main window constructor finishes.
@ -803,7 +803,7 @@ void GLWidget::keyPressEvent(QKeyEvent* e)
/// <param name="e">The event</param> /// <param name="e">The event</param>
bool GLEmberControllerBase::KeyRelease_(QKeyEvent* e) bool GLEmberControllerBase::KeyRelease_(QKeyEvent* e)
{ {
if (e->key() == Qt::Key_Control) if (e != nullptr && e->key() == Qt::Key_Control)
{ {
ClearControl(); ClearControl();
return true; return true;
@ -817,12 +817,15 @@ bool GLEmberControllerBase::KeyRelease_(QKeyEvent* e)
/// </summary> /// </summary>
/// <param name="e">The event</param> /// <param name="e">The event</param>
void GLWidget::keyReleaseEvent(QKeyEvent* e) void GLWidget::keyReleaseEvent(QKeyEvent* e)
{
if (e)
{ {
if (!GLController() || !GLController()->KeyRelease_(e)) if (!GLController() || !GLController()->KeyRelease_(e))
QOpenGLWidget::keyReleaseEvent(e); QOpenGLWidget::keyReleaseEvent(e);
update(); update();
} }
}
/// <summary> /// <summary>
/// Determine if the mouse click was over an affine circle /// Determine if the mouse click was over an affine circle
@ -834,7 +837,12 @@ void GLWidget::keyReleaseEvent(QKeyEvent* e)
template <typename T> template <typename T>
void GLEmberController<T>::MousePress(QMouseEvent* e) void GLEmberController<T>::MousePress(QMouseEvent* e)
{ {
v3T mouseFlipped(e->x() * m_GL->devicePixelRatioF(), m_Viewport[3] - e->y() * m_GL->devicePixelRatioF(), 0);//Must flip y because in OpenGL, 0,0 is bottom left, but in windows, it's top left. if (!e)
return;
const auto x = e->position().x();
const auto y = e->position().y();
v3T const mouseFlipped(x * m_GL->devicePixelRatioF(), m_Viewport[3] - y * m_GL->devicePixelRatioF(), 0);//Must flip y because in OpenGL, 0,0 is bottom left, but in windows, it's top left.
const auto ember = m_FractoriumEmberController->CurrentEmber(); const auto ember = m_FractoriumEmberController->CurrentEmber();
const auto renderer = m_FractoriumEmberController->Renderer(); const auto renderer = m_FractoriumEmberController->Renderer();
@ -842,7 +850,7 @@ void GLEmberController<T>::MousePress(QMouseEvent* e)
if (!renderer) if (!renderer)
return; return;
m_MouseDownPos = glm::ivec2(e->x() * m_GL->devicePixelRatioF(), e->y() * m_GL->devicePixelRatioF());//Capture the raster coordinates of where the mouse was clicked. m_MouseDownPos = glm::ivec2(x * m_GL->devicePixelRatioF(), y * m_GL->devicePixelRatioF());//Capture the raster coordinates of where the mouse was clicked.
m_MouseWorldPos = WindowToWorld(mouseFlipped, false);//Capture the world cartesian coordinates of where the mouse is. m_MouseWorldPos = WindowToWorld(mouseFlipped, false);//Capture the world cartesian coordinates of where the mouse is.
m_BoundsDown.w = renderer->LowerLeftX(false);//Need to capture these because they'll be changing if scaling. m_BoundsDown.w = renderer->LowerLeftX(false);//Need to capture these because they'll be changing if scaling.
m_BoundsDown.x = renderer->LowerLeftY(false); m_BoundsDown.x = renderer->LowerLeftY(false);
@ -926,6 +934,8 @@ void GLEmberController<T>::MousePress(QMouseEvent* e)
/// </summary> /// </summary>
/// <param name="e">The event</param> /// <param name="e">The event</param>
void GLWidget::mousePressEvent(QMouseEvent* e) void GLWidget::mousePressEvent(QMouseEvent* e)
{
if (e)
{ {
setFocus();//Must do this so that this window gets keyboard events. setFocus();//Must do this so that this window gets keyboard events.
@ -934,6 +944,7 @@ void GLWidget::mousePressEvent(QMouseEvent* e)
QOpenGLWidget::mousePressEvent(e); QOpenGLWidget::mousePressEvent(e);
} }
}
/// <summary> /// <summary>
/// Reset the selection and dragging state, but re-calculate the /// Reset the selection and dragging state, but re-calculate the
@ -943,7 +954,11 @@ void GLWidget::mousePressEvent(QMouseEvent* e)
template <typename T> template <typename T>
void GLEmberController<T>::MouseRelease(QMouseEvent* e) void GLEmberController<T>::MouseRelease(QMouseEvent* e)
{ {
v3T mouseFlipped(e->x() * m_GL->devicePixelRatioF(), m_Viewport[3] - e->y() * m_GL->devicePixelRatioF(), 0);//Must flip y because in OpenGL, 0,0 is bottom left, but in windows, it's top left. if (e)
{
const auto x = e->position().x();
const auto y = e->position().y();
v3T const mouseFlipped(x * m_GL->devicePixelRatioF(), m_Viewport[3] - y * m_GL->devicePixelRatioF(), 0);//Must flip y because in OpenGL, 0,0 is bottom left, but in windows, it's top left.
m_MouseWorldPos = WindowToWorld(mouseFlipped, false); m_MouseWorldPos = WindowToWorld(mouseFlipped, false);
if (m_DragState == eDragState::DragDragging && (e->button() & Qt::LeftButton)) if (m_DragState == eDragState::DragDragging && (e->button() & Qt::LeftButton))
@ -956,6 +971,7 @@ void GLEmberController<T>::MouseRelease(QMouseEvent* e)
m_DragModifier = 0; m_DragModifier = 0;
m_GL->update(); m_GL->update();
} }
}
/// <summary> /// <summary>
/// Call controller MouseRelease(). /// Call controller MouseRelease().
@ -979,9 +995,11 @@ void GLWidget::mouseReleaseEvent(QMouseEvent* e)
template <typename T> template <typename T>
void GLEmberController<T>::MouseMove(QMouseEvent* e) void GLEmberController<T>::MouseMove(QMouseEvent* e)
{ {
bool draw = true; const auto draw = true;
const glm::ivec2 mouse(e->x() * m_GL->devicePixelRatioF(), e->y() * m_GL->devicePixelRatioF()); const auto x = e->position().x();
const v3T mouseFlipped(e->x() * m_GL->devicePixelRatioF(), m_Viewport[3] - e->y() * m_GL->devicePixelRatioF(), 0);//Must flip y because in OpenGL, 0,0 is bottom left, but in windows, it's top left. const auto y = e->position().y();
const glm::ivec2 mouse(x * m_GL->devicePixelRatioF(), y * m_GL->devicePixelRatioF());
const v3T mouseFlipped(x * m_GL->devicePixelRatioF(), m_Viewport[3] - y * m_GL->devicePixelRatioF(), 0);//Must flip y because in OpenGL, 0,0 is bottom left, but in windows, it's top left.
const auto ember = m_FractoriumEmberController->CurrentEmber(); const auto ember = m_FractoriumEmberController->CurrentEmber();
//First check to see if the mouse actually moved. //First check to see if the mouse actually moved.
@ -993,7 +1011,7 @@ void GLEmberController<T>::MouseMove(QMouseEvent* e)
//Update status bar on main window, regardless of whether anything is being dragged. //Update status bar on main window, regardless of whether anything is being dragged.
if (m_Fractorium->m_Controller->RenderTimerRunning()) if (m_Fractorium->m_Controller->RenderTimerRunning())
m_Fractorium->SetCoordinateStatus(e->x() * m_GL->devicePixelRatioF(), e->y() * m_GL->devicePixelRatioF(), m_MouseWorldPos.x, m_MouseWorldPos.y); m_Fractorium->SetCoordinateStatus(x * m_GL->devicePixelRatioF(), y * m_GL->devicePixelRatioF(), m_MouseWorldPos.x, m_MouseWorldPos.y);
if (m_SelectedXform && m_DragState == eDragState::DragDragging)//Dragging and affine. if (m_SelectedXform && m_DragState == eDragState::DragDragging)//Dragging and affine.
{ {
@ -1017,7 +1035,7 @@ void GLEmberController<T>::MouseMove(QMouseEvent* e)
const QPointF br(m_MouseWorldPos.x, m_MouseWorldPos.y); const QPointF br(m_MouseWorldPos.x, m_MouseWorldPos.y);
const QRectF qrf(tl, br); const QRectF qrf(tl, br);
const T scale = m_FractoriumEmberController->AffineScaleCurrentToLocked(); const T scale = m_FractoriumEmberController->AffineScaleCurrentToLocked();
int i = 0; const auto i = 0;
m_FractoriumEmberController->UpdateXform([&](Xform<T>* xform, size_t xfindex, size_t selIndex) m_FractoriumEmberController->UpdateXform([&](Xform<T>* xform, size_t xfindex, size_t selIndex)
{ {
if (m_Fractorium->DrawAllPre() || xform == m_SelectedXform)//Draw all pre affine if specified. if (m_Fractorium->DrawAllPre() || xform == m_SelectedXform)//Draw all pre affine if specified.
@ -1154,12 +1172,15 @@ void GLEmberController<T>::Wheel(QWheelEvent* e)
/// </summary> /// </summary>
/// <param name="e">The event</param> /// <param name="e">The event</param>
void GLWidget::wheelEvent(QWheelEvent* e) void GLWidget::wheelEvent(QWheelEvent* e)
{
if (e)
{ {
if (auto controller = GLController()) if (auto controller = GLController())
{ {
controller->Wheel(e); controller->Wheel(e);
e->accept();//Prevents it from being sent to the main scroll bars. Scrolling should only affect the scale parameter and affine display zooming. e->accept();//Prevents it from being sent to the main scroll bars. Scrolling should only affect the scale parameter and affine display zooming.
} }
}
//Do not call QOpenGLWidget::wheelEvent(e) because this should only affect the scale and not the position of the scroll bars. //Do not call QOpenGLWidget::wheelEvent(e) because this should only affect the scale and not the position of the scroll bars.
} }
@ -1235,10 +1256,10 @@ bool GLWidget::Allocate(bool force)
{ {
bool alloc = false; bool alloc = false;
//auto scaledW = std::ceil(width() * devicePixelRatioF()); //auto scaledW = std::ceil(width() * devicePixelRatioF());
auto w = m_Fractorium->m_Controller->FinalRasW(); const auto w = m_Fractorium->m_Controller->FinalRasW();
auto h = m_Fractorium->m_Controller->FinalRasH(); const auto h = m_Fractorium->m_Controller->FinalRasH();
bool doResize = force || m_TexWidth != w || m_TexHeight != h; bool const doResize = force || m_TexWidth != w || m_TexHeight != h;
bool doIt = doResize || m_OutputTexID == 0; bool const doIt = doResize || m_OutputTexID == 0;
#ifndef USE_GLSL #ifndef USE_GLSL
if (doIt) if (doIt)
@ -1335,7 +1356,7 @@ void GLWidget::SetViewport()
{ {
if (m_Init && (m_ViewWidth != m_TexWidth || m_ViewHeight != m_TexHeight)) if (m_Init && (m_ViewWidth != m_TexWidth || m_ViewHeight != m_TexHeight))
{ {
this->glViewport(0, 0, static_cast<GLint>(m_TexWidth), static_cast<GLint>(m_TexHeight)); this->glViewport(0, 0, GLint{ m_TexWidth }, GLint{ m_TexHeight });
#ifdef USE_GLSL #ifdef USE_GLSL
m_Viewport = glm::ivec4(0, 0, m_TexWidth, m_TexHeight); m_Viewport = glm::ivec4(0, 0, m_TexWidth, m_TexHeight);
#endif #endif

View File

@ -51,22 +51,22 @@ public:
void InitGL(); void InitGL();
void DrawQuad(); void DrawQuad();
void SetMainWindow(Fractorium* f); void SetMainWindow(Fractorium* f);
bool Init(); bool Init() const;
bool Drawing(); bool Drawing() const;
GLint MaxTexSize(); GLint MaxTexSize() const;
GLuint OutputTexID(); GLuint OutputTexID() const;
GLint TexWidth(); GLint TexWidth() const;
GLint TexHeight(); GLint TexHeight() const;
protected: protected:
virtual void initializeGL() override; void initializeGL() override;
virtual void paintGL() override; void paintGL() override;
virtual void keyPressEvent(QKeyEvent* e) override; void keyPressEvent(QKeyEvent* e) override;
virtual void keyReleaseEvent(QKeyEvent* e) override; void keyReleaseEvent(QKeyEvent* e) override;
virtual void mousePressEvent(QMouseEvent* e) override; void mousePressEvent(QMouseEvent* e) override;
virtual void mouseReleaseEvent(QMouseEvent* e) override; void mouseReleaseEvent(QMouseEvent* e) override;
virtual void mouseMoveEvent(QMouseEvent* e) override; void mouseMoveEvent(QMouseEvent* e) override;
virtual void wheelEvent(QWheelEvent* e) override; void wheelEvent(QWheelEvent* e) override;
void DrawPointOrLine(const QVector4D& col, const GLfloat* vertices, int size, int drawType, bool dashed = false, GLfloat pointSize = 1.0f); void DrawPointOrLine(const QVector4D& col, const GLfloat* vertices, int size, int drawType, bool dashed = false, GLfloat pointSize = 1.0f);
void DrawPointOrLine(const QVector4D& col, const std::vector<float>& vertices, int drawType, bool dashed = false, GLfloat pointSize = 1.0f); void DrawPointOrLine(const QVector4D& col, const std::vector<float>& vertices, int drawType, bool dashed = false, GLfloat pointSize = 1.0f);

View File

@ -17,7 +17,7 @@ void LibraryTreeWidget::SetMainWindow(Fractorium* f)
/// <param name="de">Pointer to the QDropEvent object</param> /// <param name="de">Pointer to the QDropEvent object</param>
void LibraryTreeWidget::dropEvent(QDropEvent* de) void LibraryTreeWidget::dropEvent(QDropEvent* de)
{ {
const auto droppedIndex = indexAt(de->pos()); const auto droppedIndex = indexAt(de->position().toPoint());
const auto items = selectionModel()->selectedRows(); const auto items = selectionModel()->selectedRows();
if (!droppedIndex.isValid())//Don't process drop because it's outside of the droppable area. if (!droppedIndex.isValid())//Don't process drop because it's outside of the droppable area.
@ -113,7 +113,7 @@ void InfoTreeWidget::SetMainWindow(Fractorium* f)
/// <param name="dme">Pointer to the drag move event</param> /// <param name="dme">Pointer to the drag move event</param>
void InfoTreeWidget::dragMoveEvent(QDragMoveEvent* dme) void InfoTreeWidget::dragMoveEvent(QDragMoveEvent* dme)
{ {
QModelIndex index = indexAt(dme->pos()); QModelIndex const index = indexAt(dme->position().toPoint());
if (!index.isValid())//Don't process drop because it's outside of the droppable area. if (!index.isValid())//Don't process drop because it's outside of the droppable area.
{ {
@ -125,26 +125,26 @@ void InfoTreeWidget::dragMoveEvent(QDragMoveEvent* dme)
if (dragItems.size()) if (dragItems.size())
{ {
auto drag0 = dragItems[0]; if (auto drag0 = dragItems[0])
{
if (auto itemat = itemFromIndex(index)) if (auto itemat = itemFromIndex(index))
{ {
auto dragpre = drag0->text(0).startsWith("pre_", Qt::CaseInsensitive); const auto dragpre = drag0->text(0).startsWith("pre_", Qt::CaseInsensitive);
auto droppre = itemat->text(0).startsWith("pre_", Qt::CaseInsensitive); const auto droppre = itemat->text(0).startsWith("pre_", Qt::CaseInsensitive);
auto dragpost = drag0->text(0).startsWith("post_", Qt::CaseInsensitive); const auto dragpost = drag0->text(0).startsWith("post_", Qt::CaseInsensitive);
auto droppost = itemat->text(0).startsWith("post_", Qt::CaseInsensitive); const auto droppost = itemat->text(0).startsWith("post_", Qt::CaseInsensitive);
if (auto par = itemat->parent()) if (const auto par = itemat->parent())
{ {
if (drag0->parent() == par && if (drag0->parent() == par &&
(par->text(0).startsWith("xform ", Qt::CaseInsensitive) || (par->text(0).startsWith("xform ", Qt::CaseInsensitive) ||
par->text(0).startsWith("final", Qt::CaseInsensitive))) par->text(0).startsWith("final", Qt::CaseInsensitive)))
{ {
if (auto vitemat = dynamic_cast<VariationTreeWidgetItem*>(itemat)) if (auto vitemat = dynamic_cast<const VariationTreeWidgetItem*>(itemat))
{ {
bool dopre = dragpre && droppre; bool const dopre = dragpre && droppre;
bool dopost = dragpost && droppost; bool const dopost = dragpost && droppost;
bool doreg = !dragpre && !droppre && !dragpost && !droppost; bool const doreg = !dragpre && !droppre && !dragpost && !droppost;
if (dopre || doreg || dopost) if (dopre || doreg || dopost)
{ {
@ -156,6 +156,7 @@ void InfoTreeWidget::dragMoveEvent(QDragMoveEvent* dme)
} }
} }
} }
}
dme->ignore(); dme->ignore();
} }
@ -168,7 +169,7 @@ void InfoTreeWidget::dragMoveEvent(QDragMoveEvent* dme)
/// <param name="de">Pointer to the QDropEvent object</param> /// <param name="de">Pointer to the QDropEvent object</param>
void InfoTreeWidget::dropEvent(QDropEvent* de) void InfoTreeWidget::dropEvent(QDropEvent* de)
{ {
QModelIndex droppedIndex = indexAt(de->pos()); QModelIndex const droppedIndex = indexAt(de->position().toPoint());
auto items = selectionModel()->selectedRows(); auto items = selectionModel()->selectedRows();
if (!droppedIndex.isValid())//Don't process drop because it's outside of the droppable area. if (!droppedIndex.isValid())//Don't process drop because it's outside of the droppable area.
@ -183,13 +184,14 @@ void InfoTreeWidget::dropEvent(QDropEvent* de)
if (dragItems.size()) if (dragItems.size())
{ {
auto drag0 = dragItems[0]; auto drag0 = dragItems[0];
auto itemat = itemFromIndex(droppedIndex);
if (auto itemat = itemFromIndex(droppedIndex))
{
if (auto par = itemat->parent()) if (auto par = itemat->parent())
{ {
if (auto vdropitem = dynamic_cast<VariationTreeWidgetItem*>(itemat)) if (auto vdropitem = dynamic_cast<const VariationTreeWidgetItem*>(itemat))
{ {
if (auto vdragitem = dynamic_cast<VariationTreeWidgetItem*>(drag0)) if (auto vdragitem = dynamic_cast<const VariationTreeWidgetItem*>(drag0))
{ {
QTreeWidget::dropEvent(de);//This internally changes the order of the items. QTreeWidget::dropEvent(de);//This internally changes the order of the items.
m_Fractorium->ReorderVariations(par); m_Fractorium->ReorderVariations(par);
@ -198,6 +200,7 @@ void InfoTreeWidget::dropEvent(QDropEvent* de)
} }
} }
} }
}
de->ignore(); de->ignore();
} }

View File

@ -26,7 +26,6 @@ void ExportUserData()
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
int rv = -1; int rv = -1;
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication a(argc, argv); QApplication a(argc, argv);
#ifdef TEST_CL #ifdef TEST_CL
QMessageBox::critical(QApplication::desktop(), "Error", "Fractorium cannot be run in test mode, undefine TEST_CL first."); QMessageBox::critical(QApplication::desktop(), "Error", "Fractorium cannot be run in test mode, undefine TEST_CL first.");

View File

@ -24,7 +24,7 @@ class FractoriumOptionsDialog : public QDialog
friend Fractorium; friend Fractorium;
public: public:
FractoriumOptionsDialog(QWidget* p = nullptr, Qt::WindowFlags f = 0); FractoriumOptionsDialog(QWidget* p = nullptr, Qt::WindowFlags f = Qt::WindowType::Widget);
bool EarlyClip(); bool EarlyClip();
bool YAxisUp(); bool YAxisUp();
bool Transparency(); bool Transparency();

Some files were not shown because too many files have changed in this diff Show More