Showing preview only (4,228K chars total). Download the full file or copy to clipboard to get everything.
Repository: GPUOpen-Effects/GeometryFX
Branch: master
Commit: 02c4139eff3e
Files: 256
Total size: 73.1 MB
Directory structure:
gitextract_n3wnfoc9/
├── .gitattributes
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── amd_geometryfx/
│ ├── build/
│ │ ├── AMD_GeometryFX_2015.sln
│ │ ├── AMD_GeometryFX_2015.vcxproj
│ │ ├── AMD_GeometryFX_2015.vcxproj.filters
│ │ ├── AMD_GeometryFX_2017.filters
│ │ ├── AMD_GeometryFX_2017.sln
│ │ ├── AMD_GeometryFX_2017.vcxproj
│ │ └── AMD_GeometryFX_2017.vcxproj.filters
│ ├── inc/
│ │ ├── AMD_GeometryFX.h
│ │ ├── AMD_GeometryFX_Filtering.h
│ │ └── AMD_GeometryFX_Utility.h
│ ├── premake/
│ │ └── premake5.lua
│ └── src/
│ ├── AMD_GeometryFX_Filtering.cpp
│ ├── AMD_GeometryFX_Internal.h
│ ├── AMD_GeometryFX_Utility.cpp
│ ├── GeometryFXMesh.cpp
│ ├── GeometryFXMesh.h
│ ├── GeometryFXMeshManager.cpp
│ ├── GeometryFXMeshManager.h
│ ├── GeometryFXUtility_Internal.cpp
│ ├── GeometryFXUtility_Internal.h
│ └── Shaders/
│ ├── AMD_GeometryFX_Filtering.hlsl
│ ├── build/
│ │ └── fxc_compile_geometryfx_all.bat
│ └── inc/
│ ├── AMD_GeometryFX_ClearDrawIndirectArgsCS.inc
│ ├── AMD_GeometryFX_DepthOnlyMultiIndirectVS.inc
│ ├── AMD_GeometryFX_DepthOnlyVS.inc
│ └── AMD_GeometryFX_FilterCS.inc
├── amd_geometryfx_sample/
│ ├── build/
│ │ ├── GeometryFX_Sample_2015.sln
│ │ ├── GeometryFX_Sample_2015.vcxproj
│ │ ├── GeometryFX_Sample_2015.vcxproj.filters
│ │ ├── GeometryFX_Sample_2017.filters
│ │ ├── GeometryFX_Sample_2017.sln
│ │ ├── GeometryFX_Sample_2017.vcxproj
│ │ └── GeometryFX_Sample_2017.vcxproj.filters
│ ├── media/
│ │ ├── house.mtl
│ │ ├── house.obj
│ │ ├── readme.txt
│ │ └── ui/
│ │ ├── Font.dds
│ │ ├── MIT.txt
│ │ └── dxutcontrols.dds
│ ├── premake/
│ │ └── premake5.lua
│ └── src/
│ ├── GeometryFX_Sample.cpp
│ ├── ResourceFiles/
│ │ ├── GeometryFX_Sample.rc
│ │ ├── dpiaware.manifest
│ │ └── resource.h
│ └── Shaders/
│ └── GeometryFX_Sample.hlsl
├── amd_lib/
│ ├── ags_lib/
│ │ ├── .gitattributes
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── inc/
│ │ │ └── amd_ags.h
│ │ └── lib/
│ │ ├── amd_ags_x64.lib
│ │ └── amd_ags_x86.lib
│ └── shared/
│ ├── .gitattributes
│ ├── .gitignore
│ ├── LICENSE.txt
│ ├── README.md
│ ├── common/
│ │ └── inc/
│ │ └── AMD_Types.h
│ ├── d3d11/
│ │ ├── build/
│ │ │ ├── AMD_LIB_2015.vcxproj
│ │ │ ├── AMD_LIB_2015.vcxproj.filters
│ │ │ ├── AMD_LIB_2017.vcxproj
│ │ │ ├── AMD_LIB_2017.vcxproj.filters
│ │ │ ├── AMD_LIB_Minimal_2015.vcxproj
│ │ │ ├── AMD_LIB_Minimal_2015.vcxproj.filters
│ │ │ ├── AMD_LIB_Minimal_2017.vcxproj
│ │ │ └── AMD_LIB_Minimal_2017.vcxproj.filters
│ │ ├── inc/
│ │ │ └── AMD_LIB.h
│ │ ├── premake/
│ │ │ ├── premake5.lua
│ │ │ └── premake5_minimal.lua
│ │ └── src/
│ │ ├── AMD_Buffer.cpp
│ │ ├── AMD_Buffer.h
│ │ ├── AMD_Common.cpp
│ │ ├── AMD_Common.h
│ │ ├── AMD_FullscreenPass.cpp
│ │ ├── AMD_FullscreenPass.h
│ │ ├── AMD_Rand.cpp
│ │ ├── AMD_Rand.h
│ │ ├── AMD_SaveRestoreState.cpp
│ │ ├── AMD_SaveRestoreState.h
│ │ ├── AMD_Serialize.cpp
│ │ ├── AMD_Serialize.h
│ │ ├── AMD_Texture2D.cpp
│ │ ├── AMD_Texture2D.h
│ │ ├── AMD_UnitCube.cpp
│ │ ├── AMD_UnitCube.h
│ │ ├── DirectXTex/
│ │ │ ├── DDSTextureLoader.cpp
│ │ │ ├── DDSTextureLoader.h
│ │ │ ├── MIT.txt
│ │ │ ├── ReadMe.txt
│ │ │ ├── ScreenGrab.cpp
│ │ │ └── ScreenGrab.h
│ │ └── Shaders/
│ │ ├── AMD_FullscreenPass.hlsl
│ │ ├── AMD_Quaternion.hlsl
│ │ ├── AMD_UnitCube.hlsl
│ │ ├── SeparableFilter/
│ │ │ ├── FilterCommon.hlsl
│ │ │ ├── FilterKernel.hlsl
│ │ │ ├── HorizontalFilter.hlsl
│ │ │ └── VerticalFilter.hlsl
│ │ ├── build/
│ │ │ ├── fxc_compile_fullscreen_pass.bat
│ │ │ └── fxc_compile_unit_cube.bat
│ │ └── inc/
│ │ ├── GS_FULLSCREEN_INDEX_RT.inc
│ │ ├── PS_FULLSCREEN.inc
│ │ ├── PS_UNIT_CUBE.inc
│ │ ├── VS_CLIP_SPACE_CUBE.inc
│ │ ├── VS_FULLSCREEN.inc
│ │ ├── VS_FULLSCREEN_INDEX_RT.inc
│ │ ├── VS_SCREENQUAD.inc
│ │ └── VS_UNIT_CUBE.inc
│ └── d3d12/
│ └── inc/
│ └── d3dx12.h
├── framework/
│ └── d3d11/
│ ├── amd_sdk/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── build/
│ │ │ ├── AMD_SDK_2015.vcxproj
│ │ │ ├── AMD_SDK_2015.vcxproj.filters
│ │ │ ├── AMD_SDK_2017.vcxproj
│ │ │ ├── AMD_SDK_2017.vcxproj.filters
│ │ │ ├── AMD_SDK_Minimal_2015.vcxproj
│ │ │ ├── AMD_SDK_Minimal_2015.vcxproj.filters
│ │ │ ├── AMD_SDK_Minimal_2017.vcxproj
│ │ │ └── AMD_SDK_Minimal_2017.vcxproj.filters
│ │ ├── inc/
│ │ │ ├── AMD_SDK.h
│ │ │ └── ShaderCacheSampleHelper.h
│ │ ├── media/
│ │ │ └── AMD.dds
│ │ ├── premake/
│ │ │ ├── premake5.lua
│ │ │ └── premake5_minimal.lua
│ │ └── src/
│ │ ├── AMD_Mesh.cpp
│ │ ├── AMD_Mesh.h
│ │ ├── Geometry.cpp
│ │ ├── Geometry.h
│ │ ├── HUD.cpp
│ │ ├── HUD.h
│ │ ├── HelperFunctions.cpp
│ │ ├── HelperFunctions.h
│ │ ├── LineRender.cpp
│ │ ├── LineRender.h
│ │ ├── Magnify.cpp
│ │ ├── Magnify.h
│ │ ├── MagnifyTool.cpp
│ │ ├── MagnifyTool.h
│ │ ├── ShaderCache.cpp
│ │ ├── ShaderCache.h
│ │ ├── ShaderCacheSampleHelper.cpp
│ │ ├── Shaders/
│ │ │ ├── Line.hlsl
│ │ │ └── Sprite.hlsl
│ │ ├── Sprite.cpp
│ │ ├── Sprite.h
│ │ ├── Timer.cpp
│ │ ├── Timer.h
│ │ ├── crc.cpp
│ │ └── crc.h
│ └── dxut/
│ ├── .gitattributes
│ ├── .gitignore
│ ├── Core/
│ │ ├── DDSTextureLoader.cpp
│ │ ├── DDSTextureLoader.h
│ │ ├── DXUT.cpp
│ │ ├── DXUT.h
│ │ ├── DXUTDevice11.cpp
│ │ ├── DXUTDevice11.h
│ │ ├── DXUT_2015.vcxproj
│ │ ├── DXUT_2017.vcxproj
│ │ ├── DXUTmisc.cpp
│ │ ├── DXUTmisc.h
│ │ ├── ScreenGrab.cpp
│ │ ├── ScreenGrab.h
│ │ ├── WICTextureLoader.cpp
│ │ ├── WICTextureLoader.h
│ │ ├── dxerr.cpp
│ │ ├── dxerr.h
│ │ └── premake5.lua
│ ├── MIT.txt
│ ├── Optional/
│ │ ├── DXUTLockFreePipe.h
│ │ ├── DXUTOpt_2015.vcxproj
│ │ ├── DXUTOpt_2017.vcxproj
│ │ ├── DXUTcamera.cpp
│ │ ├── DXUTcamera.h
│ │ ├── DXUTgui.cpp
│ │ ├── DXUTgui.h
│ │ ├── DXUTguiIME.cpp
│ │ ├── DXUTguiIME.h
│ │ ├── DXUTres.cpp
│ │ ├── DXUTres.h
│ │ ├── DXUTsettingsdlg.cpp
│ │ ├── DXUTsettingsdlg.h
│ │ ├── ImeUi.cpp
│ │ ├── ImeUi.h
│ │ ├── SDKmesh.cpp
│ │ ├── SDKmesh.h
│ │ ├── SDKmisc.cpp
│ │ ├── SDKmisc.h
│ │ └── premake5.lua
│ └── ReadMe.txt
├── premake/
│ ├── LICENSE.txt
│ ├── amd_premake_util.lua
│ ├── gpuopen_fx_update_vs_files.bat
│ └── gpuopen_geometryfx_update_vs_files.bat
└── third_party/
└── assimp/
├── .gitattributes
├── .gitignore
├── CHANGES
├── CREDITS
├── LICENSE
├── README
├── Readme.md
├── doc/
│ ├── AssimpCmdDoc_Html/
│ │ └── AssimpCmdDoc.chm
│ ├── AssimpDoc_Html/
│ │ └── AssimpDoc.chm
│ └── Preamble.txt
├── include/
│ └── assimp/
│ ├── .editorconfig
│ ├── Compiler/
│ │ ├── poppack1.h
│ │ ├── pstdint.h
│ │ └── pushpack1.h
│ ├── DefaultLogger.hpp
│ ├── Exporter.hpp
│ ├── IOStream.hpp
│ ├── IOSystem.hpp
│ ├── Importer.hpp
│ ├── LogStream.hpp
│ ├── Logger.hpp
│ ├── NullLogger.hpp
│ ├── ProgressHandler.hpp
│ ├── ai_assert.h
│ ├── anim.h
│ ├── camera.h
│ ├── cexport.h
│ ├── cfileio.h
│ ├── cimport.h
│ ├── color4.h
│ ├── color4.inl
│ ├── config.h
│ ├── defs.h
│ ├── importerdesc.h
│ ├── light.h
│ ├── material.h
│ ├── material.inl
│ ├── matrix3x3.h
│ ├── matrix3x3.inl
│ ├── matrix4x4.h
│ ├── matrix4x4.inl
│ ├── mesh.h
│ ├── metadata.h
│ ├── port/
│ │ └── AndroidJNI/
│ │ └── AndroidJNIIOSystem.h
│ ├── postprocess.h
│ ├── quaternion.h
│ ├── quaternion.inl
│ ├── scene.h
│ ├── texture.h
│ ├── types.h
│ ├── vector2.h
│ ├── vector2.inl
│ ├── vector3.h
│ ├── vector3.inl
│ └── version.h
└── lib/
└── assimp_x64_2015.lib
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
# This is a windows-only project. Force CRLF.
* text eol=crlf
# Explicit settings for specific file types.
*.h eol=crlf
*.hpp eol=crlf
*.inc eol=crlf
*.cpp eol=crlf
*.inl eol=crlf
*.hlsl eol=crlf
*.rc eol=crlf
*.manifest eol=crlf
*.vcxproj eol=crlf
*.filters eol=crlf
*.props eol=crlf
*.sln eol=crlf
*.bat eol=crlf
*.txt eol=crlf
*.lua eol=crlf
*.md eol=crlf
*.py eol=crlf
*.svg eol=crlf
*.mtl eol=crlf
*.pdf binary
*.ppsx binary
*.ico binary
*.png binary
*.bmp binary
*.dds binary
*.DDS binary
*.sdkmesh binary
*.ply binary
*.obj binary
*.chm binary
*.lib binary
*.dll binary
*.exe binary
# Ensure precompiled shader files are detected as C++.
# Otherwise, if there are a lot of them, the repo can
# get incorrectly marked as Assembly.
amd_geometryfx/src/Shaders/inc/*.inc linguist-language=C++
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, etc.
# User-specific files
*.suo
*.user
# Build results
VS*/
[Dd]esktop_*/
GeometryFX_Sample_Debug_*.*
GeometryFX_Sample_Release_*.*
amd_geometryfx/lib/GPUOpen_GeometryFX_*.*
amd_geometryfx_sample/bin/
# Visual Studo 2015 cache/options directory
.vs/
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
*.opendb
*.VC.db
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Installshield output folder
[Ee]xpress/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# Shader cache
[Bb]in/Shaders/
HashDigest.html
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to GPUOpen Effects
Thank you for your interest in GPUOpen Effects.
Contributions can be made by creating a GitHub pull request.
---
**IMPORTANT**: By creating a pull request, you agree to allow your contribution to be licensed by the project owners under the terms of the [MIT License](LICENSE.txt).
---
### Types of contributions
We welcome pull requests without prior discussion for the following types of contributions:
* Typo fixes
* Bug fixes (that do not require significant code changes)
* Shader performance improvements (that do not require significant code changes)
We also welcome pull requests for new features and improvements/optimizations/bug fixes that require larger code changes. However, these should be discussed prior to starting work, via GitHub issues. This is to avoid a contributor spending a lot of time on changes that might not be accepted. In general, the bigger the change, the more discussion should take place before starting work.
Regarding shader performance improvements, it is possible to make a change that runs faster on one GPU architecture but slower on another. Shader changes should not reduce performance or quality on any supported GPU. We recognize that some contributors may not have different GPUs for testing. GPUOpen maintainers will evaluate shader changes to ensure performance and quality are not degraded on different GPU architectures.
### Implementation guidelines
When contributing to an existing GPUOpen Effects library or sample, we mostly just want your code to be:
1. Useful to game developers and other users of real-time visual effects code
2. Mindful of performance
3. Written in the style of the existing code
Here are a few specific guidelines:
* **Match the style of existing code**
* This is the most important guideline
* Avoid C++11/14/17 features
* Possible exceptions include simple changes/additions to the language that are widely supported
* "Widely supported" means it works all the way back to Visual Studio 2010
* We allow `nullptr`, for example, because it is:
1. A minor change compared to "ordinary" C++ (i.e. C++98/03)
2. An improvement over "ordinary" C++
3. Widely supported
* Avoid adding new dependencies
* Follow the rules for namespaces
* Wrap external API functions in the AMD namespace
* Avoid namespace `using` declarations in header files and before `#include` directives in implementation files
* Avoid unnamed namespaces in header files
* Avoid complicated template code
* We realized that "complicated" is a subjective standard
* If you decide to write template code to avoid manually writing several specialized versions of the same function, and there is an actual need for different versions of the function, and the resulting code is not a tangle of angle brackets, then your template code may qualify as "uncomplicated"
* But be aware that many of the maintainers view template syntax as inherently ugly, and while recognizing there are good uses for templates, believe that their overuse leads to code that is less readable and harder to maintain
* Avoid vendor-specific shader code, for simplicity and readability
* Use only vanilla HLSL, at least for now
* Avoid conditional compilation based on vendor, at least for now
* We may relax or eliminate this rule in the future
### Code formatting
The code formatting guidelines help keep the look of the code (at least somewhat) consistent within a particular GPUOpen Effects project as well as across all GPUOpen Effects projects.
We recognize that some of the guidelines below are completely in the realm of personal preference (e.g. spaces vs. tabs, formatting of `if` statements and `for` loops, placement of curly braces, etc.). But consistency is important, and in order to achieve consistency, a style must be chosen.
For formatting considerations not covered by the guidelines below, **match existing code**.
Here are the guidelines for code formatting:
* Leave line endings as they are
* Currently, all GPUOpen Effects are based solely on DirectX® and thus Windows®
* All text files use CRLF line endings
* Our .gitattributes files enforce this, so you should not have to worry about it
* Avoid trailing whitespace
* This includes blank lines, meaning blank lines should actually be empty (except for the line ending)
* Use spaces, not tabs
* Limit line length to a maximum of 200 characters
* Widescreen, high-res monitors eliminate the need for an 80-character limit
* But we still need lines to be limited to some reasonable length
* Most lines should be limited to 100 characters, for fans of side-by-side window layouts, side-by-side diffs, etc.
* Use one space between conditional and loop keywords and the opening parenthesis
* `if (result != AOFX_RETURN_CODE_SUCCESS)`
* `for (int i = 0; i < m_MultiResLayerCount; i++)`
* Place curly braces from the same pair in the same line or in the same column
* This:
```
if (context == NULL) { return; }
Mesh::~Mesh()
{
Release();
}
```
* Not this:
```
if (context == NULL) {
return; }
Mesh::~Mesh() {
Release();
}
```
* The one exception to "no K&R-style braces" is `extern "C" {`
* Ensure control structures have a complete curly-braced block of code
* This:
```
if (context == NULL) { return; }
if (disabled)
{
return;
}
```
* Not this:
```
if (context == NULL) return;
if (disabled)
return;
```
### Commit messages
Please follow the standard Git conventions for commit messages.
Here is our summary of these conventions, adapted somewhat for GitHub's particular rules:
* Write a subject line followed by a blank line followed by further explanation (if needed)
* Capitalize the subject line
* Do not put a period at the end of the subject line
* Limit the subject line to 72 characters
* A common recommendation is to limit it to 50 characters
* GitHub truncates subject lines longer than 72 characters
* Use the imperative present tense
* e.g. "Fix rendering bug"
* Not "Fixed rendering bug", "Fixes rendering bug", or "Fixing rendering bug"
* Wrap the body (i.e. the "further explanation" part) at 72 characters
If you are using GitHub Desktop, the blank line and text wrapping will be handled for you.
More information on the standard conventions for good commit messages can be found here:
* GitHub blog entry on [Shiny new commit styles](https://github.com/blog/926-shiny-new-commit-styles)
* Chris Beams' post on [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/)
* Tim Pope's original [Note About Git Commit Messages](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
In addition, if the commit fixes an open issue, add `Fixes issue_number` to the end of the commit message:
* e.g. `Fixes #1`
* See [Closing issues via commit messages](https://help.github.com/articles/closing-issues-via-commit-messages/) for more details
================================================
FILE: LICENSE.txt
================================================
Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: README.md
================================================
# AMD GeometryFX

The GeometryFX library provides convenient access to compute-based triangle filtering (CTF), which improves triangle throughput by filtering out triangles that do not contribute to the final image using a compute-preprocess.
<div>
<a href="https://github.com/GPUOpen-Effects/GeometryFX/releases/latest/"><img src="http://gpuopen-effects.github.io/media/latest-release-button.svg" alt="Latest release" title="Latest release"></a>
</div>
### Prerequisites
* AMD Radeon™ GCN-based GPU (HD 7000 series or newer)
* Or other DirectX® 11 compatible discrete GPU with Shader Model 5 support
* 64-bit Windows® 7 (SP1 with the [Platform Update](https://msdn.microsoft.com/en-us/library/windows/desktop/jj863687.aspx)), Windows® 8.1, or Windows® 10
* Visual Studio® 2015, or Visual Studio® 2017
### Getting started
* Visual Studio solutions for VS2015 and VS2017 can be found in the `amd_geometryfx_sample\build` directory.
* There are also solutions for just the core library in the `amd_geometryfx\build` directory.
### How GeometryFX Works
GeometryFX improves the rasterizer efficiency by culling triangles that do not contribute to the output in a pre-pass. This allows the full chip to be used to process geometry, and ensures that the rasterizer only processes triangles that are visible.
A good use case for the GeometryFX library is depth-only rendering of opaque geometry – for example, in shadow maps:
* Depth-only rendering leaves most compute units idle, which can be used by GeometryFX.
* Opaque geometry has no ordering requirements, so GeometryFX can cull triangles in arbitrary order and regroup/split draw calls.
* All geometry can be rendered using the same vertex shader, which allows the GeometryFX library to merge draw calls for maximum efficiency
At its core, GeometryFX works by generating an intermediate index buffer which consists of visible triangles only. Intermediate buffers are reused as much as possible to minimize memory usage. GeometryFX also buffers up draw calls to execute the filtering on one batch while the previous batch is being rendered, allowing the filtering to overlap with the actual draw call.
The library makes heavy use of multi-draw indirect. This is a DirectX 11 driver extension exposed through the AMD GPU Services (AGS) library. It allows multiple draw calls to be prepared on the GPU and executed with a single API call. For more information on AGS, including samples, visit the [AGS SDK repository on GitHub](https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/).
### The Filters
GeometryFX comes with several built-in filters:
* Backface culling: This is generally the most efficient filter, which removes back-facing triangles. In order to avoid clipping, the culling is performed in homogeneous coordinates.
* Small primitive filtering: Triangles which are guaranteed to not hit a sample are removed. This filter tests the bounding box of the triangle against the sample grid, and requires the triangle to be projected.
* Frustum culling: Cull triangles against the view frustum. While most games perform per-object culling, this filter runs per-triangle.
* Cluster culling: Filter complete clusters of triangles before going into per-triangle filtering.
The filters are executed in a compute shader which writes the new index buffer and the draw calls for each batch.
### Integration
Applications which want to integrate GeometryFX as-is are expected to allocate all static geometry through GeometryFX. The API exposes a function to obtain the storage location, which can be used for normal rendering of the geometry. Notice that GeometryFX will aggressively pool all data to allow as many draw calls as possible to be served from the same buffer.
At run-time, the application has to provide the view/projection matrix to GeometryFX and the list of objects that have to be rendered. Once everything has been submitted, GeometryFX will execute the filtering and rendering.
### Learn More
* [Cluster culling blog post on GPUOpen](http://gpuopen.com/geometryfx-1-2-cluster-culling/)
### Premake
The Visual Studio solutions and projects in this repo were generated with Premake. If you need to regenerate the Visual Studio files, double-click on `gpuopen_geometryfx_update_vs_files.bat` in the `premake` directory.
For Visual Studio 2015 and 2017, this version of Premake adds the `WindowsTargetPlatformVersion` element to the project file to specify which version of the Windows SDK will be used. To change `WindowsTargetPlatformVersion` for Visual Studio 2015 and 2017, change the value for `_AMD_WIN_SDK_VERSION` in `premake\amd_premake_util.lua` and regenerate the Visual Studio files.
### Third-Party Software
* DXUT is distributed under the terms of the MIT License. See `framework\d3d11\dxut\MIT.txt`.
* Premake is distributed under the terms of the BSD License. See `premake\LICENSE.txt`.
* The Open Asset Import Library (assimp) is distributed under the terms of the BSD License. See `third_party\assimp\LICENSE`.
DXUT and assimp are only used by the sample, not the core library. Only first-party software (specifically `ags_lib`, `amd_geometryfx`, and `amd_lib`) is needed to build the GeometryFX library.
### Attribution
* AMD, the AMD Arrow logo, Radeon, and combinations thereof are either registered trademarks or trademarks of Advanced Micro Devices, Inc. in the United States and/or other countries.
* Microsoft, DirectX, Visual Studio, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2015.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AMD_GeometryFX", "AMD_GeometryFX_2015.vcxproj", "{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AMD_LIB", "..\..\amd_lib\shared\d3d11\build\AMD_LIB_2015.vcxproj", "{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DLL_Debug|Win32 = DLL_Debug|Win32
DLL_Debug|x64 = DLL_Debug|x64
DLL_Release_MT|Win32 = DLL_Release_MT|Win32
DLL_Release_MT|x64 = DLL_Release_MT|x64
DLL_Release|Win32 = DLL_Release|Win32
DLL_Release|x64 = DLL_Release|x64
Lib_Debug|Win32 = Lib_Debug|Win32
Lib_Debug|x64 = Lib_Debug|x64
Lib_Release|Win32 = Lib_Release|Win32
Lib_Release|x64 = Lib_Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|Win32.ActiveCfg = DLL_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|Win32.Build.0 = DLL_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|x64.ActiveCfg = DLL_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|x64.Build.0 = DLL_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|Win32.ActiveCfg = DLL_Release_MT|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|Win32.Build.0 = DLL_Release_MT|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|x64.ActiveCfg = DLL_Release_MT|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|x64.Build.0 = DLL_Release_MT|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|Win32.ActiveCfg = DLL_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|Win32.Build.0 = DLL_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|x64.ActiveCfg = DLL_Release|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|x64.Build.0 = DLL_Release|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|Win32.ActiveCfg = Lib_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|Win32.Build.0 = Lib_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|x64.ActiveCfg = Lib_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|x64.Build.0 = Lib_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|Win32.ActiveCfg = Lib_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|Win32.Build.0 = Lib_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|x64.ActiveCfg = Lib_Release|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|x64.Build.0 = Lib_Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|Win32.ActiveCfg = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|Win32.Build.0 = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|x64.ActiveCfg = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|x64.Build.0 = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|Win32.ActiveCfg = Release_MT|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|Win32.Build.0 = Release_MT|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|x64.ActiveCfg = Release_MT|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|x64.Build.0 = Release_MT|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|Win32.ActiveCfg = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|Win32.Build.0 = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|x64.ActiveCfg = Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|x64.Build.0 = Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|Win32.ActiveCfg = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|Win32.Build.0 = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|x64.ActiveCfg = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|x64.Build.0 = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|Win32.ActiveCfg = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|Win32.Build.0 = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|x64.ActiveCfg = Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2015.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DLL_Debug|Win32">
<Configuration>DLL_Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Debug|x64">
<Configuration>DLL_Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release|Win32">
<Configuration>DLL_Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release|x64">
<Configuration>DLL_Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Debug|Win32">
<Configuration>Lib_Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Debug|x64">
<Configuration>Lib_Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Release|Win32">
<Configuration>Lib_Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Release|x64">
<Configuration>Lib_Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release_MT|Win32">
<Configuration>DLL_Release_MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release_MT|x64">
<Configuration>DLL_Release_MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}</ProjectGuid>
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
<Keyword>Win32Proj</Keyword>
<RootNamespace>AMD_GeometryFX</RootNamespace>
<ProjectName>AMD_GeometryFX</ProjectName>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>..\lib\VS2015\Win32\DLL_Debug\</OutDir>
<IntDir>VS2015\Win32\DLL_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86d</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>..\lib\VS2015\x64\DLL_Debug\</OutDir>
<IntDir>VS2015\x64\DLL_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64d</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2015\Win32\DLL_Release\</OutDir>
<IntDir>VS2015\Win32\DLL_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2015\x64\DLL_Release\</OutDir>
<IntDir>VS2015\x64\DLL_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'">
<OutDir>..\lib\VS2015\Win32\Lib_Debug\</OutDir>
<IntDir>VS2015\Win32\Lib_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86d</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'">
<OutDir>..\lib\VS2015\x64\Lib_Debug\</OutDir>
<IntDir>VS2015\x64\Lib_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64d</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'">
<OutDir>..\lib\VS2015\Win32\Lib_Release\</OutDir>
<IntDir>VS2015\Win32\Lib_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'">
<OutDir>..\lib\VS2015\x64\Lib_Release\</OutDir>
<IntDir>VS2015\x64\Lib_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2015\Win32\DLL_Release_MT\</OutDir>
<IntDir>VS2015\Win32\DLL_Release_MT\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2015\x64\DLL_Release_MT\</OutDir>
<IntDir>VS2015\x64\DLL_Release_MT\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2015\Win32\DLL_Debug\GPUOpen_GeometryFX_x86d.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2015\Win32\DLL_Debug\$(TargetName).lib" +,, "..\lib\VS2015\Win32\DLL_Debug\" > nul
xcopy "..\lib\VS2015\Win32\DLL_Debug\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2015\Win32\DLL_Debug\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2015\x64\DLL_Debug\GPUOpen_GeometryFX_x64d.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2015\x64\DLL_Debug\$(TargetName).lib" +,, "..\lib\VS2015\x64\DLL_Debug\" > nul
xcopy "..\lib\VS2015\x64\DLL_Debug\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2015\x64\DLL_Debug\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2015\Win32\DLL_Release\GPUOpen_GeometryFX_x86.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2015\Win32\DLL_Release\$(TargetName).lib" +,, "..\lib\VS2015\Win32\DLL_Release\" > nul
xcopy "..\lib\VS2015\Win32\DLL_Release\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2015\Win32\DLL_Release\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2015\x64\DLL_Release\GPUOpen_GeometryFX_x64.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2015\x64\DLL_Release\$(TargetName).lib" +,, "..\lib\VS2015\x64\DLL_Release\" > nul
xcopy "..\lib\VS2015\x64\DLL_Release\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2015\x64\DLL_Release\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2015\Win32\DLL_Release_MT\GPUOpen_GeometryFX_x86.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2015\Win32\DLL_Release_MT\$(TargetName).lib" +,, "..\lib\VS2015\Win32\DLL_Release_MT\" > nul
xcopy "..\lib\VS2015\Win32\DLL_Release_MT\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2015\Win32\DLL_Release_MT\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2015\x64\DLL_Release_MT\GPUOpen_GeometryFX_x64.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2015\x64\DLL_Release_MT\$(TargetName).lib" +,, "..\lib\VS2015\x64\DLL_Release_MT\" > nul
xcopy "..\lib\VS2015\x64\DLL_Release_MT\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2015\x64\DLL_Release_MT\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\inc\AMD_GeometryFX.h" />
<ClInclude Include="..\inc\AMD_GeometryFX_Filtering.h" />
<ClInclude Include="..\inc\AMD_GeometryFX_Utility.h" />
<ClInclude Include="..\src\AMD_GeometryFX_Internal.h" />
<ClInclude Include="..\src\GeometryFXMesh.h" />
<ClInclude Include="..\src\GeometryFXMeshManager.h" />
<ClInclude Include="..\src\GeometryFXUtility_Internal.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\AMD_GeometryFX_Filtering.cpp" />
<ClCompile Include="..\src\AMD_GeometryFX_Utility.cpp" />
<ClCompile Include="..\src\GeometryFXMesh.cpp" />
<ClCompile Include="..\src\GeometryFXMeshManager.cpp" />
<ClCompile Include="..\src\GeometryFXUtility_Internal.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="..\src\Shaders\AMD_GeometryFX_Filtering.hlsl" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\amd_lib\shared\d3d11\build\AMD_LIB_2015.vcxproj">
<Project>{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2015.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="inc">
<UniqueIdentifier>{1F80880B-8B89-887C-1405-9F7C800D947C}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{2DAB880B-99B4-887C-2230-9F7C8E38947C}</UniqueIdentifier>
</Filter>
<Filter Include="src\Shaders">
<UniqueIdentifier>{06ADC7FB-7262-40F1-FB56-3AC8670B37F5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\inc\AMD_GeometryFX.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\inc\AMD_GeometryFX_Filtering.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\inc\AMD_GeometryFX_Utility.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\src\AMD_GeometryFX_Internal.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXMesh.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXMeshManager.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXUtility_Internal.h">
<Filter>src</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\AMD_GeometryFX_Filtering.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\AMD_GeometryFX_Utility.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXMesh.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXMeshManager.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXUtility_Internal.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\src\Shaders\AMD_GeometryFX_Filtering.hlsl">
<Filter>src\Shaders</Filter>
</None>
</ItemGroup>
</Project>
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2017.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="inc">
<UniqueIdentifier>{1F80880B-8B89-887C-1405-9F7C800D947C}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{2DAB880B-99B4-887C-2230-9F7C8E38947C}</UniqueIdentifier>
</Filter>
<Filter Include="src\Shaders">
<UniqueIdentifier>{06ADC7FB-7262-40F1-FB56-3AC8670B37F5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="..\src\Shaders\AMD_GeometryFX_Filtering.hlsl">
<Filter>src\Shaders</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\inc\AMD_GeometryFX.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\inc\AMD_GeometryFX_Filtering.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\inc\AMD_GeometryFX_Utility.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\src\AMD_GeometryFX_Internal.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXMesh.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXMeshManager.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXUtility_Internal.h">
<Filter>src</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\AMD_GeometryFX_Filtering.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\AMD_GeometryFX_Utility.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXMesh.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXMeshManager.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXUtility_Internal.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
</Project>
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2017.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AMD_GeometryFX", "AMD_GeometryFX_2017.vcxproj", "{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AMD_LIB", "..\..\amd_lib\shared\d3d11\build\AMD_LIB_2017.vcxproj", "{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DLL_Debug|Win32 = DLL_Debug|Win32
DLL_Debug|x64 = DLL_Debug|x64
DLL_Release_MT|Win32 = DLL_Release_MT|Win32
DLL_Release_MT|x64 = DLL_Release_MT|x64
DLL_Release|Win32 = DLL_Release|Win32
DLL_Release|x64 = DLL_Release|x64
Lib_Debug|Win32 = Lib_Debug|Win32
Lib_Debug|x64 = Lib_Debug|x64
Lib_Release|Win32 = Lib_Release|Win32
Lib_Release|x64 = Lib_Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|Win32.ActiveCfg = DLL_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|Win32.Build.0 = DLL_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|x64.ActiveCfg = DLL_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Debug|x64.Build.0 = DLL_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|Win32.ActiveCfg = DLL_Release_MT|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|Win32.Build.0 = DLL_Release_MT|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|x64.ActiveCfg = DLL_Release_MT|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release_MT|x64.Build.0 = DLL_Release_MT|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|Win32.ActiveCfg = DLL_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|Win32.Build.0 = DLL_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|x64.ActiveCfg = DLL_Release|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.DLL_Release|x64.Build.0 = DLL_Release|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|Win32.ActiveCfg = Lib_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|Win32.Build.0 = Lib_Debug|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|x64.ActiveCfg = Lib_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Debug|x64.Build.0 = Lib_Debug|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|Win32.ActiveCfg = Lib_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|Win32.Build.0 = Lib_Release|Win32
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|x64.ActiveCfg = Lib_Release|x64
{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}.Lib_Release|x64.Build.0 = Lib_Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|Win32.ActiveCfg = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|Win32.Build.0 = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|x64.ActiveCfg = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Debug|x64.Build.0 = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|Win32.ActiveCfg = Release_MT|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|Win32.Build.0 = Release_MT|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|x64.ActiveCfg = Release_MT|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release_MT|x64.Build.0 = Release_MT|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|Win32.ActiveCfg = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|Win32.Build.0 = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|x64.ActiveCfg = Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.DLL_Release|x64.Build.0 = Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|Win32.ActiveCfg = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|Win32.Build.0 = Debug|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|x64.ActiveCfg = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Debug|x64.Build.0 = Debug|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|Win32.ActiveCfg = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|Win32.Build.0 = Release|Win32
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|x64.ActiveCfg = Release|x64
{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}.Lib_Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2017.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="DLL_Debug|Win32">
<Configuration>DLL_Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Debug|x64">
<Configuration>DLL_Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release|Win32">
<Configuration>DLL_Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release|x64">
<Configuration>DLL_Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Debug|Win32">
<Configuration>Lib_Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Debug|x64">
<Configuration>Lib_Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Release|Win32">
<Configuration>Lib_Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Lib_Release|x64">
<Configuration>Lib_Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release_MT|Win32">
<Configuration>DLL_Release_MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="DLL_Release_MT|x64">
<Configuration>DLL_Release_MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E05C77A9-1EE7-4F02-AF03-575FB4829AC5}</ProjectGuid>
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
<Keyword>Win32Proj</Keyword>
<RootNamespace>AMD_GeometryFX</RootNamespace>
<ProjectName>AMD_GeometryFX</ProjectName>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>..\lib\VS2017\Win32\DLL_Debug\</OutDir>
<IntDir>VS2017\Win32\DLL_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86d</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>..\lib\VS2017\x64\DLL_Debug\</OutDir>
<IntDir>VS2017\x64\DLL_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64d</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2017\Win32\DLL_Release\</OutDir>
<IntDir>VS2017\Win32\DLL_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2017\x64\DLL_Release\</OutDir>
<IntDir>VS2017\x64\DLL_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'">
<OutDir>..\lib\VS2017\Win32\Lib_Debug\</OutDir>
<IntDir>VS2017\Win32\Lib_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86d</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'">
<OutDir>..\lib\VS2017\x64\Lib_Debug\</OutDir>
<IntDir>VS2017\x64\Lib_Debug\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64d</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'">
<OutDir>..\lib\VS2017\Win32\Lib_Release\</OutDir>
<IntDir>VS2017\Win32\Lib_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'">
<OutDir>..\lib\VS2017\x64\Lib_Release\</OutDir>
<IntDir>VS2017\x64\Lib_Release\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64</TargetName>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2017\Win32\DLL_Release_MT\</OutDir>
<IntDir>VS2017\Win32\DLL_Release_MT\</IntDir>
<TargetName>GPUOpen_GeometryFX_x86</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>..\lib\VS2017\x64\DLL_Release_MT\</OutDir>
<IntDir>VS2017\x64\DLL_Release_MT\</IntDir>
<TargetName>GPUOpen_GeometryFX_x64</TargetName>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2017\Win32\DLL_Debug\GPUOpen_GeometryFX_x86d.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2017\Win32\DLL_Debug\$(TargetName).lib" +,, "..\lib\VS2017\Win32\DLL_Debug\" > nul
xcopy "..\lib\VS2017\Win32\DLL_Debug\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2017\Win32\DLL_Debug\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2017\x64\DLL_Debug\GPUOpen_GeometryFX_x64d.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2017\x64\DLL_Debug\$(TargetName).lib" +,, "..\lib\VS2017\x64\DLL_Debug\" > nul
xcopy "..\lib\VS2017\x64\DLL_Debug\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2017\x64\DLL_Debug\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2017\Win32\DLL_Release\GPUOpen_GeometryFX_x86.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2017\Win32\DLL_Release\$(TargetName).lib" +,, "..\lib\VS2017\Win32\DLL_Release\" > nul
xcopy "..\lib\VS2017\Win32\DLL_Release\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2017\Win32\DLL_Release\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2017\x64\DLL_Release\GPUOpen_GeometryFX_x64.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2017\x64\DLL_Release\$(TargetName).lib" +,, "..\lib\VS2017\x64\DLL_Release\" > nul
xcopy "..\lib\VS2017\x64\DLL_Release\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2017\x64\DLL_Release\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Lib_Release|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_LIB;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=0;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Lib>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|Win32'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x86.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2017\Win32\DLL_Release_MT\GPUOpen_GeometryFX_x86.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2017\Win32\DLL_Release_MT\$(TargetName).lib" +,, "..\lib\VS2017\Win32\DLL_Release_MT\" > nul
xcopy "..\lib\VS2017\Win32\DLL_Release_MT\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2017\Win32\DLL_Release_MT\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DLL_Release_MT|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<PreprocessorDefinitions>_USRDLL;AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB=1;AMD_DLL_EXPORTS=1;WIN32;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0601;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\inc;..\..\amd_lib\shared\common\inc;..\..\amd_lib\shared\d3d11\inc;..\..\amd_lib\ags_lib\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<MinimalRebuild>false</MinimalRebuild>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<ExceptionHandling>false</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
<AdditionalOptions>/EHsc %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>dxguid.lib;amd_ags_x64.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\..\amd_lib\ags_lib\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>..\lib\VS2017\x64\DLL_Release_MT\GPUOpen_GeometryFX_x64.lib</ImportLibrary>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
</Link>
<PostBuildEvent>
<Command>copy /b "..\lib\VS2017\x64\DLL_Release_MT\$(TargetName).lib" +,, "..\lib\VS2017\x64\DLL_Release_MT\" > nul
xcopy "..\lib\VS2017\x64\DLL_Release_MT\$(TargetName).dll" "..\lib" /H /R /Y > nul
xcopy "..\lib\VS2017\x64\DLL_Release_MT\$(TargetName).lib" "..\lib" /H /R /Y > nul</Command>
<Message>Copying build output to lib directory...</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\inc\AMD_GeometryFX.h" />
<ClInclude Include="..\inc\AMD_GeometryFX_Filtering.h" />
<ClInclude Include="..\inc\AMD_GeometryFX_Utility.h" />
<ClInclude Include="..\src\AMD_GeometryFX_Internal.h" />
<ClInclude Include="..\src\GeometryFXMesh.h" />
<ClInclude Include="..\src\GeometryFXMeshManager.h" />
<ClInclude Include="..\src\GeometryFXUtility_Internal.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\AMD_GeometryFX_Filtering.cpp" />
<ClCompile Include="..\src\AMD_GeometryFX_Utility.cpp" />
<ClCompile Include="..\src\GeometryFXMesh.cpp" />
<ClCompile Include="..\src\GeometryFXMeshManager.cpp" />
<ClCompile Include="..\src\GeometryFXUtility_Internal.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="..\src\Shaders\AMD_GeometryFX_Filtering.hlsl" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\amd_lib\shared\d3d11\build\AMD_LIB_2017.vcxproj">
<Project>{0D2AEA47-7909-69E3-8221-F4B9EE7FCF44}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: amd_geometryfx/build/AMD_GeometryFX_2017.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="inc">
<UniqueIdentifier>{1F80880B-8B89-887C-1405-9F7C800D947C}</UniqueIdentifier>
</Filter>
<Filter Include="src">
<UniqueIdentifier>{2DAB880B-99B4-887C-2230-9F7C8E38947C}</UniqueIdentifier>
</Filter>
<Filter Include="src\Shaders">
<UniqueIdentifier>{06ADC7FB-7262-40F1-FB56-3AC8670B37F5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\inc\AMD_GeometryFX.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\inc\AMD_GeometryFX_Filtering.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\inc\AMD_GeometryFX_Utility.h">
<Filter>inc</Filter>
</ClInclude>
<ClInclude Include="..\src\AMD_GeometryFX_Internal.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXMesh.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXMeshManager.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\src\GeometryFXUtility_Internal.h">
<Filter>src</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\AMD_GeometryFX_Filtering.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\AMD_GeometryFX_Utility.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXMesh.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXMeshManager.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\GeometryFXUtility_Internal.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="..\src\Shaders\AMD_GeometryFX_Filtering.hlsl">
<Filter>src\Shaders</Filter>
</None>
</ItemGroup>
</Project>
================================================
FILE: amd_geometryfx/inc/AMD_GeometryFX.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_H
#define AMD_GEOMETRYFX_H
# define AMD_GEOMETRYFX_VERSION_MAJOR 1
# define AMD_GEOMETRYFX_VERSION_MINOR 2
# define AMD_GEOMETRYFX_VERSION_PATCH 1
// default to static lib
# ifndef AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB
# define AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB 0
# endif
# if AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB
# ifdef AMD_DLL_EXPORTS
# define AMD_GEOMETRYFX_DLL_API __declspec(dllexport)
# else // AMD_DLL_EXPORTS
# define AMD_GEOMETRYFX_DLL_API __declspec(dllimport)
# endif // AMD_DLL_EXPORTS
# else // AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB
# define AMD_GEOMETRYFX_DLL_API
# endif // AMD_GEOMETRYFX_COMPILE_DYNAMIC_LIB
#include "AMD_Types.h"
# if defined(DEBUG) || defined(_DEBUG)
# define AMD_GEOMETRYFX_DEBUG 1
# endif
namespace AMD
{
// The Return codes
typedef enum GEOMETRYFX_RETURN_CODE_t
{
GEOMETRYFX_RETURN_CODE_SUCCESS,
GEOMETRYFX_RETURN_CODE_FAIL,
GEOMETRYFX_RETURN_CODE_INVALID_ARGUMENT,
GEOMETRYFX_RETURN_CODE_INVALID_POINTER,
GEOMETRYFX_RETURN_CODE_D3D11_CALL_FAILED,
GEOMETRYFX_RETURN_CODE_COUNT,
} GEOMETRYFX_RETURN_CODE;
}
#endif // AMD_GEOMETRYFX_H
================================================
FILE: amd_geometryfx/inc/AMD_GeometryFX_Filtering.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_FILTERING_H
#define AMD_GEOMETRYFX_FILTERING_H
// VS2010 has a bug in the headers, where they collide on #defines
// include <intsafe.h> here to get rid of them
#include <intsafe.h>
#include <DirectXMath.h>
#include <d3d11.h>
#include <vector>
#include "AMD_GeometryFX.h"
namespace AMD
{
enum GEOMETRYFX_FILTER
{
GeometryFX_FilterDuplicateIndices = 0x1,
GeometryFX_FilterBackface = 0x2,
GeometryFX_FilterFrustum = 0x8,
GeometryFX_FilterSmallPrimitives = 0x20,
GeometryFX_ClusterFilterBackface = 0x1 << 10
};
struct GeometryFX_FilterStatistics
{
inline GeometryFX_FilterStatistics()
: trianglesProcessed(0)
, trianglesRendered(0)
, trianglesCulled(0)
, clustersProcessed (0)
, clustersRendered (0)
, clustersCulled (0)
{
}
int64 trianglesProcessed;
int64 trianglesRendered;
int64 trianglesCulled;
int64 clustersProcessed;
int64 clustersRendered;
int64 clustersCulled;
};
struct GeometryFX_FilterRenderOptions
{
inline GeometryFX_FilterRenderOptions()
: enableFiltering(true)
, enabledFilters(0xFF)
, statistics(nullptr)
{
}
/**
If filtering is disabled, the mesh will be rendered directly.
*/
bool enableFiltering;
/**
Specify which filters should be enabled.
*/
uint32 enabledFilters;
/**
If set, statistics counters will be enabled.
If enabled, queries will be issued along with each draw call significantly
reducing performance.
*/
GeometryFX_FilterStatistics *statistics;
};
struct GeometryFX_FilterDesc
{
inline GeometryFX_FilterDesc()
: pDevice(nullptr)
, maximumDrawCallCount(-1)
, emulateMultiIndirectDraw(false)
{
}
ID3D11Device *pDevice;
// This is only used if filtering is disabled. If set to -1, it assumes
// every mesh is drawn exactly once. If instancing is used, each instance
// counts as a separate draw call.
int maximumDrawCallCount;
// Emulate indirect draw. If the extension is present, it will be not used.
bool emulateMultiIndirectDraw;
};
/**
All resources created here will have names set using DXUT_SetDebugName with a
[AMD GeometryFX Filtering] prefix.
*/
class AMD_GEOMETRYFX_DLL_API GeometryFX_Filter
{
public:
struct Handle;
typedef Handle *MeshHandle;
GeometryFX_Filter(const GeometryFX_FilterDesc *pFilterDesc);
~GeometryFX_Filter();
/**
Register meshes for the static mesh renderer.
This function must be called exactly once.
@note This function may call functions on the ID3D11Device.
*/
std::vector<MeshHandle> RegisterMeshes(
const int meshCount, const int *pVerticesInMesh, const int *pIndicesInMesh);
/**
Set the data for a mesh.
RegisterMeshes() must have been called previously.
@note This function may call functions on the ID3D11Device and the
immediate context.
*/
void SetMeshData(const MeshHandle &handle, const void *pVertexData, const void *pIndexData);
/**
Start a render pass.
From here on, the context should no longer be used by the application
until EndRender() has been called.
@note If the multi-indirect-draw extension is present, the context must be
equal to the immediate context.
@note A render pass will change the D3D device state. In particular, the
following states will be changed:
- vertex shader, pixel shader and compute shader (the library assumes no
hull or domain shader is bound)
- resources bound to the vertex shader, pixel shader and compute shader
- the topology
*/
void BeginRender(ID3D11DeviceContext *pContext, const GeometryFX_FilterRenderOptions &options,
const DirectX::XMMATRIX &view, const DirectX::XMMATRIX &projection,
const int renderTargetWidth, const int renderTargetHeight);
/**
Render a mesh.
Only valid within a BeginRender/EndRender pair. This function will render
the mesh with the specified world matrix.
*/
void RenderMesh(const MeshHandle &handle, const DirectX::XMMATRIX &world);
/**
Render a mesh with instancing.
Only valid within a BeginRender/EndRender pair. This function will render
a number of instances, each with its own world matrix.
*/
void RenderMeshInstanced(
const MeshHandle &handle, const int instanceCount, const DirectX::XMMATRIX *pWorldMatrices);
/**
End a render pass.
This function will call functions on the context passed to BeginRender().
*/
void EndRender();
/**
Get the buffers for a mesh.
If a parameter is set to null, it won't be written.
*/
void GetBuffersForMesh(const MeshHandle &handle,
ID3D11Buffer **ppVertexBuffer,
int32 *pVertexOffset,
ID3D11Buffer **ppIndexBuffer,
int32 *pIndexOffset) const;
/**
Get info about a mesh.
*/
void GetMeshInfo(const MeshHandle &handle, int32 *pIndexCount) const;
private:
// Disable the copy constructor
GeometryFX_Filter(const GeometryFX_Filter &);
GeometryFX_Filter &operator=(const GeometryFX_Filter &);
struct GeometryFX_OpaqueFilterDesc;
GeometryFX_OpaqueFilterDesc *impl_;
};
} // namespace AMD
#endif // AMD_GEOMETRYFX_FILTERING_H
================================================
FILE: amd_geometryfx/inc/AMD_GeometryFX_Utility.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_UTILITY_H
#define AMD_GEOMETRYFX_UTILITY_H
#include <vector>
#include "AMD_GeometryFX.h"
namespace AMD
{
AMD_GEOMETRYFX_DLL_API GEOMETRYFX_RETURN_CODE GeometryFX_GetVersion(uint* major, uint* minor, uint* patch);
AMD_GEOMETRYFX_DLL_API void GeometryFX_WriteBlobToFile(const char *filename, const size_t size, const void *data);
AMD_GEOMETRYFX_DLL_API std::vector<byte> GeometryFX_ReadBlobFromFile(const char *filename);
} // namespace AMD
#endif // AMD_GEOMETRYFX_UTILITY_H
================================================
FILE: amd_geometryfx/premake/premake5.lua
================================================
_AMD_LIBRARY_NAME = "GeometryFX"
_AMD_LIBRARY_NAME_ALL_CAPS = string.upper(_AMD_LIBRARY_NAME)
-- Set _AMD_LIBRARY_NAME before including amd_premake_util.lua
dofile ("../../premake/amd_premake_util.lua")
workspace ("AMD_" .. _AMD_LIBRARY_NAME)
configurations { "DLL_Debug", "DLL_Release", "Lib_Debug", "Lib_Release", "DLL_Release_MT" }
platforms { "Win32", "x64" }
location "../build"
filename ("AMD_" .. _AMD_LIBRARY_NAME .. _AMD_VS_SUFFIX)
startproject ("AMD_" .. _AMD_LIBRARY_NAME)
filter "platforms:Win32"
system "Windows"
architecture "x86"
filter "platforms:x64"
system "Windows"
architecture "x64"
externalproject "AMD_LIB"
kind "StaticLib"
language "C++"
location "../../amd_lib/shared/d3d11/build"
filename ("AMD_LIB" .. _AMD_VS_SUFFIX)
uuid "0D2AEA47-7909-69E3-8221-F4B9EE7FCF44"
configmap {
["DLL_Debug"] = "Debug",
["DLL_Release"] = "Release",
["Lib_Debug"] = "Debug",
["Lib_Release"] = "Release",
["DLL_Release_MT"] = "Release_MT" }
project ("AMD_" .. _AMD_LIBRARY_NAME)
language "C++"
location "../build"
filename ("AMD_" .. _AMD_LIBRARY_NAME .. _AMD_VS_SUFFIX)
uuid "E05C77A9-1EE7-4F02-AF03-575FB4829AC5"
targetdir "../lib/%{_AMD_LIBRARY_DIR_LAYOUT}"
objdir "../build/%{_AMD_LIBRARY_DIR_LAYOUT}"
warnings "Extra"
exceptionhandling "Off"
rtti "Off"
-- Specify WindowsTargetPlatformVersion here for VS2015
systemversion (_AMD_WIN_SDK_VERSION)
files { "../inc/**.h", "../src/**.h", "../src/**.cpp", "../src/Shaders/**.hlsl" }
includedirs { "../inc", "../../amd_lib/shared/common/inc", "../../amd_lib/shared/d3d11/inc", "../../amd_lib/ags_lib/inc" }
links { "AMD_LIB", "dxguid" }
libdirs { "../../amd_lib/ags_lib/lib" }
filter "configurations:DLL_*"
kind "SharedLib"
defines { "_USRDLL", "AMD_%{_AMD_LIBRARY_NAME_ALL_CAPS}_COMPILE_DYNAMIC_LIB=1", "AMD_DLL_EXPORTS=1" }
-- Copy DLL and import library to the lib directory
postbuildcommands { amdLibPostbuildCommands() }
postbuildmessage "Copying build output to lib directory..."
filter "configurations:Lib_*"
kind "StaticLib"
defines { "_LIB", "AMD_%{_AMD_LIBRARY_NAME_ALL_CAPS}_COMPILE_DYNAMIC_LIB=0" }
filter "configurations:*_Debug"
defines { "WIN32", "_DEBUG", "_WINDOWS", "_WIN32_WINNT=0x0601" }
flags { "FatalWarnings" }
symbols "On"
characterset "Unicode"
-- add "d" to the end of the library name for debug builds
targetsuffix "d"
filter "configurations:*_Release"
defines { "WIN32", "NDEBUG", "_WINDOWS", "_WIN32_WINNT=0x0601" }
flags { "FatalWarnings" }
characterset "Unicode"
optimize "On"
filter "configurations:DLL_Release_MT"
defines { "WIN32", "NDEBUG", "_WINDOWS", "_WIN32_WINNT=0x0601" }
flags { "FatalWarnings" }
characterset "Unicode"
-- link against the static runtime to avoid introducing a dependency
-- on the particular version of Visual Studio used to build the DLLs
flags { "StaticRuntime" }
optimize "On"
filter "action:vs*"
-- specify exception handling model for Visual Studio to avoid
-- "'noexcept' used with no exception handling mode specified"
-- warning in vs2015
buildoptions { "/EHsc" }
filter "platforms:Win32"
targetname "%{_AMD_LIBRARY_PREFIX}%{_AMD_LIBRARY_NAME}_x86"
links { "amd_ags_x86" }
filter "platforms:x64"
targetname "%{_AMD_LIBRARY_PREFIX}%{_AMD_LIBRARY_NAME}_x64"
links { "amd_ags_x64" }
================================================
FILE: amd_geometryfx/src/AMD_GeometryFX_Filtering.cpp
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#include "AMD_GeometryFX_Filtering.h"
#include "Shaders/inc/AMD_GeometryFX_ClearDrawIndirectArgsCS.inc"
#include "Shaders/inc/AMD_GeometryFX_DepthOnlyVS.inc"
#include "Shaders/inc/AMD_GeometryFX_DepthOnlyMultiIndirectVS.inc"
#include "Shaders/inc/AMD_GeometryFX_FilterCS.inc"
// ComPtr
#include <wrl.h>
#include <string>
#include <unordered_map>
#include <vector>
#include <numeric>
#include <algorithm>
#include "GeometryFXMesh.h"
#include "GeometryFXMeshManager.h"
#include "amd_ags.h"
#include "GeometryFXUtility_Internal.h"
#include "AMD_GeometryFX_Internal.h"
#include <d3d11_1.h>
#undef min
#undef max
using namespace DirectX;
using namespace Microsoft::WRL;
namespace AMD
{
using namespace GeometryFX_Internal;
namespace
{
struct FilterContext
{
const GeometryFX_FilterRenderOptions *options;
XMMATRIX view;
XMMATRIX projection;
XMVECTOR eye;
int windowWidth;
int windowHeight;
};
#pragma pack(push, 1)
struct FrameConstantBuffer
{
XMMATRIX view;
XMMATRIX projection;
uint32 cullFlags;
uint32 width, height;
};
struct DrawCallArguments
{
XMMATRIX world;
XMMATRIX worldView;
uint32 meshIndex;
uint32 pad[3];
};
struct IndirectArguments
{
/**
Static function to ensure IndirectArguments remains a POD
*/
static void Init (IndirectArguments &ia)
{
ia.IndexCountPerInstance = 0;
ia.InstanceCount = 1;
ia.StartIndexLocation = 0;
ia.BaseVertexLocation = 0;
ia.StartInstanceLocation = 0;
}
uint32 IndexCountPerInstance;
uint32 InstanceCount;
uint32 StartIndexLocation;
int32 BaseVertexLocation;
uint32 StartInstanceLocation;
};
struct SmallBatchData
{
uint32 meshIndex; // Index into meshConstants
uint32 indexOffset; // Index relative to the meshConstants[meshIndex].indexOffset
uint32 faceCount; // Number of faces in this small batch
uint32 outputIndexOffset; // Offset into the output index buffer
uint32 drawIndex; // Index into the SmallBatchDrawCallTable
uint32 drawBatchStart; // First slot for the current draw call
};
#pragma pack(pop)
struct DrawCommand
{
inline DrawCommand ()
: mesh (nullptr)
, drawCallId (-1)
, firstTriangle (0)
{
}
DrawCallArguments dcb;
GeometryFX_Internal::StaticMesh *mesh;
int drawCallId;
int firstTriangle;
};
/**
One small batch chunk can accept multiple draw requests. Draw requests are
split into small batches of TRIANGLES_PER_SMALL_BATCH each. A draw request always
occupies consecutive slots. A draw request may be split if it does not fit
entirely into this small batch.
The filter then processes all small batches in this chunk in one go, and renders
them by using one indirect draw call per original draw request.
*/
class SmallBatchChunk
{
public:
SmallBatchChunk (ID3D11Device *device, bool emulateMultiDraw, AGSContext* agsContext)
: smallBatchDataBackingStore_ (SmallBatchMergeConstants::BATCH_COUNT)
, drawCallBackingStore_ (SmallBatchMergeConstants::BATCH_COUNT)
, agsContext_ (agsContext)
, currentBatchCount_ (0)
, currentDrawCallCount_ (0)
, faceCount_ (0)
, useMultiIndirectDraw_ (!emulateMultiDraw)
{
CreateFilteredIndexBuffer (device);
CreateSmallBatchDataBuffer (device);
CreateIndirectDrawArgumentsBuffer (device);
CreateDrawCallArgumentsBuffer (device);
CreateInstanceIdBuffer (device);
}
/**
If true is returned, then remainder has been filled and must be
re-submitted. Otherwise, the whole request has been handled by this small
batch.
*/
bool AddRequest (const DrawCommand &request, DrawCommand &remainder,
FilterContext &filterContext)
{
if (currentDrawCallCount_ == SmallBatchMergeConstants::BATCH_COUNT)
{
remainder = request;
return true;
}
assert (request.firstTriangle >= 0);
int firstTriangle = request.firstTriangle;
const int firstCluster = firstTriangle / SmallBatchMergeConstants::BATCH_SIZE;
int currentCluster = firstCluster;
int lastTriangle = firstTriangle;
const int filteredIndexBufferStartOffset =
currentBatchCount_ * SmallBatchMergeConstants::BATCH_SIZE * 3 * sizeof (int);
const int firstBatch = currentBatchCount_;
// We move the eye position into object space, so we don't have to
// transform the cone into world space all the time
// This matrix inversion will happen once every 2^16 triangles on
// average; and saves us transforming the cone every 256 triangles
const auto eye = DirectX::XMVector4Transform (filterContext.eye, XMMatrixInverse (nullptr, request.dcb.world));
// Try to assign batches until we run out of batches or geometry
for (int i = currentBatchCount_; i < SmallBatchMergeConstants::BATCH_COUNT; ++i)
{
lastTriangle = std::min (
firstTriangle + SmallBatchMergeConstants::BATCH_SIZE, request.mesh->faceCount);
assert (currentCluster < static_cast<int>(request.mesh->clusters.size ()));
const auto& clusterInfo = request.mesh->clusters[currentCluster];
++currentCluster;
bool cullCluster = false;
if (((filterContext.options->enabledFilters & GeometryFX_ClusterFilterBackface) != 0) && clusterInfo.valid)
{
const auto testVec = DirectX::XMVector3Normalize (DirectX::XMVectorSubtract (eye, clusterInfo.coneCenter));
// Check if we're inside the cone
if (DirectX::XMVectorGetX (DirectX::XMVector3Dot (testVec, clusterInfo.coneAxis)) > clusterInfo.coneAngleCosine)
{
cullCluster = true;
}
}
if (!cullCluster)
{
auto &smallBatchData = smallBatchDataBackingStore_[currentBatchCount_];
smallBatchData.drawIndex = currentDrawCallCount_;
smallBatchData.faceCount = lastTriangle - firstTriangle;
// Offset relative to the start of the mesh
smallBatchData.indexOffset = firstTriangle * 3 * sizeof (int);
smallBatchData.outputIndexOffset = filteredIndexBufferStartOffset;
smallBatchData.meshIndex = request.dcb.meshIndex;
smallBatchData.drawBatchStart = firstBatch;
faceCount_ += smallBatchData.faceCount;
++currentBatchCount_;
}
firstTriangle += SmallBatchMergeConstants::BATCH_SIZE;
if (lastTriangle == request.mesh->faceCount)
{
break;
}
}
if (filterContext.options->statistics)
{
filterContext.options->statistics->clustersProcessed +=
currentCluster - firstCluster;
filterContext.options->statistics->clustersRendered +=
currentBatchCount_ - firstBatch;
filterContext.options->statistics->clustersCulled +=
filterContext.options->statistics->clustersProcessed - filterContext.options->statistics->clustersRendered;
}
if (currentBatchCount_ > firstBatch)
{
drawCallBackingStore_[currentDrawCallCount_] = request.dcb;
++currentDrawCallCount_;
}
// Check if the draw command fit into this call, if not, create a remainder
if (lastTriangle < request.mesh->faceCount)
{
remainder = request;
assert (lastTriangle >= 0);
remainder.firstTriangle = lastTriangle;
return true;
}
else
{
return false;
}
}
void Render (ID3D11DeviceContext *context, ID3D11ComputeShader *computeClearShader,
ID3D11ComputeShader *filterShader, ID3D11VertexShader *vertexShader,
ID3D11ShaderResourceView *vertexData, ID3D11ShaderResourceView *indexData,
ID3D11ShaderResourceView *meshConstantData, ID3D11Buffer *globalVertexBuffer,
ID3D11Buffer *perFrameConstantBuffer)
{
ClearIndirectArgsBuffer (context, computeClearShader);
UpdateDrawCallAndSmallBatchBuffers (context);
Filter (context, filterShader, vertexData, indexData, meshConstantData,
perFrameConstantBuffer);
context->VSSetShader (vertexShader, nullptr, 0);
context->IASetIndexBuffer (filteredIndexBuffer_.Get (), DXGI_FORMAT_R32_UINT, 0);
context->IASetPrimitiveTopology (D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
ID3D11Buffer *iaVBs[] = { globalVertexBuffer, instanceIdBuffer_.Get () };
UINT vbOffsets[] = { 0, 0 };
UINT vbStrides[] = { sizeof (float) * 3, sizeof (int) };
context->IASetVertexBuffers (0, 2, iaVBs, vbStrides, vbOffsets);
ID3D11ShaderResourceView *srvs[] = { drawCallSRV_.Get () };
context->VSSetShaderResources (3, 1, srvs);
if (agsContext_ && useMultiIndirectDraw_)
{
agsDriverExtensions_MultiDrawIndexedInstancedIndirect (agsContext_,
currentDrawCallCount_,
indirectArgumentsBuffer_.Get (), 0, sizeof (IndirectArguments));
}
else
{
for (int i = 0; i < currentDrawCallCount_; ++i)
{
context->DrawIndexedInstancedIndirect (
indirectArgumentsBuffer_.Get (), sizeof (IndirectArguments) * i);
}
}
context->IASetIndexBuffer (nullptr, DXGI_FORMAT_R32_UINT, 0);
Reset ();
}
int GetFaceCount () const
{
return faceCount_;
}
private:
void Filter (ID3D11DeviceContext *context, ID3D11ComputeShader *filterShader,
ID3D11ShaderResourceView *vertexData, ID3D11ShaderResourceView *indexData,
ID3D11ShaderResourceView *meshConstantData, ID3D11Buffer *perFrameConstantBuffer) const
{
ID3D11ShaderResourceView *csSRVs[] = { vertexData, indexData, meshConstantData, drawCallSRV_.Get (), smallBatchDataSRV_.Get () };
context->CSSetShaderResources (0, 5, csSRVs);
UINT initialCounts[] = { 0, 0 };
ID3D11UnorderedAccessView *csUAVs[] = { filteredIndexUAV_.Get (), indirectArgumentsUAV_.Get () };
context->CSSetUnorderedAccessViews (0, 2, csUAVs, initialCounts);
ID3D11Buffer *csCBs[] = { perFrameConstantBuffer };
context->CSSetConstantBuffers (1, 1, csCBs);
context->CSSetShader (filterShader, nullptr, 0);
context->Dispatch (currentBatchCount_, 1, 1);
csUAVs[0] = nullptr;
csUAVs[1] = nullptr;
context->CSSetUnorderedAccessViews (0, 2, csUAVs, initialCounts);
}
void UpdateDrawCallAndSmallBatchBuffers (ID3D11DeviceContext *context) const
{
D3D11_MAPPED_SUBRESOURCE mapping;
context->Map (smallBatchDataBuffer_.Get (), 0, D3D11_MAP_WRITE_DISCARD, 0, &mapping);
::memcpy (mapping.pData, smallBatchDataBackingStore_.data (),
sizeof (SmallBatchData) * smallBatchDataBackingStore_.size ());
context->Unmap (smallBatchDataBuffer_.Get (), 0);
context->Map (drawCallBuffer_.Get (), 0, D3D11_MAP_WRITE_DISCARD, 0, &mapping);
::memcpy (mapping.pData, drawCallBackingStore_.data (),
sizeof (DrawCallArguments) * drawCallBackingStore_.size ());
context->Unmap (drawCallBuffer_.Get (), 0);
}
void CreateFilteredIndexBuffer (ID3D11Device *device)
{
D3D11_BUFFER_DESC filteredIndexBufferDesc = {};
filteredIndexBufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER | D3D11_BIND_UNORDERED_ACCESS;
filteredIndexBufferDesc.ByteWidth = SmallBatchMergeConstants::BATCH_COUNT *
SmallBatchMergeConstants::BATCH_SIZE *
(sizeof (int) * 3);
filteredIndexBufferDesc.CPUAccessFlags = 0;
filteredIndexBufferDesc.MiscFlags = 0;
filteredIndexBufferDesc.Usage = D3D11_USAGE_DEFAULT;
device->CreateBuffer (&filteredIndexBufferDesc, nullptr, &filteredIndexBuffer_);
SetDebugName (filteredIndexBuffer_.Get (), "[AMD GeometryFX Filtering] Filtered index buffer [%p]", this);
D3D11_UNORDERED_ACCESS_VIEW_DESC fibUav = {};
fibUav.Buffer.FirstElement = 0;
fibUav.Buffer.Flags = 0;
fibUav.Buffer.NumElements =
SmallBatchMergeConstants::BATCH_COUNT * SmallBatchMergeConstants::BATCH_SIZE * 3;
fibUav.Format = DXGI_FORMAT_R32_UINT;
fibUav.ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
device->CreateUnorderedAccessView (filteredIndexBuffer_.Get (), &fibUav, &filteredIndexUAV_);
SetDebugName (filteredIndexUAV_.Get (), "[AMD GeometryFX Filtering] Filtered index buffer UAV [%p]", this);
}
void CreateSmallBatchDataBuffer (ID3D11Device *device)
{
D3D11_BUFFER_DESC smallBatchDataBufferDesc;
smallBatchDataBufferDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
smallBatchDataBufferDesc.ByteWidth =
SmallBatchMergeConstants::BATCH_COUNT * sizeof (SmallBatchData);
smallBatchDataBufferDesc.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED;
smallBatchDataBufferDesc.StructureByteStride = sizeof (SmallBatchData);
smallBatchDataBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
smallBatchDataBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
device->CreateBuffer (&smallBatchDataBufferDesc, nullptr, &smallBatchDataBuffer_);
SetDebugName (smallBatchDataBuffer_.Get (), "[AMD GeometryFX Filtering] Batch data buffer [%p]", this);
D3D11_SHADER_RESOURCE_VIEW_DESC smallBatchDataSRVDesc;
smallBatchDataSRVDesc.Buffer.FirstElement = 0;
smallBatchDataSRVDesc.Buffer.NumElements = SmallBatchMergeConstants::BATCH_COUNT;
smallBatchDataSRVDesc.Format = DXGI_FORMAT_UNKNOWN;
smallBatchDataSRVDesc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
device->CreateShaderResourceView (
smallBatchDataBuffer_.Get (), &smallBatchDataSRVDesc, &smallBatchDataSRV_);
SetDebugName (smallBatchDataSRV_.Get (), "[AMD GeometryFX Filtering] Batch data buffer SRV [%p]", this);
}
void CreateIndirectDrawArgumentsBuffer (ID3D11Device *device)
{
D3D11_BUFFER_DESC indirectArgumentsBufferDesc;
indirectArgumentsBufferDesc.BindFlags = D3D11_BIND_UNORDERED_ACCESS;
indirectArgumentsBufferDesc.MiscFlags = D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS;
indirectArgumentsBufferDesc.ByteWidth =
sizeof (IndirectArguments) * SmallBatchMergeConstants::BATCH_COUNT;
indirectArgumentsBufferDesc.StructureByteStride = sizeof (IndirectArguments);
indirectArgumentsBufferDesc.CPUAccessFlags = 0;
indirectArgumentsBufferDesc.Usage = D3D11_USAGE_DEFAULT;
std::vector<IndirectArguments> indirectArgs (SmallBatchMergeConstants::BATCH_COUNT);
for (int i = 0; i < SmallBatchMergeConstants::BATCH_COUNT; ++i)
{
IndirectArguments::Init (indirectArgs[i]);
}
D3D11_SUBRESOURCE_DATA indirectArgumentsBufferData;
indirectArgumentsBufferData.pSysMem = indirectArgs.data ();
indirectArgumentsBufferData.SysMemPitch =
static_cast<UINT>(sizeof (IndirectArguments) * indirectArgs.size ());
indirectArgumentsBufferData.SysMemSlicePitch = indirectArgumentsBufferData.SysMemPitch;
device->CreateBuffer (
&indirectArgumentsBufferDesc, &indirectArgumentsBufferData, &indirectArgumentsBuffer_);
SetDebugName (indirectArgumentsBuffer_.Get (), "[AMD GeometryFX Filtering] Indirect arguments buffer [%p]", this);
D3D11_UNORDERED_ACCESS_VIEW_DESC indirectArgsUAVDesc = {};
indirectArgsUAVDesc.Buffer.FirstElement = 0;
indirectArgsUAVDesc.Buffer.NumElements = SmallBatchMergeConstants::BATCH_COUNT * 5;
indirectArgsUAVDesc.Format = DXGI_FORMAT_R32_UINT;
indirectArgsUAVDesc.ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
device->CreateUnorderedAccessView (
indirectArgumentsBuffer_.Get (), &indirectArgsUAVDesc, &indirectArgumentsUAV_);
SetDebugName (indirectArgumentsUAV_.Get (), "[AMD GeometryFX Filtering] Indirect arguments buffer UAV [%p]", this);
}
void CreateDrawCallArgumentsBuffer (ID3D11Device *device)
{
D3D11_BUFFER_DESC drawCallBufferDesc;
drawCallBufferDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
drawCallBufferDesc.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED;
drawCallBufferDesc.ByteWidth =
sizeof (DrawCallArguments) * SmallBatchMergeConstants::BATCH_COUNT;
drawCallBufferDesc.StructureByteStride = sizeof (DrawCallArguments);
drawCallBufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
drawCallBufferDesc.Usage = D3D11_USAGE_DYNAMIC;
device->CreateBuffer (&drawCallBufferDesc, nullptr, &drawCallBuffer_);
SetDebugName (drawCallBuffer_.Get (), "[AMD GeometryFX Filtering] Draw arguments buffer [%p]", this);
D3D11_SHADER_RESOURCE_VIEW_DESC drawCallSRVDesc;
drawCallSRVDesc.Buffer.FirstElement = 0;
drawCallSRVDesc.Buffer.NumElements = SmallBatchMergeConstants::BATCH_COUNT;
drawCallSRVDesc.Format = DXGI_FORMAT_UNKNOWN;
drawCallSRVDesc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
device->CreateShaderResourceView (drawCallBuffer_.Get (), &drawCallSRVDesc, &drawCallSRV_);
SetDebugName (drawCallSRV_.Get (), "[AMD GeometryFX Filtering] Draw arguments buffer SRV [%p]", this);
}
/**
The instance ID buffer is our workaround for not having gl_DrawID in D3D.
The buffer simply contains 0, 1, 2, 3 ..., and is bound with a per-instance
rate of 1.
*/
void CreateInstanceIdBuffer (ID3D11Device *device)
{
D3D11_BUFFER_DESC instanceIdBufferDesc = {};
instanceIdBufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
instanceIdBufferDesc.ByteWidth = sizeof (int) * SmallBatchMergeConstants::BATCH_COUNT;
instanceIdBufferDesc.StructureByteStride = sizeof (int);
instanceIdBufferDesc.Usage = D3D11_USAGE_IMMUTABLE;
std::vector<int> ids (SmallBatchMergeConstants::BATCH_COUNT);
std::iota (ids.begin (), ids.end (), 0);
D3D11_SUBRESOURCE_DATA data;
data.pSysMem = ids.data ();
data.SysMemPitch = instanceIdBufferDesc.ByteWidth;
data.SysMemSlicePitch = data.SysMemPitch;
device->CreateBuffer (&instanceIdBufferDesc, &data, &instanceIdBuffer_);
SetDebugName (instanceIdBuffer_.Get (), "[AMD GeometryFX Filtering] Instance ID buffer [%p]", this);
}
void Reset ()
{
currentBatchCount_ = 0;
currentDrawCallCount_ = 0;
faceCount_ = 0;
}
void ClearIndirectArgsBuffer (
ID3D11DeviceContext *context, ID3D11ComputeShader *computeClearShader) const
{
ID3D11UnorderedAccessView *uavViews[] = { indirectArgumentsUAV_.Get () };
UINT initialCounts[] = { 0 };
context->CSSetUnorderedAccessViews (1, 1, uavViews, initialCounts);
context->CSSetShader (computeClearShader, nullptr, 0);
context->Dispatch (currentBatchCount_, 1, 1);
uavViews[0] = nullptr;
context->CSSetUnorderedAccessViews (0, 1, uavViews, initialCounts);
}
ComPtr<ID3D11Buffer> smallBatchDataBuffer_;
ComPtr<ID3D11ShaderResourceView> smallBatchDataSRV_;
ComPtr<ID3D11Buffer> filteredIndexBuffer_;
ComPtr<ID3D11UnorderedAccessView> filteredIndexUAV_;
ComPtr<ID3D11Buffer> indirectArgumentsBuffer_;
ComPtr<ID3D11UnorderedAccessView> indirectArgumentsUAV_;
ComPtr<ID3D11Buffer> drawCallBuffer_;
ComPtr<ID3D11ShaderResourceView> drawCallSRV_;
std::vector<ComPtr<ID3D11Buffer>> drawCallConstantBuffers_;
ComPtr<ID3D11Buffer> drawCallConstantBufferMerged_;
ComPtr<ID3D11Buffer> instanceIdBuffer_;
std::vector<SmallBatchData> smallBatchDataBackingStore_;
std::vector<DrawCallArguments> drawCallBackingStore_;
int currentBatchCount_;
int currentDrawCallCount_;
int faceCount_;
bool useMultiIndirectDraw_;
AGSContext* agsContext_;
};
}
struct GeometryFX_Filter::Handle
{
Handle()
: index(-1)
, mesh(nullptr)
{
}
Handle(int index)
: index(index)
, mesh(nullptr)
{
}
int index;
GeometryFX_Internal::StaticMesh *mesh;
};
struct GeometryFX_Filter::GeometryFX_OpaqueFilterDesc
{
enum SMALL_BATCH_CHUNK
{
SMALL_BATCH_CHUNK_COUNT = 16
};
public:
void *operator new (size_t sz) throw()
{
return _aligned_malloc(sz, 16);
}
void operator delete (void *p) throw()
{
_aligned_free(p);
}
GeometryFX_OpaqueFilterDesc(const GeometryFX_FilterDesc &createInfo)
: device_(createInfo.pDevice)
, maxDrawCallCount_(createInfo.maximumDrawCallCount)
, emulateMultiDrawIndirect_(false)
, currentDrawCall_(0)
, deviceContext_(nullptr)
{
CreateQueries();
CreateConstantBuffers();
CreateShaders();
meshManager_ = GeometryFX_Internal::CreateGlobalMeshManager();
agsContext_ = nullptr;
if (agsInit(&agsContext_, nullptr, nullptr) == AGS_SUCCESS)
{
unsigned int supportedExtensions = 0;
agsDriverExtensions_Init(agsContext_, device_, &supportedExtensions);
if ((supportedExtensions & AGS_EXTENSION_MULTIDRAWINDIRECT) == 0)
{
OutputDebugString(TEXT("AGS initialized but multi draw extension not supported"));
agsDriverExtensions_DeInit(agsContext_);
agsDeInit(agsContext_);
agsContext_ = nullptr;
}
if (createInfo.emulateMultiIndirectDraw)
{
OutputDebugString(TEXT("Multi draw extension supported but ignored"));
emulateMultiDrawIndirect_ = true;
}
}
}
~GeometryFX_OpaqueFilterDesc()
{
if (agsContext_)
{
agsDriverExtensions_DeInit(agsContext_);
agsDeInit(agsContext_);
}
}
std::vector<MeshHandle> RegisterMeshes(
const int meshCount, const int *verticesInMesh, const int *indicesInMesh)
{
handles_.resize(meshCount);
for (int i = 0; i < meshCount; ++i)
{
handles_[i].reset(new Handle(i));
}
meshManager_->Allocate(device_, meshCount, verticesInMesh, indicesInMesh);
for (int i = 0; i < meshCount; ++i)
{
handles_[i]->mesh = meshManager_->GetMesh(i);
}
CreateIndirectDrawArgumentsBuffer(meshCount, indicesInMesh, verticesInMesh);
if (maxDrawCallCount_ == -1)
{
maxDrawCallCount_ = static_cast<int>(meshManager_->GetMeshCount());
}
CreateDrawCallConstantBuffers();
for (int i = 0; i < SMALL_BATCH_CHUNK_COUNT; ++i)
{
smallBatchChunks_.emplace_back(
new SmallBatchChunk(device_, emulateMultiDrawIndirect_, agsContext_));
}
std::vector<MeshHandle> result;
result.reserve(handles_.size());
for (std::vector<std::unique_ptr<Handle>>::iterator it = handles_.begin(),
end = handles_.end();
it != end; ++it)
{
result.push_back(it->get());
}
return result;
}
void SetMeshData(const MeshHandle &handle, const void *vertexData, const void *indexData)
{
ComPtr<ID3D11DeviceContext> deviceContext;
device_->GetImmediateContext(&deviceContext);
meshManager_->SetData(device_, deviceContext.Get(), handle->index, vertexData, indexData);
}
void BeginRender(ID3D11DeviceContext *context, const FilterContext &filterContext)
{
deviceContext_ = context;
filterContext_ = filterContext;
currentDrawCall_ = 0;
if (filterContext.options->statistics)
{
*filterContext.options->statistics = GeometryFX_FilterStatistics();
}
drawCommands_.clear();
frameConstantBufferBackingStore_.view = filterContext.view;
frameConstantBufferBackingStore_.projection = filterContext.projection;
frameConstantBufferBackingStore_.height = filterContext.windowHeight;
frameConstantBufferBackingStore_.width = filterContext.windowWidth;
frameConstantBufferBackingStore_.cullFlags = filterContext.options->enabledFilters;
D3D11_MAPPED_SUBRESOURCE mapping;
context->Map(frameConstantBuffer_.Get(), 0, D3D11_MAP_WRITE_DISCARD, 0, &mapping);
::memcpy(mapping.pData, &frameConstantBufferBackingStore_,
sizeof(frameConstantBufferBackingStore_));
context->Unmap(frameConstantBuffer_.Get(), 0);
context->PSSetShader(nullptr, NULL, 0);
}
void RenderMeshInstanced(
const MeshHandle &handle, const int count, const DirectX::XMMATRIX *worldMatrices)
{
assert(deviceContext_);
for (int i = 0; i < count; ++i)
{
DrawCommand request;
request.mesh = handle->mesh;
request.dcb.world = worldMatrices[i];
request.dcb.worldView = worldMatrices[i] * filterContext_.view;
request.dcb.meshIndex = handle->index;
request.drawCallId = currentDrawCall_;
if (!filterContext_.options->enableFiltering)
{
D3D11_MAPPED_SUBRESOURCE mapping;
deviceContext_->Map(drawCallConstantBuffers_[currentDrawCall_].Get(), 0,
D3D11_MAP_WRITE_DISCARD, 0, &mapping);
::memcpy(mapping.pData, &request.dcb, sizeof(request.dcb));
deviceContext_->Unmap(drawCallConstantBuffers_[currentDrawCall_].Get(), 0);
}
drawCommands_.push_back(request);
++currentDrawCall_;
}
}
void EndRender()
{
// Set this up for all vertex shaders
ID3D11Buffer *constantBuffers[] = { frameConstantBuffer_.Get() };
deviceContext_->VSSetConstantBuffers(1, 1, constantBuffers);
if (filterContext_.options->enableFiltering)
{
RenderGeometryChunked(deviceContext_, filterContext_);
}
else
{
RenderGeometryDefault(deviceContext_, filterContext_);
}
deviceContext_ = nullptr;
}
void GetBuffersForMesh(const MeshHandle &handle, ID3D11Buffer **vertexBuffer,
int32 *vertexOffset, ID3D11Buffer **indexBuffer, int32 *indexOffset) const
{
const auto &mesh = handle->mesh;
if (vertexBuffer)
{
*vertexBuffer = mesh->vertexBuffer.Get();
}
if (vertexOffset)
{
*vertexOffset = mesh->vertexOffset;
}
if (indexBuffer)
{
*indexBuffer = mesh->indexBuffer.Get();
}
if (indexOffset)
{
*indexOffset = mesh->indexOffset;
}
}
void GetMeshInfo(const MeshHandle &handle, int32 *indexCount) const
{
if (indexCount)
{
*indexCount = handle->mesh->indexCount;
}
}
private:
bool emulateMultiDrawIndirect_;
AGSContext* agsContext_;
std::vector<std::unique_ptr<GeometryFX_Filter::Handle>> handles_;
std::unique_ptr<GeometryFX_Internal::IMeshManager> meshManager_;
std::vector<ComPtr<ID3D11Buffer>> drawCallConstantBuffers_;
int currentDrawCall_;
int maxDrawCallCount_;
std::vector<DrawCommand> drawCommands_;
ID3D11DeviceContext *deviceContext_;
FilterContext filterContext_;
ComPtr<ID3D11Query> pipelineQuery_;
ID3D11Device *device_;
FrameConstantBuffer frameConstantBufferBackingStore_;
ComPtr<ID3D11Buffer> frameConstantBuffer_;
ComPtr<ID3D11ComputeShader> filterComputeShader_;
std::vector<std::unique_ptr<SmallBatchChunk>> smallBatchChunks_;
ComPtr<ID3D11ComputeShader> clearDrawIndirectArgumentsComputeShader_;
ComPtr<ID3D11Buffer> indirectArgumentsBuffer_;
ComPtr<ID3D11Buffer> indirectArgumentsBufferPristine_;
ComPtr<ID3D11UnorderedAccessView> indirectArgumentsUAV_;
ComPtr<ID3D11InputLayout> depthOnlyLayout_;
ComPtr<ID3D11VertexShader> depthOnlyVertexShader_;
ComPtr<ID3D11InputLayout> depthOnlyLayoutMID_;
ComPtr<ID3D11VertexShader> depthOnlyVertexShaderMID_;
void CreateShaders()
{
depthOnlyVertexShader_ = ComPtr<ID3D11VertexShader>();
depthOnlyLayout_ = ComPtr<ID3D11InputLayout>();
depthOnlyVertexShaderMID_ = ComPtr<ID3D11VertexShader>();
depthOnlyLayoutMID_ = ComPtr<ID3D11InputLayout>();
filterComputeShader_ = ComPtr<ID3D11ComputeShader>();
clearDrawIndirectArgumentsComputeShader_ = ComPtr<ID3D11ComputeShader>();
static const D3D11_INPUT_ELEMENT_DESC depthOnlyLayout[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }
};
CreateShader(device_, (ID3D11DeviceChild **)depthOnlyVertexShader_.GetAddressOf(),
sizeof(AMD_GeometryFX_DepthOnlyVS), AMD_GeometryFX_DepthOnlyVS, ShaderType::Vertex, &depthOnlyLayout_,
ARRAYSIZE(depthOnlyLayout), depthOnlyLayout);
static const D3D11_INPUT_ELEMENT_DESC depthOnlyLayoutMID[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{ "DRAWID", 0, DXGI_FORMAT_R32_UINT, 1, 0, D3D11_INPUT_PER_INSTANCE_DATA, 1 }
};
CreateShader(device_, (ID3D11DeviceChild **)depthOnlyVertexShaderMID_.GetAddressOf(),
sizeof(AMD_GeometryFX_DepthOnlyMultiIndirectVS), AMD_GeometryFX_DepthOnlyMultiIndirectVS,
ShaderType::Vertex, &depthOnlyLayoutMID_, ARRAYSIZE(depthOnlyLayoutMID),
depthOnlyLayoutMID);
CreateShader(device_,
(ID3D11DeviceChild **)clearDrawIndirectArgumentsComputeShader_.GetAddressOf(),
sizeof(AMD_GeometryFX_ClearDrawIndirectArgsCS), AMD_GeometryFX_ClearDrawIndirectArgsCS,
ShaderType::Compute);
CreateShader(device_, (ID3D11DeviceChild **)filterComputeShader_.GetAddressOf(),
sizeof(AMD_GeometryFX_FilterCS), AMD_GeometryFX_FilterCS, ShaderType::Compute);
}
void CreateIndirectDrawArgumentsBuffer(
const int meshCount, const int *indicesInMesh, const int * /* verticesInMesh */)
{
D3D11_BUFFER_DESC indirectArgsBufferDesc = {};
indirectArgsBufferDesc.BindFlags = D3D11_BIND_UNORDERED_ACCESS;
const int roundedIndirectArgsCount = RoundToNextMultiple(meshCount, 256);
// Round to multiples of 256 so the clear shader doesn't have to test
// bounds
indirectArgsBufferDesc.ByteWidth = sizeof(IndirectArguments) * roundedIndirectArgsCount;
indirectArgsBufferDesc.MiscFlags = D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS;
indirectArgsBufferDesc.Usage = D3D11_USAGE_DEFAULT;
indirectArgsBufferDesc.StructureByteStride = sizeof(IndirectArguments);
std::vector<IndirectArguments> indirectArgs(roundedIndirectArgsCount);
for (int i = 0; i < meshCount; ++i)
{
IndirectArguments::Init(indirectArgs[i]);
indirectArgs[i].IndexCountPerInstance = indicesInMesh[i];
}
D3D11_SUBRESOURCE_DATA indirectArgsData;
indirectArgsData.pSysMem = indirectArgs.data();
indirectArgsData.SysMemPitch =
static_cast<UINT>(indirectArgs.size() * sizeof(IndirectArguments));
indirectArgsData.SysMemSlicePitch = indirectArgsData.SysMemPitch;
device_->CreateBuffer(
&indirectArgsBufferDesc, &indirectArgsData, &indirectArgumentsBuffer_);
device_->CreateBuffer(
&indirectArgsBufferDesc, &indirectArgsData, &indirectArgumentsBufferPristine_);
SetDebugName(indirectArgumentsBuffer_.Get(), "[AMD GeometryFX Filtering] IndirectArgumentBuffer");
SetDebugName(indirectArgumentsBufferPristine_.Get(),
"[AMD GeometryFX Filtering] IndirectArgumentBuffer pristine version");
D3D11_UNORDERED_ACCESS_VIEW_DESC indirectArgsUAVDesc = {};
indirectArgsUAVDesc.Buffer.FirstElement = 0;
indirectArgsUAVDesc.Buffer.NumElements = static_cast<int>(meshCount * 5);
indirectArgsUAVDesc.Format = DXGI_FORMAT_R32_UINT;
indirectArgsUAVDesc.ViewDimension = D3D11_UAV_DIMENSION_BUFFER;
device_->CreateUnorderedAccessView(
indirectArgumentsBuffer_.Get(), &indirectArgsUAVDesc, &indirectArgumentsUAV_);
}
void CreateDrawCallConstantBuffers()
{
drawCallConstantBuffers_.resize(maxDrawCallCount_);
for (int i = 0; i < maxDrawCallCount_; ++i)
{
D3D11_BUFFER_DESC cbDesc;
ZeroMemory(&cbDesc, sizeof(cbDesc));
cbDesc.Usage = D3D11_USAGE_DYNAMIC;
cbDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
cbDesc.ByteWidth = sizeof(DrawCallArguments);
cbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
device_->CreateBuffer(&cbDesc, NULL, &drawCallConstantBuffers_[i]);
SetDebugName(
drawCallConstantBuffers_[i].Get(), "[AMD GeometryFX Filtering] Draw call constant buffer [%d]", i);
}
}
void CreateQueries()
{
D3D11_QUERY_DESC queryDesc;
queryDesc.MiscFlags = 0;
queryDesc.Query = D3D11_QUERY_PIPELINE_STATISTICS;
device_->CreateQuery(&queryDesc, &pipelineQuery_);
}
void CreateConstantBuffers()
{
D3D11_BUFFER_DESC cbDesc;
ZeroMemory(&cbDesc, sizeof(cbDesc));
cbDesc.Usage = D3D11_USAGE_DYNAMIC;
cbDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
cbDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
cbDesc.ByteWidth = sizeof(FrameConstantBuffer);
device_->CreateBuffer(&cbDesc, NULL, &frameConstantBuffer_);
SetDebugName(frameConstantBuffer_.Get(), "[AMD GeometryFX Filtering] PerFrameConstantBuffer");
}
void ClearIndirectArgsBuffer(ID3D11DeviceContext *context) const
{
ID3D11UnorderedAccessView *uavViews[] = { indirectArgumentsUAV_.Get() };
UINT initialCounts[] = { 0 };
context->CSSetUnorderedAccessViews(1, 1, uavViews, initialCounts);
context->CSSetShader(clearDrawIndirectArgumentsComputeShader_.Get(), nullptr, 0);
context->Dispatch(
static_cast<UINT>(RoundToNextMultiple(meshManager_->GetMeshCount(), 256)), 1, 1);
uavViews[0] = nullptr;
context->CSSetUnorderedAccessViews(0, 1, uavViews, initialCounts);
}
void RenderGeometryDefault(ID3D11DeviceContext *context, FilterContext & /* filterContext */) const
{
assert(context);
ComPtr<ID3DUserDefinedAnnotation> annotation;
context->QueryInterface(IID_PPV_ARGS(&annotation)); // QueryInterface can fail with E_NOINTERFACE
context->IASetInputLayout(depthOnlyLayout_.Get());
context->VSSetShader(depthOnlyVertexShader_.Get(), NULL, 0);
context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
if (annotation.Get() != nullptr)
{
annotation->BeginEvent(L"Depth pass");
}
for (std::vector<DrawCommand>::const_iterator it = drawCommands_.begin(),
end = drawCommands_.end();
it != end; ++it)
{
ID3D11Buffer *vertexBuffers[] = { it->mesh->vertexBuffer.Get() };
UINT strides[] = { sizeof(float) * 3 };
UINT offsets[] = { static_cast<UINT>(it->mesh->vertexOffset) };
context->IASetVertexBuffers(0, 1, vertexBuffers, strides, offsets);
context->IASetIndexBuffer(
it->mesh->indexBuffer.Get(), DXGI_FORMAT_R32_UINT, it->mesh->indexOffset);
ID3D11Buffer *constantBuffers[] = { drawCallConstantBuffers_[it->drawCallId].Get() };
context->VSSetConstantBuffers(0, 1, constantBuffers);
context->DrawIndexed(it->mesh->indexCount, 0, 0);
}
if (annotation.Get() != nullptr)
{
annotation->EndEvent();
}
}
void RenderGeometryChunked(ID3D11DeviceContext *context, FilterContext &filterContext) const
{
if (drawCommands_.empty())
{
return;
}
ComPtr<ID3DUserDefinedAnnotation> annotation;
context->QueryInterface(IID_PPV_ARGS(&annotation)); // QueryInterface can fail with E_NOINTERFACE
int currentSmallBatchChunk = 0;
context->IASetInputLayout(depthOnlyLayoutMID_.Get());
ID3D11VertexShader *vertexShader = depthOnlyVertexShaderMID_.Get();
if (annotation.Get() != nullptr)
{
annotation->BeginEvent(L"Depth pass");
}
for (std::vector<DrawCommand>::const_iterator it = drawCommands_.begin(),
end = drawCommands_.end();
it != end; ++it)
{
DrawCommand current = *it;
DrawCommand next;
while (smallBatchChunks_[currentSmallBatchChunk]->AddRequest(current, next, filterContext))
{
const int trianglesInBatch =
smallBatchChunks_[currentSmallBatchChunk]->GetFaceCount();
if (filterContext.options->statistics)
{
filterContext.options->statistics->trianglesProcessed += trianglesInBatch;
context->Begin(pipelineQuery_.Get());
}
// Overflow, submit this batch and continue with next one
smallBatchChunks_[currentSmallBatchChunk]->Render(context,
clearDrawIndirectArgumentsComputeShader_.Get(),
filterComputeShader_.Get(),
vertexShader, meshManager_->GetVertexBufferSRV(),
meshManager_->GetIndexBufferSRV(), meshManager_->GetMeshConstantsBuffer(),
meshManager_->GetVertexBuffer(), frameConstantBuffer_.Get());
if (filterContext.options->statistics)
{
context->End(pipelineQuery_.Get());
D3D11_QUERY_DATA_PIPELINE_STATISTICS stats;
while (context->GetData(pipelineQuery_.Get(), &stats, sizeof(stats), 0) != S_OK)
{
Yield();
}
filterContext.options->statistics->trianglesRendered += stats.IAPrimitives;
filterContext.options->statistics->trianglesCulled +=
(trianglesInBatch - stats.IAPrimitives);
}
current = next;
currentSmallBatchChunk = (currentSmallBatchChunk + 1) % smallBatchChunks_.size();
}
}
const int trianglesInBatch = smallBatchChunks_[currentSmallBatchChunk]->GetFaceCount();
if (filterContext.options->statistics)
{
context->Begin(pipelineQuery_.Get());
filterContext.options->statistics->trianglesProcessed += trianglesInBatch;
}
smallBatchChunks_[currentSmallBatchChunk]->Render(context,
clearDrawIndirectArgumentsComputeShader_.Get(),
filterComputeShader_.Get(),
vertexShader, meshManager_->GetVertexBufferSRV(), meshManager_->GetIndexBufferSRV(),
meshManager_->GetMeshConstantsBuffer(), meshManager_->GetVertexBuffer(),
frameConstantBuffer_.Get());
if (filterContext.options->statistics)
{
context->End(pipelineQuery_.Get());
D3D11_QUERY_DATA_PIPELINE_STATISTICS stats;
while (context->GetData(pipelineQuery_.Get(), &stats, sizeof(stats), 0) != S_OK)
{
Yield();
}
filterContext.options->statistics->trianglesRendered += stats.IAPrimitives;
filterContext.options->statistics->trianglesCulled +=
(trianglesInBatch - stats.IAPrimitives);
}
if (annotation.Get() != nullptr)
{
annotation->EndEvent();
}
}
};
///////////////////////////////////////////////////////////////////////////////
GeometryFX_Filter::GeometryFX_Filter(const GeometryFX_FilterDesc *pDesc)
{
const GeometryFX_FilterDesc desc = pDesc ? *pDesc : GeometryFX_FilterDesc();
impl_ = new GeometryFX_OpaqueFilterDesc(desc);
}
///////////////////////////////////////////////////////////////////////////////
GeometryFX_Filter::~GeometryFX_Filter()
{
delete impl_;
}
///////////////////////////////////////////////////////////////////////////////
std::vector<GeometryFX_Filter::MeshHandle> GeometryFX_Filter::RegisterMeshes(
const int meshCount, const int *verticesInMesh, const int *indicesInMesh)
{
assert(meshCount > 0);
assert(verticesInMesh != nullptr);
assert(indicesInMesh != nullptr);
return impl_->RegisterMeshes(meshCount, verticesInMesh, indicesInMesh);
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::SetMeshData(const GeometryFX_Filter::MeshHandle &handle, const void *vertexData, const void *indexData)
{
assert(vertexData != nullptr);
assert(indexData != nullptr);
impl_->SetMeshData(handle, vertexData, indexData);
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::BeginRender(ID3D11DeviceContext *context, const GeometryFX_FilterRenderOptions &options,
const DirectX::XMMATRIX &view, const DirectX::XMMATRIX &projection, const int windowWidth,
const int windowHeight)
{
assert(context != nullptr);
assert(windowWidth > 0);
assert(windowHeight > 0);
FilterContext filterContext;
filterContext.options = &options;
filterContext.projection = projection;
filterContext.view = view;
filterContext.windowWidth = windowWidth;
filterContext.windowHeight = windowHeight;
const auto inverseView = DirectX::XMMatrixInverse (nullptr, view);
DirectX::XMFLOAT4X4 float4x4;
XMStoreFloat4x4 (&float4x4, inverseView);
filterContext.eye = DirectX::XMVectorSet (float4x4._41, float4x4._42, float4x4._43, 1);
impl_->BeginRender(context, filterContext);
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::RenderMesh(const GeometryFX_Filter::MeshHandle &handle, const DirectX::XMMATRIX &world)
{
RenderMeshInstanced(handle, 1, &world);
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::RenderMeshInstanced(
const GeometryFX_Filter::MeshHandle &handle, const int instanceCount, const DirectX::XMMATRIX *worlds)
{
impl_->RenderMeshInstanced(handle, instanceCount, worlds);
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::EndRender()
{
impl_->EndRender();
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::GetBuffersForMesh(const MeshHandle &handle, ID3D11Buffer **vertexBuffer,
int32 *vertexOffset, ID3D11Buffer **indexBuffer, int32 *indexOffset) const
{
impl_->GetBuffersForMesh(handle, vertexBuffer, vertexOffset, indexBuffer, indexOffset);
}
///////////////////////////////////////////////////////////////////////////////
void GeometryFX_Filter::GetMeshInfo(const MeshHandle &handle, int32 *indexCount) const
{
impl_->GetMeshInfo(handle, indexCount);
}
} // namespace AMD
================================================
FILE: amd_geometryfx/src/AMD_GeometryFX_Internal.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_INTERNAL_H
#define AMD_GEOMETRYFX_INTERNAL_H
namespace AMD
{
namespace GeometryFX_Internal
{
struct SmallBatchMergeConstants
{
// If this changes, the shaders have to be recompiled as well
static const int BATCH_SIZE = 4 * 64; // Should be a multiple of the wavefront size
static const int BATCH_COUNT = 1 * 384;
};
}
}
#endif
================================================
FILE: amd_geometryfx/src/AMD_GeometryFX_Utility.cpp
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#include "AMD_GeometryFX_Utility.h"
#include <cstdio>
#pragma warning(disable : 4996)
namespace AMD
{
////////////////////////////////////////////////////////////////////////////////
GEOMETRYFX_RETURN_CODE GeometryFX_GetVersion(uint* major, uint* minor, uint* patch)
{
if (major == NULL || minor == NULL || patch == NULL)
{
return GEOMETRYFX_RETURN_CODE_INVALID_POINTER;
}
*major = AMD_GEOMETRYFX_VERSION_MAJOR;
*minor = AMD_GEOMETRYFX_VERSION_MINOR;
*patch = AMD_GEOMETRYFX_VERSION_PATCH;
return GEOMETRYFX_RETURN_CODE_SUCCESS;
}
////////////////////////////////////////////////////////////////////////////////
void GeometryFX_WriteBlobToFile(const char *filename, const std::size_t size, const void *data)
{
auto handle = std::fopen(filename, "wb");
std::fwrite(data, size, 1, handle);
std::fclose(handle);
}
////////////////////////////////////////////////////////////////////////////////
std::vector<byte> GeometryFX_ReadBlobFromFile(const char *filename)
{
std::vector<byte> result;
byte buffer[4096];
auto handle = std::fopen(filename, "rb");
for (;;)
{
const auto bytesRead = std::fread(buffer, 1, sizeof(buffer), handle);
result.insert(result.end(), buffer, buffer + bytesRead);
if (bytesRead < sizeof(buffer))
{
break;
}
}
std::fclose(handle);
return result;
}
} // namespace AMD
================================================
FILE: amd_geometryfx/src/GeometryFXMesh.cpp
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#include "GeometryFXMesh.h"
#include <stdio.h>
#include <cassert>
namespace AMD
{
namespace GeometryFX_Internal
{
///////////////////////////////////////////////////////////////////////////////
StaticMesh::StaticMesh(const int vertexCount, const int indexCount, const int meshIndex)
: vertexCount(vertexCount)
, faceCount(indexCount / 3)
, indexCount(indexCount)
, meshIndex(meshIndex)
, indexOffset(0)
, vertexOffset(0)
{
assert(meshIndex >= 0);
}
///////////////////////////////////////////////////////////////////////////////
StaticMesh::~StaticMesh()
{
}
} // namespace GeometryFX_Internal
} // namespace AMD
================================================
FILE: amd_geometryfx/src/GeometryFXMesh.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_MESH_H
#define AMD_GEOMETRYFX_MESH_H
#include <d3d11.h>
#include <wrl.h>
#include <vector>
#include <DirectXMath.h>
namespace AMD
{
namespace GeometryFX_Internal
{
class StaticMesh
{
public:
StaticMesh(const int vertexCount, const int indexCount, const int meshIndex);
virtual ~StaticMesh();
public:
Microsoft::WRL::ComPtr<ID3D11Buffer> vertexBuffer;
Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> vertexBufferSRV;
Microsoft::WRL::ComPtr<ID3D11Buffer> indexBuffer;
Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> indexBufferSRV;
Microsoft::WRL::ComPtr<ID3D11Buffer> meshConstantsBuffer;
int vertexCount;
int faceCount;
int indexCount;
int meshIndex;
int indexOffset;
int vertexOffset;
struct Cluster
{
DirectX::XMVECTOR aabbMin, aabbMax;
DirectX::XMVECTOR coneCenter, coneAxis;
float coneAngleCosine;
bool valid;
};
std::vector<Cluster> clusters;
private:
StaticMesh(const StaticMesh &);
StaticMesh &operator=(const StaticMesh &);
};
} // namespace GeometryFX_Internal
} // namespace AMD
#endif // AMD_GEOMETRYFX_MESH_H
================================================
FILE: amd_geometryfx/src/GeometryFXMeshManager.cpp
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#include "GeometryFXMeshManager.h"
#include "GeometryFXMesh.h"
#include "GeometryFXUtility_Internal.h"
#include "AMD_GeometryFX_Internal.h"
#include <wrl.h>
#include <memory>
#include <vector>
#include <array>
#include <DirectXMath.h>
#define AMD_GEOMETRY_FX_ENABLE_CLUSTER_CENTER_SAFETY_CHECK 1
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
using namespace Microsoft::WRL;
namespace AMD
{
namespace GeometryFX_Internal
{
///////////////////////////////////////////////////////////////////////////////
IMeshManager::IMeshManager()
{
}
///////////////////////////////////////////////////////////////////////////////
IMeshManager::~IMeshManager()
{
}
///////////////////////////////////////////////////////////////////////////////
class MeshManagerBase : public IMeshManager
{
public:
StaticMesh *GetMesh(const int index) const override
{
return meshes_[index].get();
}
int GetMeshCount() const override
{
return static_cast<int>(meshes_.size());
}
ID3D11ShaderResourceView *GetMeshConstantsBuffer() const override
{
return meshConstantsBufferView_.Get();
}
protected:
std::vector<std::unique_ptr<StaticMesh>> meshes_;
ComPtr<ID3D11Buffer> meshConstantsBuffer_;
ComPtr<ID3D11ShaderResourceView> meshConstantsBufferView_;
void CreateMeshConstantsBuffer(ID3D11Device *device)
{
std::vector<MeshConstants> meshConstants(GetMeshCount());
for (int i = 0; i < GetMeshCount(); ++i)
{
meshConstants[i].faceCount = meshes_[i]->faceCount;
meshConstants[i].indexOffset = meshes_[i]->indexOffset;
meshConstants[i].vertexCount = meshes_[i]->vertexCount;
meshConstants[i].vertexOffset = meshes_[i]->vertexOffset;
}
D3D11_BUFFER_DESC bufferDesc = {};
bufferDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
bufferDesc.ByteWidth = static_cast<UINT>(meshConstants.size() * sizeof(MeshConstants));
bufferDesc.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_STRUCTURED;
bufferDesc.StructureByteStride = sizeof(MeshConstants);
bufferDesc.Usage = D3D11_USAGE_IMMUTABLE;
D3D11_SUBRESOURCE_DATA initialData;
initialData.pSysMem = meshConstants.data();
initialData.SysMemPitch = bufferDesc.ByteWidth;
initialData.SysMemSlicePitch = bufferDesc.ByteWidth;
device->CreateBuffer(&bufferDesc, &initialData, &meshConstantsBuffer_);
SetDebugName(meshConstantsBuffer_.Get(), "Mesh constants buffer");
for (std::vector<std::unique_ptr<StaticMesh>>::iterator it = meshes_.begin(),
end = meshes_.end();
it != end; ++it)
{
(*it)->meshConstantsBuffer = meshConstantsBuffer_;
}
D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
srvDesc.Format = DXGI_FORMAT_UNKNOWN;
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
srvDesc.Buffer.ElementOffset = 0;
srvDesc.Buffer.ElementWidth = GetMeshCount();
device->CreateShaderResourceView(
meshConstantsBuffer_.Get(), &srvDesc, &meshConstantsBufferView_);
SetDebugName(meshConstantsBufferView_.Get(), "Mesh constants buffer view");
}
};
///////////////////////////////////////////////////////////////////////////////
// Allocate everything from one large buffer
class MeshManagerGlobal : public MeshManagerBase
{
public:
void Allocate(ID3D11Device *device, const int meshCount, const int *verticesPerMesh,
const int *indicesPerMesh) override
{
int totalVertexCount = 0;
int totalIndexCount = 0;
for (int i = 0; i < meshCount; ++i)
{
totalVertexCount += verticesPerMesh[i];
totalIndexCount += indicesPerMesh[i];
}
CreateVertexBuffer(device, totalVertexCount);
CreateIndexBuffer(device, totalIndexCount);
int indexOffset = 0;
int vertexOffset = 0;
for (int i = 0; i < meshCount; ++i)
{
meshes_.emplace_back(std::unique_ptr<StaticMesh>(
new StaticMesh(verticesPerMesh[i], indicesPerMesh[i], i)));
meshes_[i]->vertexBuffer = vertexBuffer_;
meshes_[i]->vertexBufferSRV = vertexBufferSRV_;
meshes_[i]->indexBuffer = indexBuffer_;
meshes_[i]->indexBufferSRV = indexBufferSRV_;
meshes_[i]->indexOffset = indexOffset;
indexOffset += indicesPerMesh[i] * sizeof(int);
meshes_[i]->vertexOffset = vertexOffset;
vertexOffset += verticesPerMesh[i] * 3 * sizeof(float);
}
CreateMeshConstantsBuffer(device);
}
std::vector<StaticMesh::Cluster> CreateClusters (
const int indexCount,
const void* vertexData,
const void* indexData)
{
const int32_t* indices = static_cast<const int32_t*> (indexData);
const float* vertices = static_cast<const float*> (vertexData);
// 16 KiB stack space
struct Triangle
{
DirectX::XMVECTOR vtx[3];
};
std::array<Triangle, SmallBatchMergeConstants::BATCH_SIZE * 3> triangleCache;
const int triangleCount = indexCount / 3;
const int clusterCount = (triangleCount + SmallBatchMergeConstants::BATCH_SIZE - 1)
/ SmallBatchMergeConstants::BATCH_SIZE;
std::vector<StaticMesh::Cluster> result (clusterCount);
for (int i = 0; i < clusterCount; ++i)
{
const int clusterStart = i * SmallBatchMergeConstants::BATCH_SIZE;
const int clusterEnd = std::min (clusterStart + SmallBatchMergeConstants::BATCH_SIZE,
triangleCount);
const int clusterTriangleCount = clusterEnd - clusterStart;
// Load all triangles into our local cache
for (int triangleIndex = clusterStart; triangleIndex < clusterEnd; ++triangleIndex)
{
triangleCache[triangleIndex - clusterStart].vtx[0] = DirectX::XMVectorSet (
vertices[indices[triangleIndex * 3 + 0] * 3 + 0],
vertices[indices[triangleIndex * 3 + 0] * 3 + 1],
vertices[indices[triangleIndex * 3 + 0] * 3 + 2],
1.0f
);
triangleCache[triangleIndex - clusterStart].vtx[1] = DirectX::XMVectorSet (
vertices[indices[triangleIndex * 3 + 1] * 3 + 0],
vertices[indices[triangleIndex * 3 + 1] * 3 + 1],
vertices[indices[triangleIndex * 3 + 1] * 3 + 2],
1.0f
);
triangleCache[triangleIndex - clusterStart].vtx[2] = DirectX::XMVectorSet (
vertices[indices[triangleIndex * 3 + 2] * 3 + 0],
vertices[indices[triangleIndex * 3 + 2] * 3 + 1],
vertices[indices[triangleIndex * 3 + 2] * 3 + 2],
1.0f
);
}
auto aabbMin = DirectX::XMVectorSplatInfinity ();
auto aabbMax = DirectX::XMVectorNegate (DirectX::XMVectorSplatInfinity ());
auto coneAxis = DirectX::XMVectorZero ();
for (int triangleIndex = 0; triangleIndex < clusterTriangleCount; ++triangleIndex)
{
const auto& triangle = triangleCache[triangleIndex];
for (int j = 0; j < 3; ++j)
{
aabbMin = DirectX::XMVectorMin (aabbMin, triangle.vtx[j]);
aabbMax = DirectX::XMVectorMax (aabbMax, triangle.vtx[j]);
}
const auto triangleNormal = DirectX::XMVector3Normalize (
DirectX::XMVector3Cross (
DirectX::XMVectorSubtract (triangle.vtx[1], triangle.vtx[0]),
DirectX::XMVectorSubtract( triangle.vtx[2], triangle.vtx[0])));
coneAxis = DirectX::XMVectorAdd (coneAxis, DirectX::XMVectorNegate (triangleNormal));
}
// This is the cosine of the cone opening angle - 1 means it's 0,
// we're minimizing this value (at 0, it would mean the cone is 90
// open)
float coneOpening = 1;
bool validCluster = true;
const auto center = DirectX::XMVectorDivide (DirectX::XMVectorAdd (aabbMin, aabbMax),
DirectX::XMVectorSet (2, 2, 2, 2));
coneAxis = DirectX::XMVector3Normalize (coneAxis);
float t = -std::numeric_limits<float>::infinity ();
// We nee a second pass to find the intersection of the line
// center + t * coneAxis with the plane defined by each
// triangle
for (int triangleIndex = 0; triangleIndex < clusterTriangleCount; ++triangleIndex)
{
const auto& triangle = triangleCache[triangleIndex];
// Compute the triangle plane from the three vertices
const auto triangleNormal = DirectX::XMVector3Normalize (
DirectX::XMVector3Cross (
DirectX::XMVectorSubtract (triangle.vtx[1], triangle.vtx[0]),
DirectX::XMVectorSubtract (triangle.vtx[2], triangle.vtx[0])));
const float directionalPart = DirectX::XMVectorGetX (
DirectX::XMVector3Dot (coneAxis, DirectX::XMVectorNegate (triangleNormal)));
if (directionalPart < 0)
{
// No solution for this cluster - at least two triangles
// are facing each other
validCluster = false;
break;
}
// We need to intersect the plane with our cone ray which is
// center + t * coneAxis, and find the max
// t along the cone ray (which points into the empty
// space)
// See: https://en.wikipedia.org/wiki/Line%E2%80%93plane_intersection
const float td = DirectX::XMVectorGetX (DirectX::XMVectorDivide (
DirectX::XMVector3Dot (DirectX::XMVectorSubtract(center, triangle.vtx[0]), triangleNormal),
DirectX::XMVectorSet (-directionalPart, -directionalPart, -directionalPart, -directionalPart)));
t = std::max (t, td);
coneOpening = std::min (coneOpening, directionalPart);
}
result[i].aabbMax = aabbMax;
result[i].aabbMin = aabbMin;
// cos (PI/2 - acos (coneOpening))
result[i].coneAngleCosine = sqrtf (1 - coneOpening * coneOpening);
result[i].coneCenter = DirectX::XMVectorAdd (center,
DirectX::XMVectorMultiply (coneAxis, DirectX::XMVectorSet (t, t, t, t)));
result[i].coneAxis = coneAxis;
#if AMD_GEOMETRY_FX_ENABLE_CLUSTER_CENTER_SAFETY_CHECK
// If distance of coneCenter to the bounding box center is more
// than 16x the bounding box extent, the cluster is also invalid
// This is mostly a safety measure - if triangles are nearly
// parallel to coneAxis, t may become very large and unstable
const float aabbSize = DirectX::XMVectorGetX (DirectX::XMVector3Length (DirectX::XMVectorSubtract (aabbMax, aabbMin)));
const float coneCenterToCenterDistance = DirectX::XMVectorGetX (
DirectX::XMVector3Length (
DirectX::XMVectorSubtract (result[i].coneCenter,
DirectX::XMVectorDivide (
DirectX::XMVectorAdd (aabbMax, aabbMin),
DirectX::XMVectorSet (2, 2, 2, 2))
)));
if (coneCenterToCenterDistance > (16 * aabbSize))
{
validCluster = false;
}
#endif
result[i].valid = validCluster;
}
return result;
}
void SetData(ID3D11Device * /* device */, ID3D11DeviceContext *context, const int meshIndex,
const void *vertexData, const void *indexData) override
{
D3D11_BOX dstBox;
dstBox.left = meshes_[meshIndex]->vertexOffset;
dstBox.right = dstBox.left + meshes_[meshIndex]->vertexCount * 3 * sizeof(float);
dstBox.top = 0;
dstBox.bottom = 1;
dstBox.front = 0;
dstBox.back = 1;
context->UpdateSubresource(vertexBuffer_.Get(), 0, &dstBox, vertexData, 0, 0);
dstBox.left = meshes_[meshIndex]->indexOffset;
dstBox.right = dstBox.left + meshes_[meshIndex]->indexCount * sizeof(int);
context->UpdateSubresource(indexBuffer_.Get(), 0, &dstBox, indexData, 0, 0);
meshes_[meshIndex]->clusters = CreateClusters (meshes_[meshIndex]->indexCount,
vertexData, indexData);
}
private:
void CreateVertexBuffer(ID3D11Device *device, const int vertexCount)
{
D3D11_BUFFER_DESC vbDesc = {};
vbDesc.Usage = D3D11_USAGE_DEFAULT;
vbDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER | D3D11_BIND_SHADER_RESOURCE;
vbDesc.ByteWidth = sizeof(float) * 3 * vertexCount;
vbDesc.StructureByteStride = 0;
vbDesc.MiscFlags = D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS;
device->CreateBuffer(&vbDesc, nullptr, &vertexBuffer_);
SetDebugName(vertexBuffer_.Get(), "Global source vertex buffer");
D3D11_SHADER_RESOURCE_VIEW_DESC vbSrv;
vbSrv.ViewDimension = D3D11_SRV_DIMENSION_BUFFEREX;
vbSrv.BufferEx.FirstElement = 0;
vbSrv.BufferEx.Flags = D3D11_BUFFEREX_SRV_FLAG_RAW;
vbSrv.BufferEx.NumElements = vbDesc.ByteWidth / 4;
vbSrv.Format = DXGI_FORMAT_R32_TYPELESS;
device->CreateShaderResourceView(vertexBuffer_.Get(), &vbSrv, &vertexBufferSRV_);
SetDebugName(vertexBufferSRV_.Get(), "Global source vertex buffer resource view");
}
void CreateIndexBuffer(ID3D11Device *device, const int indexCount)
{
D3D11_BUFFER_DESC ibDesc = {};
ibDesc.Usage = D3D11_USAGE_DEFAULT;
ibDesc.BindFlags = D3D11_BIND_INDEX_BUFFER | D3D11_BIND_SHADER_RESOURCE;
ibDesc.ByteWidth = indexCount * sizeof(int);
ibDesc.StructureByteStride = sizeof(int);
device->CreateBuffer(&ibDesc, nullptr, &indexBuffer_);
SetDebugName(indexBuffer_.Get(), "Global index buffer");
D3D11_SHADER_RESOURCE_VIEW_DESC ibSrv;
ibSrv.Format = DXGI_FORMAT_R32_UINT;
ibSrv.ViewDimension = D3D11_SRV_DIMENSION_BUFFER;
ibSrv.Buffer.ElementOffset = 0;
ibSrv.Buffer.ElementWidth = sizeof(int);
ibSrv.Buffer.FirstElement = 0;
ibSrv.Buffer.NumElements = static_cast<UINT>(indexCount);
device->CreateShaderResourceView(indexBuffer_.Get(), &ibSrv, &indexBufferSRV_);
SetDebugName(indexBufferSRV_.Get(), "Global source index buffer view");
}
public:
ID3D11Buffer *GetIndexBuffer() const
{
return indexBuffer_.Get();
}
ID3D11Buffer *GetVertexBuffer() const
{
return vertexBuffer_.Get();
}
ID3D11ShaderResourceView *GetIndexBufferSRV() const
{
return indexBufferSRV_.Get();
}
ID3D11ShaderResourceView *GetVertexBufferSRV() const
{
return vertexBufferSRV_.Get();
}
private:
ComPtr<ID3D11Buffer> vertexBuffer_;
ComPtr<ID3D11ShaderResourceView> vertexBufferSRV_;
ComPtr<ID3D11Buffer> indexBuffer_;
ComPtr<ID3D11ShaderResourceView> indexBufferSRV_;
};
///////////////////////////////////////////////////////////////////////////////
std::unique_ptr<IMeshManager> CreateGlobalMeshManager()
{
return std::unique_ptr<IMeshManager>(new MeshManagerGlobal());
}
} // namespace GeometryFX_Internal
} // namespace AMD
================================================
FILE: amd_geometryfx/src/GeometryFXMeshManager.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_MESH_MANAGER_H
#define AMD_GEOMETRYFX_MESH_MANAGER_H
#include <d3d11.h>
#include <wrl.h>
#include <memory>
#include "AMD_Types.h"
namespace AMD
{
namespace GeometryFX_Internal
{
class StaticMesh;
#pragma pack(push, 1)
struct MeshConstants
{
uint32 vertexCount;
uint32 faceCount;
uint32 indexOffset;
uint32 vertexOffset;
};
#pragma pack(pop)
class IMeshManager
{
public:
IMeshManager ();
virtual ~IMeshManager();
virtual void Allocate(ID3D11Device *pDevice, const int meshCount, const int *verticesPerMesh,
const int *indicesPerMesh) = 0;
virtual void SetData(ID3D11Device *pDevice, ID3D11DeviceContext *pContext, const int meshIndex,
const void *pVertexData, const void *pIndexData) = 0;
virtual StaticMesh *GetMesh(const int index) const = 0;
virtual int GetMeshCount() const = 0;
virtual ID3D11ShaderResourceView *GetMeshConstantsBuffer() const = 0;
virtual ID3D11Buffer *GetIndexBuffer () const = 0;
virtual ID3D11Buffer *GetVertexBuffer () const = 0;
virtual ID3D11ShaderResourceView *GetIndexBufferSRV () const = 0;
virtual ID3D11ShaderResourceView *GetVertexBufferSRV () const = 0;
private:
IMeshManager(const IMeshManager &);
IMeshManager &operator=(const IMeshManager &);
};
std::unique_ptr<IMeshManager> CreateGlobalMeshManager();
} // namespace GeometryFX_Internal
} // namespace AMD
#endif // AMD_GEOMETRYFX_MESH_MANAGER_H
================================================
FILE: amd_geometryfx/src/GeometryFXUtility_Internal.cpp
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#include "GeometryFXUtility_Internal.h"
namespace AMD
{
namespace GeometryFX_Internal
{
////////////////////////////////////////////////////////////////////////////////
bool CreateShader(ID3D11Device *device, ID3D11DeviceChild **shader, const size_t shaderSize,
const void *shaderSource, ShaderType::Enum shaderType, ID3D11InputLayout **inputLayout,
const int inputElementCount, const D3D11_INPUT_ELEMENT_DESC *inputElements)
{
if (inputLayout)
{
device->CreateInputLayout(
inputElements, inputElementCount, shaderSource, shaderSize, inputLayout);
}
switch (shaderType)
{
case ShaderType::Compute:
device->CreateComputeShader(
shaderSource, shaderSize, nullptr, (ID3D11ComputeShader **)shader);
break;
case ShaderType::Pixel:
device->CreatePixelShader(
shaderSource, shaderSize, nullptr, (ID3D11PixelShader **)shader);
break;
case ShaderType::Vertex:
device->CreateVertexShader(
shaderSource, shaderSize, nullptr, (ID3D11VertexShader **)shader);
break;
case ShaderType::Hull:
device->CreateHullShader(
shaderSource, shaderSize, nullptr, (ID3D11HullShader **)shader);
break;
case ShaderType::Domain:
device->CreateDomainShader(
shaderSource, shaderSize, nullptr, (ID3D11DomainShader **)shader);
break;
case ShaderType::Geometry:
device->CreateGeometryShader(
shaderSource, shaderSize, nullptr, (ID3D11GeometryShader **)shader);
break;
}
return true;
}
} // namespace GeometryFX_Internal
} // namespace AMD
================================================
FILE: amd_geometryfx/src/GeometryFXUtility_Internal.h
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#ifndef AMD_GEOMETRYFX_UTILITY_INTERNAL_H
#define AMD_GEOMETRYFX_UTILITY_INTERNAL_H
#include <d3d11.h>
#include <varargs.h>
#include "AMD_GeometryFX.h"
namespace AMD
{
namespace GeometryFX_Internal
{
template <typename T> T RoundToNextMultiple(T value, T multiple)
{
return ((value + multiple - 1) / multiple) * multiple;
}
template <typename T> void SetDebugName(T pObject, const char *s, ...)
{
char buffer[512] = {};
va_list args;
va_start(args, s);
vsprintf_s(buffer, s, args);
va_end(args);
pObject->SetPrivateData(WKPDID_D3DDebugObjectName,
static_cast<UINT> (::strlen (buffer) - 1), buffer);
}
struct ShaderType
{
enum Enum
{
Vertex,
Domain,
Hull,
Geometry,
Pixel,
Compute
};
};
bool CreateShader(ID3D11Device *device, ID3D11DeviceChild **ppShader, const size_t shaderSize,
const void *shaderSource, ShaderType::Enum shaderType,
ID3D11InputLayout **inputLayout = nullptr, const int inputElementCount = 0,
const D3D11_INPUT_ELEMENT_DESC *inputElements = nullptr);
} // namespace GeometryFX_Internal
} // namespace AMD
#endif // AMD_GEOMETRYFX_UTILITY_INTERNAL_H
================================================
FILE: amd_geometryfx/src/Shaders/AMD_GeometryFX_Filtering.hlsl
================================================
//
// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
cbuffer DrawCallConstantBuffer : register(b0)
{
matrix world : packoffset(c0);
matrix worldView : packoffset(c4);
uint meshIndex : packoffset(c8.x);
}
cbuffer FrameConstantBuffer : register(b1)
{
matrix view : packoffset(c0);
matrix projection : packoffset(c4);
uint cullFlags : packoffset(c8.x);
uint windowWidth : packoffset(c8.y);
uint windowHeight : packoffset(c8.z);
};
struct MeshConstants
{
uint vertexCount;
uint faceCount;
uint indexOffset;
uint vertexOffset;
};
struct Vertex
{
float3 p;
};
struct IndirectArgs
{
uint IndexCountPerInstance;
uint InstanceCount;
uint StartIndexLocation;
int BaseVertexLocation;
uint StartInstanceLocation;
};
struct SmallBatchDrawConstants
{
matrix world;
matrix worldView;
uint meshIndex;
uint padding [3];
};
struct SmallBatchData
{
uint meshIndex;
uint indexOffset;
uint faceCount;
uint outputIndexOffset;
uint drawIndex;
uint drawBatchStart;
};
#define CULL_INDEX_FILTER 0x1
#define CULL_BACKFACE 0x2
#define CULL_FRUSTUM 0x8
#define CULL_SMALL_PRIMITIVES 0x20
#define ENABLE_CULL_INDEX 1
#define ENABLE_CULL_BACKFACE 1
#define ENABLE_CULL_FRUSTUM 1
#define ENABLE_CULL_SMALL_PRIMITIVES 1
RWBuffer<uint> filteredIndices : register(u0);
RWBuffer<uint> indirectArgs : register(u1);
ByteAddressBuffer vertexData : register(t0);
Buffer<uint> indexData : register(t1);
StructuredBuffer<MeshConstants> meshConstants : register(t2);
StructuredBuffer<SmallBatchDrawConstants> drawConstants : register(t3);
StructuredBuffer<SmallBatchData> smallBatchData : register(t4);
float4 DepthOnlyVS(float4 pos : POSITION) : SV_POSITION
{
return mul (projection, mul (worldView, pos));
}
float4 DepthOnlyMultiIndirectVS (float4 pos : POSITION, uint drawId : DRAWID) : SV_POSITION
{
return mul (projection, mul (drawConstants [drawId].worldView, pos));
}
float3 LoadVertex (uint index, uint vertexOffset)
{
return asfloat(vertexData.Load3(vertexOffset + index * 12));
}
bool CullTriangle (uint indices [3], float4 vertices [3])
{
bool cull = false;
#ifdef ENABLE_CULL_INDEX
if (cullFlags & CULL_INDEX_FILTER)
{
if ( indices[0] == indices[1]
|| indices[1] == indices[2]
|| indices[0] == indices[2])
{
cull = true;
}
}
#endif
// Culling in homogenous coordinates
// Read: "Triangle Scan Conversion using 2D Homogeneous Coordinates"
// by Marc Olano, Trey Greer
// http://www.cs.unc.edu/~olano/papers/2dh-tri/2dh-tri.pdf
float3x3 m =
{
vertices[0].xyw, vertices[1].xyw, vertices[2].xyw
};
#if ENABLE_CULL_BACKFACE
if (cullFlags & CULL_BACKFACE)
{
cull = cull || (determinant (m) > 0);
}
#endif
#if ENABLE_CULL_FRUSTUM || ENABLE_CULL_SMALL_PRIMITIVES
int verticesInFrontOfNearPlane = 0;
// Transform vertices[i].xy into normalized 0..1 screen space
for (uint i = 0; i < 3; ++i)
{
vertices[i].xy /= vertices[i].w;
vertices[i].xy /= 2;
vertices[i].xy += float2(0.5, 0.5);
if (vertices[i].w < 0)
{
++verticesInFrontOfNearPlane;
}
}
#endif
#if ENABLE_CULL_SMALL_PRIMITIVES
if (cullFlags & CULL_SMALL_PRIMITIVES)
{
static const uint SUBPIXEL_BITS = 8;
static const uint SUBPIXEL_MASK = 0xFF;
static const uint SUBPIXEL_SAMPLES = 1 << SUBPIXEL_BITS;
/**
Computing this in float-point is not precise enough
We switch to a 23.8 representation here which should match the
HW subpixel resolution.
We use a 8-bit wide guard-band to avoid clipping. If
a triangle is outside the guard-band, it will be ignored.
That is, the actual viewport supported here is 31 bit, one bit is
unused, and the guard band is 1 << 23 bit large (8388608 pixels)
*/
int2 minBB = int2(1 << 30, 1 << 30);
int2 maxBB = int2(-(1 << 30), -(1 << 30));
bool insideGuardBand = true;
for (uint i = 0; i < 3; ++i)
{
float2 screenSpacePositionFP = vertices[i].xy * float2 (windowWidth, windowHeight);
// Check if we would overflow after conversion
if ( screenSpacePositionFP.x < -(1 << 23)
|| screenSpacePositionFP.x > (1 << 23)
|| screenSpacePositionFP.y < -(1 << 23)
|| screenSpacePositionFP.y > (1 << 23))
{
insideGuardBand = false;
}
int2 screenSpacePosition = int2 (screenSpacePositionFP * SUBPIXEL_SAMPLES);
minBB = min (screenSpacePosition, minBB);
maxBB = max (screenSpacePosition, maxBB);
}
if (verticesInFrontOfNearPlane == 0 && insideGuardBand)
{
/**
Test is:
Is the minimum of the bounding box right or above the sample
point and is the width less than the pixel width in samples in
one direction.
This will also cull very long triangles which fall between
multiple samples.
*/
cull = cull
|| (
((minBB.x & SUBPIXEL_MASK) > SUBPIXEL_SAMPLES/2)
&& ((maxBB.x - ((minBB.x & ~SUBPIXEL_MASK) + SUBPIXEL_SAMPLES/2)) < (SUBPIXEL_SAMPLES - 1)))
|| (
((minBB.y & SUBPIXEL_MASK) > SUBPIXEL_SAMPLES/2)
&& ((maxBB.y - ((minBB.y & ~SUBPIXEL_MASK) + SUBPIXEL_SAMPLES/2)) < (SUBPIXEL_SAMPLES - 1)));
}
}
#en
gitextract_n3wnfoc9/
├── .gitattributes
├── .gitignore
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── amd_geometryfx/
│ ├── build/
│ │ ├── AMD_GeometryFX_2015.sln
│ │ ├── AMD_GeometryFX_2015.vcxproj
│ │ ├── AMD_GeometryFX_2015.vcxproj.filters
│ │ ├── AMD_GeometryFX_2017.filters
│ │ ├── AMD_GeometryFX_2017.sln
│ │ ├── AMD_GeometryFX_2017.vcxproj
│ │ └── AMD_GeometryFX_2017.vcxproj.filters
│ ├── inc/
│ │ ├── AMD_GeometryFX.h
│ │ ├── AMD_GeometryFX_Filtering.h
│ │ └── AMD_GeometryFX_Utility.h
│ ├── premake/
│ │ └── premake5.lua
│ └── src/
│ ├── AMD_GeometryFX_Filtering.cpp
│ ├── AMD_GeometryFX_Internal.h
│ ├── AMD_GeometryFX_Utility.cpp
│ ├── GeometryFXMesh.cpp
│ ├── GeometryFXMesh.h
│ ├── GeometryFXMeshManager.cpp
│ ├── GeometryFXMeshManager.h
│ ├── GeometryFXUtility_Internal.cpp
│ ├── GeometryFXUtility_Internal.h
│ └── Shaders/
│ ├── AMD_GeometryFX_Filtering.hlsl
│ ├── build/
│ │ └── fxc_compile_geometryfx_all.bat
│ └── inc/
│ ├── AMD_GeometryFX_ClearDrawIndirectArgsCS.inc
│ ├── AMD_GeometryFX_DepthOnlyMultiIndirectVS.inc
│ ├── AMD_GeometryFX_DepthOnlyVS.inc
│ └── AMD_GeometryFX_FilterCS.inc
├── amd_geometryfx_sample/
│ ├── build/
│ │ ├── GeometryFX_Sample_2015.sln
│ │ ├── GeometryFX_Sample_2015.vcxproj
│ │ ├── GeometryFX_Sample_2015.vcxproj.filters
│ │ ├── GeometryFX_Sample_2017.filters
│ │ ├── GeometryFX_Sample_2017.sln
│ │ ├── GeometryFX_Sample_2017.vcxproj
│ │ └── GeometryFX_Sample_2017.vcxproj.filters
│ ├── media/
│ │ ├── house.mtl
│ │ ├── house.obj
│ │ ├── readme.txt
│ │ └── ui/
│ │ ├── Font.dds
│ │ ├── MIT.txt
│ │ └── dxutcontrols.dds
│ ├── premake/
│ │ └── premake5.lua
│ └── src/
│ ├── GeometryFX_Sample.cpp
│ ├── ResourceFiles/
│ │ ├── GeometryFX_Sample.rc
│ │ ├── dpiaware.manifest
│ │ └── resource.h
│ └── Shaders/
│ └── GeometryFX_Sample.hlsl
├── amd_lib/
│ ├── ags_lib/
│ │ ├── .gitattributes
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── inc/
│ │ │ └── amd_ags.h
│ │ └── lib/
│ │ ├── amd_ags_x64.lib
│ │ └── amd_ags_x86.lib
│ └── shared/
│ ├── .gitattributes
│ ├── .gitignore
│ ├── LICENSE.txt
│ ├── README.md
│ ├── common/
│ │ └── inc/
│ │ └── AMD_Types.h
│ ├── d3d11/
│ │ ├── build/
│ │ │ ├── AMD_LIB_2015.vcxproj
│ │ │ ├── AMD_LIB_2015.vcxproj.filters
│ │ │ ├── AMD_LIB_2017.vcxproj
│ │ │ ├── AMD_LIB_2017.vcxproj.filters
│ │ │ ├── AMD_LIB_Minimal_2015.vcxproj
│ │ │ ├── AMD_LIB_Minimal_2015.vcxproj.filters
│ │ │ ├── AMD_LIB_Minimal_2017.vcxproj
│ │ │ └── AMD_LIB_Minimal_2017.vcxproj.filters
│ │ ├── inc/
│ │ │ └── AMD_LIB.h
│ │ ├── premake/
│ │ │ ├── premake5.lua
│ │ │ └── premake5_minimal.lua
│ │ └── src/
│ │ ├── AMD_Buffer.cpp
│ │ ├── AMD_Buffer.h
│ │ ├── AMD_Common.cpp
│ │ ├── AMD_Common.h
│ │ ├── AMD_FullscreenPass.cpp
│ │ ├── AMD_FullscreenPass.h
│ │ ├── AMD_Rand.cpp
│ │ ├── AMD_Rand.h
│ │ ├── AMD_SaveRestoreState.cpp
│ │ ├── AMD_SaveRestoreState.h
│ │ ├── AMD_Serialize.cpp
│ │ ├── AMD_Serialize.h
│ │ ├── AMD_Texture2D.cpp
│ │ ├── AMD_Texture2D.h
│ │ ├── AMD_UnitCube.cpp
│ │ ├── AMD_UnitCube.h
│ │ ├── DirectXTex/
│ │ │ ├── DDSTextureLoader.cpp
│ │ │ ├── DDSTextureLoader.h
│ │ │ ├── MIT.txt
│ │ │ ├── ReadMe.txt
│ │ │ ├── ScreenGrab.cpp
│ │ │ └── ScreenGrab.h
│ │ └── Shaders/
│ │ ├── AMD_FullscreenPass.hlsl
│ │ ├── AMD_Quaternion.hlsl
│ │ ├── AMD_UnitCube.hlsl
│ │ ├── SeparableFilter/
│ │ │ ├── FilterCommon.hlsl
│ │ │ ├── FilterKernel.hlsl
│ │ │ ├── HorizontalFilter.hlsl
│ │ │ └── VerticalFilter.hlsl
│ │ ├── build/
│ │ │ ├── fxc_compile_fullscreen_pass.bat
│ │ │ └── fxc_compile_unit_cube.bat
│ │ └── inc/
│ │ ├── GS_FULLSCREEN_INDEX_RT.inc
│ │ ├── PS_FULLSCREEN.inc
│ │ ├── PS_UNIT_CUBE.inc
│ │ ├── VS_CLIP_SPACE_CUBE.inc
│ │ ├── VS_FULLSCREEN.inc
│ │ ├── VS_FULLSCREEN_INDEX_RT.inc
│ │ ├── VS_SCREENQUAD.inc
│ │ └── VS_UNIT_CUBE.inc
│ └── d3d12/
│ └── inc/
│ └── d3dx12.h
├── framework/
│ └── d3d11/
│ ├── amd_sdk/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── build/
│ │ │ ├── AMD_SDK_2015.vcxproj
│ │ │ ├── AMD_SDK_2015.vcxproj.filters
│ │ │ ├── AMD_SDK_2017.vcxproj
│ │ │ ├── AMD_SDK_2017.vcxproj.filters
│ │ │ ├── AMD_SDK_Minimal_2015.vcxproj
│ │ │ ├── AMD_SDK_Minimal_2015.vcxproj.filters
│ │ │ ├── AMD_SDK_Minimal_2017.vcxproj
│ │ │ └── AMD_SDK_Minimal_2017.vcxproj.filters
│ │ ├── inc/
│ │ │ ├── AMD_SDK.h
│ │ │ └── ShaderCacheSampleHelper.h
│ │ ├── media/
│ │ │ └── AMD.dds
│ │ ├── premake/
│ │ │ ├── premake5.lua
│ │ │ └── premake5_minimal.lua
│ │ └── src/
│ │ ├── AMD_Mesh.cpp
│ │ ├── AMD_Mesh.h
│ │ ├── Geometry.cpp
│ │ ├── Geometry.h
│ │ ├── HUD.cpp
│ │ ├── HUD.h
│ │ ├── HelperFunctions.cpp
│ │ ├── HelperFunctions.h
│ │ ├── LineRender.cpp
│ │ ├── LineRender.h
│ │ ├── Magnify.cpp
│ │ ├── Magnify.h
│ │ ├── MagnifyTool.cpp
│ │ ├── MagnifyTool.h
│ │ ├── ShaderCache.cpp
│ │ ├── ShaderCache.h
│ │ ├── ShaderCacheSampleHelper.cpp
│ │ ├── Shaders/
│ │ │ ├── Line.hlsl
│ │ │ └── Sprite.hlsl
│ │ ├── Sprite.cpp
│ │ ├── Sprite.h
│ │ ├── Timer.cpp
│ │ ├── Timer.h
│ │ ├── crc.cpp
│ │ └── crc.h
│ └── dxut/
│ ├── .gitattributes
│ ├── .gitignore
│ ├── Core/
│ │ ├── DDSTextureLoader.cpp
│ │ ├── DDSTextureLoader.h
│ │ ├── DXUT.cpp
│ │ ├── DXUT.h
│ │ ├── DXUTDevice11.cpp
│ │ ├── DXUTDevice11.h
│ │ ├── DXUT_2015.vcxproj
│ │ ├── DXUT_2017.vcxproj
│ │ ├── DXUTmisc.cpp
│ │ ├── DXUTmisc.h
│ │ ├── ScreenGrab.cpp
│ │ ├── ScreenGrab.h
│ │ ├── WICTextureLoader.cpp
│ │ ├── WICTextureLoader.h
│ │ ├── dxerr.cpp
│ │ ├── dxerr.h
│ │ └── premake5.lua
│ ├── MIT.txt
│ ├── Optional/
│ │ ├── DXUTLockFreePipe.h
│ │ ├── DXUTOpt_2015.vcxproj
│ │ ├── DXUTOpt_2017.vcxproj
│ │ ├── DXUTcamera.cpp
│ │ ├── DXUTcamera.h
│ │ ├── DXUTgui.cpp
│ │ ├── DXUTgui.h
│ │ ├── DXUTguiIME.cpp
│ │ ├── DXUTguiIME.h
│ │ ├── DXUTres.cpp
│ │ ├── DXUTres.h
│ │ ├── DXUTsettingsdlg.cpp
│ │ ├── DXUTsettingsdlg.h
│ │ ├── ImeUi.cpp
│ │ ├── ImeUi.h
│ │ ├── SDKmesh.cpp
│ │ ├── SDKmesh.h
│ │ ├── SDKmisc.cpp
│ │ ├── SDKmisc.h
│ │ └── premake5.lua
│ └── ReadMe.txt
├── premake/
│ ├── LICENSE.txt
│ ├── amd_premake_util.lua
│ ├── gpuopen_fx_update_vs_files.bat
│ └── gpuopen_geometryfx_update_vs_files.bat
└── third_party/
└── assimp/
├── .gitattributes
├── .gitignore
├── CHANGES
├── CREDITS
├── LICENSE
├── README
├── Readme.md
├── doc/
│ ├── AssimpCmdDoc_Html/
│ │ └── AssimpCmdDoc.chm
│ ├── AssimpDoc_Html/
│ │ └── AssimpDoc.chm
│ └── Preamble.txt
├── include/
│ └── assimp/
│ ├── .editorconfig
│ ├── Compiler/
│ │ ├── poppack1.h
│ │ ├── pstdint.h
│ │ └── pushpack1.h
│ ├── DefaultLogger.hpp
│ ├── Exporter.hpp
│ ├── IOStream.hpp
│ ├── IOSystem.hpp
│ ├── Importer.hpp
│ ├── LogStream.hpp
│ ├── Logger.hpp
│ ├── NullLogger.hpp
│ ├── ProgressHandler.hpp
│ ├── ai_assert.h
│ ├── anim.h
│ ├── camera.h
│ ├── cexport.h
│ ├── cfileio.h
│ ├── cimport.h
│ ├── color4.h
│ ├── color4.inl
│ ├── config.h
│ ├── defs.h
│ ├── importerdesc.h
│ ├── light.h
│ ├── material.h
│ ├── material.inl
│ ├── matrix3x3.h
│ ├── matrix3x3.inl
│ ├── matrix4x4.h
│ ├── matrix4x4.inl
│ ├── mesh.h
│ ├── metadata.h
│ ├── port/
│ │ └── AndroidJNI/
│ │ └── AndroidJNIIOSystem.h
│ ├── postprocess.h
│ ├── quaternion.h
│ ├── quaternion.inl
│ ├── scene.h
│ ├── texture.h
│ ├── types.h
│ ├── vector2.h
│ ├── vector2.inl
│ ├── vector3.h
│ ├── vector3.inl
│ └── version.h
└── lib/
└── assimp_x64_2015.lib
SYMBOL INDEX (1213 symbols across 121 files)
FILE: amd_geometryfx/inc/AMD_GeometryFX.h
function namespace (line 51) | namespace AMD
FILE: amd_geometryfx/inc/AMD_GeometryFX_Filtering.h
type GEOMETRYFX_FILTER (line 38) | enum GEOMETRYFX_FILTER
type GeometryFX_FilterDesc (line 95) | struct GeometryFX_FilterDesc
FILE: amd_geometryfx/inc/AMD_GeometryFX_Utility.h
function namespace (line 30) | namespace AMD
FILE: amd_geometryfx/src/AMD_GeometryFX_Filtering.cpp
type AMD (line 55) | namespace AMD
type FilterContext (line 62) | struct FilterContext
type FrameConstantBuffer (line 73) | struct FrameConstantBuffer
type DrawCallArguments (line 81) | struct DrawCallArguments
type IndirectArguments (line 89) | struct IndirectArguments
method Init (line 94) | static void Init (IndirectArguments &ia)
type SmallBatchData (line 110) | struct SmallBatchData
type DrawCommand (line 121) | struct DrawCommand
method DrawCommand (line 123) | inline DrawCommand ()
class SmallBatchChunk (line 145) | class SmallBatchChunk
method SmallBatchChunk (line 148) | SmallBatchChunk (ID3D11Device *device, bool emulateMultiDraw, AGSCon...
method AddRequest (line 170) | bool AddRequest (const DrawCommand &request, DrawCommand &remainder,
method Render (line 278) | void Render (ID3D11DeviceContext *context, ID3D11ComputeShader *comp...
method GetFaceCount (line 323) | int GetFaceCount () const
method Filter (line 329) | void Filter (ID3D11DeviceContext *context, ID3D11ComputeShader *filt...
method UpdateDrawCallAndSmallBatchBuffers (line 352) | void UpdateDrawCallAndSmallBatchBuffers (ID3D11DeviceContext *contex...
method CreateFilteredIndexBuffer (line 370) | void CreateFilteredIndexBuffer (ID3D11Device *device)
method CreateSmallBatchDataBuffer (line 396) | void CreateSmallBatchDataBuffer (ID3D11Device *device)
method CreateIndirectDrawArgumentsBuffer (line 421) | void CreateIndirectDrawArgumentsBuffer (ID3D11Device *device)
method CreateDrawCallArgumentsBuffer (line 461) | void CreateDrawCallArgumentsBuffer (ID3D11Device *device)
method CreateInstanceIdBuffer (line 490) | void CreateInstanceIdBuffer (ID3D11Device *device)
method Reset (line 510) | void Reset ()
method ClearIndirectArgsBuffer (line 517) | void ClearIndirectArgsBuffer (
type GeometryFX_Filter::Handle (line 557) | struct GeometryFX_Filter::Handle
method Handle (line 559) | Handle()
method Handle (line 565) | Handle(int index)
type GeometryFX_Filter::GeometryFX_OpaqueFilterDesc (line 575) | struct GeometryFX_Filter::GeometryFX_OpaqueFilterDesc
type SMALL_BATCH_CHUNK (line 577) | enum SMALL_BATCH_CHUNK
method GeometryFX_OpaqueFilterDesc (line 593) | GeometryFX_OpaqueFilterDesc(const GeometryFX_FilterDesc &createInfo)
method RegisterMeshes (line 637) | std::vector<MeshHandle> RegisterMeshes(
method SetMeshData (line 679) | void SetMeshData(const MeshHandle &handle, const void *vertexData, c...
method BeginRender (line 687) | void BeginRender(ID3D11DeviceContext *context, const FilterContext &...
method RenderMeshInstanced (line 715) | void RenderMeshInstanced(
method EndRender (line 744) | void EndRender()
method GetBuffersForMesh (line 763) | void GetBuffersForMesh(const MeshHandle &handle, ID3D11Buffer **vert...
method GetMeshInfo (line 789) | void GetMeshInfo(const MeshHandle &handle, int32 *indexCount) const
method CreateShaders (line 834) | void CreateShaders()
method CreateIndirectDrawArgumentsBuffer (line 872) | void CreateIndirectDrawArgumentsBuffer(
method CreateDrawCallConstantBuffers (line 920) | void CreateDrawCallConstantBuffers()
method CreateQueries (line 939) | void CreateQueries()
method CreateConstantBuffers (line 947) | void CreateConstantBuffers()
method ClearIndirectArgsBuffer (line 959) | void ClearIndirectArgsBuffer(ID3D11DeviceContext *context) const
method RenderGeometryDefault (line 973) | void RenderGeometryDefault(ID3D11DeviceContext *context, FilterConte...
method RenderGeometryChunked (line 1009) | void RenderGeometryChunked(ID3D11DeviceContext *context, FilterConte...
FILE: amd_geometryfx/src/AMD_GeometryFX_Internal.h
function namespace (line 25) | namespace AMD
FILE: amd_geometryfx/src/AMD_GeometryFX_Utility.cpp
type AMD (line 29) | namespace AMD
function GEOMETRYFX_RETURN_CODE (line 32) | GEOMETRYFX_RETURN_CODE GeometryFX_GetVersion(uint* major, uint* minor,...
function GeometryFX_WriteBlobToFile (line 47) | void GeometryFX_WriteBlobToFile(const char *filename, const std::size_...
function GeometryFX_ReadBlobFromFile (line 55) | std::vector<byte> GeometryFX_ReadBlobFromFile(const char *filename)
FILE: amd_geometryfx/src/GeometryFXMesh.cpp
type AMD (line 28) | namespace AMD
type GeometryFX_Internal (line 30) | namespace GeometryFX_Internal
FILE: amd_geometryfx/src/GeometryFXMesh.h
function namespace (line 32) | namespace AMD
FILE: amd_geometryfx/src/GeometryFXMeshManager.cpp
type AMD (line 49) | namespace AMD
type GeometryFX_Internal (line 51) | namespace GeometryFX_Internal
class MeshManagerBase (line 64) | class MeshManagerBase : public IMeshManager
method StaticMesh (line 67) | StaticMesh *GetMesh(const int index) const override
method GetMeshCount (line 72) | int GetMeshCount() const override
method ID3D11ShaderResourceView (line 77) | ID3D11ShaderResourceView *GetMeshConstantsBuffer() const override
method CreateMeshConstantsBuffer (line 87) | void CreateMeshConstantsBuffer(ID3D11Device *device)
class MeshManagerGlobal (line 136) | class MeshManagerGlobal : public MeshManagerBase
method Allocate (line 139) | void Allocate(ID3D11Device *device, const int meshCount, const int...
method CreateClusters (line 175) | std::vector<StaticMesh::Cluster> CreateClusters (
method SetData (line 336) | void SetData(ID3D11Device * /* device */, ID3D11DeviceContext *con...
method CreateVertexBuffer (line 357) | void CreateVertexBuffer(ID3D11Device *device, const int vertexCount)
method CreateIndexBuffer (line 380) | void CreateIndexBuffer(ID3D11Device *device, const int indexCount)
method ID3D11Buffer (line 404) | ID3D11Buffer *GetIndexBuffer() const
method ID3D11Buffer (line 409) | ID3D11Buffer *GetVertexBuffer() const
method ID3D11ShaderResourceView (line 414) | ID3D11ShaderResourceView *GetIndexBufferSRV() const
method ID3D11ShaderResourceView (line 419) | ID3D11ShaderResourceView *GetVertexBufferSRV() const
function CreateGlobalMeshManager (line 432) | std::unique_ptr<IMeshManager> CreateGlobalMeshManager()
FILE: amd_geometryfx/src/GeometryFXMeshManager.h
function namespace (line 33) | namespace GeometryFX_Internal
FILE: amd_geometryfx/src/GeometryFXUtility_Internal.cpp
type AMD (line 25) | namespace AMD
type GeometryFX_Internal (line 27) | namespace GeometryFX_Internal
function CreateShader (line 31) | bool CreateShader(ID3D11Device *device, ID3D11DeviceChild **shader, ...
FILE: amd_geometryfx/src/GeometryFXUtility_Internal.h
function namespace (line 32) | namespace AMD
FILE: amd_geometryfx_sample/src/GeometryFX_Sample.cpp
type AMD (line 65) | namespace AMD
type ShaderType (line 67) | struct ShaderType
type Enum (line 69) | enum Enum
function WideToUTF8String (line 81) | std::string WideToUTF8String(const std::wstring &wstr)
type DefaultHandler (line 89) | struct DefaultHandler
type DefaultHandler<float> (line 91) | struct DefaultHandler<float>
method Function (line 93) | static float Function(const std::string &s)
type DefaultHandler<int> (line 99) | struct DefaultHandler<int>
method Function (line 101) | static int Function(const std::string &s)
type DefaultHandler<AMD::uint32> (line 107) | struct DefaultHandler<AMD::uint32>
method Function (line 109) | static AMD::uint32 Function(const std::string &s)
type DefaultHandler<bool> (line 115) | struct DefaultHandler<bool>
method Function (line 117) | static bool Function(const std::string &s)
type DefaultHandler<std::string> (line 123) | struct DefaultHandler<std::string>
function HandleOption (line 132) | bool HandleOption(
function HandleOption (line 147) | bool HandleOption(const std::map<std::string, std::string> &options, con...
function TestFlag (line 155) | bool TestFlag(const U m, T i)
function U (line 160) | U SetOrClearFlag(U &m, const T i, const bool set)
type RenderMode (line 188) | struct RenderMode
type Enum (line 190) | enum Enum
type ResolutionDependentResources (line 197) | struct ResolutionDependentResources
method Create (line 203) | void Create(ID3D11Device *device, int width, int height, int sampleCount)
method Destroy (line 209) | void Destroy()
type FullscreenConstantBuffer (line 217) | struct FullscreenConstantBuffer
function CompileShader (line 225) | void CompileShader(ID3D11Device *device, ID3D11DeviceChild **ppShader, c...
function GenerateGeometryChunk (line 302) | void GenerateGeometryChunk(
function CreateGeometry (line 364) | std::vector<AMD::GeometryFX_Filter::MeshHandle> CreateGeometry(
function LoadGeometry (line 396) | std::vector<AMD::GeometryFX_Filter::MeshHandle> LoadGeometry(
class Application (line 453) | class Application
method Application (line 456) | Application()
method GetMeshCount (line 502) | int GetMeshCount() const
method Setup (line 523) | void Setup(const std::map<std::string, std::string> &options)
type CameraBlob (line 566) | struct CameraBlob
method StoreViewProjection (line 572) | void StoreViewProjection(const CBaseCamera &camera) const
method LoadViewProjection (line 583) | void LoadViewProjection(CBaseCamera &camera)
method Create (line 592) | void Create(ID3D11Device *device)
method CreateShaders (line 623) | void CreateShaders()
method Blit (line 633) | void Blit(ID3D11DeviceContext *context, ID3D11RenderTargetView *target)
method OnFrameRender (line 666) | void OnFrameRender(ID3D11DeviceContext *context, const CBaseCamera &ca...
method OnFrameEnd (line 746) | void OnFrameEnd()
method OnFrameBegin (line 775) | void OnFrameBegin(ID3D11DeviceContext *context, const CBaseCamera &cam...
method Destroy (line 796) | void Destroy()
method CreateResolutionDependentResources (line 806) | void CreateResolutionDependentResources(
method DestroyResolutionDependentResources (line 825) | void DestroyResolutionDependentResources()
type GEOMETRYFX_SAMPLE_IDC (line 849) | enum GEOMETRYFX_SAMPLE_IDC
function ParseCommandLine (line 900) | std::map<std::string, std::string> ParseCommandLine(int argc, wchar_t *a...
function wWinMain (line 950) | int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR...
function InitApp (line 1002) | void InitApp()
function RenderText (line 1071) | void RenderText()
function IsD3D11DeviceAcceptable (line 1123) | bool CALLBACK IsD3D11DeviceAcceptable(const CD3D11EnumAdapterInfo *Adapt...
function HRESULT (line 1133) | HRESULT CALLBACK OnD3D11CreateDevice(
function HRESULT (line 1175) | HRESULT CALLBACK OnD3D11ResizedSwapChain(ID3D11Device *pd3dDevice, IDXGI...
function OnD3D11FrameRender (line 1228) | void CALLBACK OnD3D11FrameRender(ID3D11Device *pd3dDevice,
function OnD3D11ReleasingSwapChain (line 1281) | void CALLBACK OnD3D11ReleasingSwapChain(void *pUserContext)
function OnD3D11DestroyDevice (line 1293) | void CALLBACK OnD3D11DestroyDevice(void *pUserContext)
function ModifyDeviceSettings (line 1314) | bool CALLBACK ModifyDeviceSettings(DXUTDeviceSettings *pDeviceSettings, ...
function OnFrameMove (line 1348) | void CALLBACK OnFrameMove(double fTime, float fElapsedTime, void *pUserC...
function LRESULT (line 1357) | LRESULT CALLBACK MsgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPa...
function OnKeyboard (line 1392) | void CALLBACK OnKeyboard(UINT nChar, bool bKeyDown, bool bAltDown, void ...
function OnGUIEvent (line 1420) | void CALLBACK OnGUIEvent(UINT nEvent, int nControlID, CDXUTControl *pCon...
FILE: amd_lib/ags_lib/inc/amd_ags.h
type ID3D11Device (line 37) | struct ID3D11Device
type ID3D11Resource (line 38) | struct ID3D11Resource
type ID3D11Buffer (line 39) | struct ID3D11Buffer
type ID3D11Texture1D (line 40) | struct ID3D11Texture1D
type ID3D11Texture2D (line 41) | struct ID3D11Texture2D
type ID3D11Texture3D (line 42) | struct ID3D11Texture3D
type D3D11_BUFFER_DESC (line 43) | struct D3D11_BUFFER_DESC
type D3D11_TEXTURE1D_DESC (line 44) | struct D3D11_TEXTURE1D_DESC
type D3D11_TEXTURE2D_DESC (line 45) | struct D3D11_TEXTURE2D_DESC
type D3D11_TEXTURE3D_DESC (line 46) | struct D3D11_TEXTURE3D_DESC
type D3D11_SUBRESOURCE_DATA (line 47) | struct D3D11_SUBRESOURCE_DATA
type tagRECT (line 48) | struct tagRECT
type tagRECT (line 49) | typedef tagRECT D3D11_RECT;
type AGSReturnCode (line 52) | enum AGSReturnCode
type AGSDriverExtension (line 63) | enum AGSDriverExtension
type AGSPrimitiveTopology (line 74) | enum AGSPrimitiveTopology
type AGSCrossfireMode (line 80) | enum AGSCrossfireMode
type AGSAfrTransferType (line 87) | enum AGSAfrTransferType
type AGSContext (line 99) | struct AGSContext
type AGSRect (line 101) | struct AGSRect
type AGSEyefinityInfo (line 109) | struct AGSEyefinityInfo
type AGSDisplayInfo (line 130) | struct AGSDisplayInfo
type AGSConfiguration (line 165) | struct AGSConfiguration
type AGSGPUInfo (line 170) | struct AGSGPUInfo
type D3D_PRIMITIVE_TOPOLOGY (line 314) | enum D3D_PRIMITIVE_TOPOLOGY
FILE: amd_lib/shared/common/inc/AMD_Types.h
function namespace (line 26) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_Buffer.cpp
type AMD (line 25) | namespace AMD
function HRESULT (line 49) | HRESULT Buffer::CreateBuffer(ID3D11Device * device,
FILE: amd_lib/shared/d3d11/src/AMD_Buffer.h
function namespace (line 29) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_Common.cpp
type AMD (line 32) | namespace AMD
function outputDebugString (line 34) | void outputDebugString(const char * format, ...)
FILE: amd_lib/shared/d3d11/src/AMD_Common.h
function namespace (line 26) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_FullscreenPass.cpp
type AMD (line 36) | namespace AMD
function HRESULT (line 38) | HRESULT CreateFullscreenPass(ID3D11VertexShader** ppVS, ID3D11Device* ...
function HRESULT (line 48) | HRESULT CreateScreenQuadPass(ID3D11VertexShader** ppVS, ID3D11Device* ...
function HRESULT (line 58) | HRESULT CreateFullscreenPass(ID3D11PixelShader** ppPS, ID3D11Device* p...
function HRESULT (line 68) | HRESULT RenderFullscreenPass(
function HRESULT (line 97) | HRESULT RenderFullscreenInstancedPass(
function HRESULT (line 173) | HRESULT RenderFullscreenAlignedQuads(
FILE: amd_lib/shared/d3d11/src/AMD_FullscreenPass.h
function namespace (line 28) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_Rand.cpp
type AMD (line 28) | namespace AMD
function noise (line 30) | float noise(uint x)
function random_float (line 36) | float random_float(uint seed, float a, float b)
FILE: amd_lib/shared/d3d11/src/AMD_Rand.h
function namespace (line 28) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_SaveRestoreState.cpp
type AMD (line 25) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_SaveRestoreState.h
function namespace (line 28) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_Serialize.cpp
type AMD (line 31) | namespace AMD
function serialize_string (line 40) | void serialize_string(FILE * file, char * name)
function serialize_float (line 45) | void serialize_float(FILE * file, const char * name, float * v)
function serialize_float2 (line 51) | void serialize_float2(FILE * file, const char * name, float * v)
function serialize_float3 (line 57) | void serialize_float3(FILE * file, const char * name, float * v)
function serialize_float4 (line 63) | void serialize_float4(FILE * file, const char * name, float * v)
function serialize_float4x4 (line 69) | void serialize_float4x4(FILE * file, const char * name, float * v)
function serialize_uint (line 82) | void serialize_uint(FILE * file, const char * name, uint32 * v)
function serialize_uint2 (line 87) | void serialize_uint2(FILE * file, const char * name, uint32 * v)
function serialize_uint3 (line 92) | void serialize_uint3(FILE * file, const char * name, uint32 * v)
function serialize_uint4 (line 97) | void serialize_uint4(FILE * file, const char * name, uint32 * v)
function deserialize_string (line 102) | void deserialize_string(FILE * file, char * name)
function deserialize_float (line 107) | void deserialize_float(FILE * file, char * name, float * v, bool use_f...
function deserialize_float2 (line 122) | void deserialize_float2(FILE * file, char * name, float * v, bool use_...
function deserialize_float3 (line 137) | void deserialize_float3(FILE * file, char * name, float * v, bool use_...
function deserialize_float4 (line 152) | void deserialize_float4(FILE * file, char * name, float * v, bool use_...
function deserialize_float4x4 (line 167) | void deserialize_float4x4(FILE * file, char * name, float * v, bool us...
function deserialize_uint (line 175) | void deserialize_uint(FILE * file, char * name, uint32 * v)
function deserialize_uint2 (line 180) | void deserialize_uint2(FILE * file, char * name, uint32 * v)
function deserialize_uint3 (line 185) | void deserialize_uint3(FILE * file, char * name, uint32 * v)
function deserialize_uint4 (line 190) | void deserialize_uint4(FILE * file, char * name, uint32 * v)
FILE: amd_lib/shared/d3d11/src/AMD_Serialize.h
type _iobuf (line 29) | struct _iobuf
type FILE (line 30) | typedef struct _iobuf FILE;
function namespace (line 32) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_Texture2D.cpp
type AMD (line 33) | namespace AMD
function HRESULT (line 84) | HRESULT Texture2D::CreateSurface(ID3D11Device * pDevice,
FILE: amd_lib/shared/d3d11/src/AMD_Texture2D.h
type AGSContext (line 29) | struct AGSContext
function namespace (line 31) | namespace AMD
FILE: amd_lib/shared/d3d11/src/AMD_UnitCube.cpp
type AMD (line 31) | namespace AMD
function HRESULT (line 33) | HRESULT CreateUnitCube(ID3D11VertexShader ** ppVS, ID3D11Device *pDevice)
function HRESULT (line 45) | HRESULT CreateClipSpaceCube(ID3D11VertexShader** ppVS, ID3D11Device* p...
function HRESULT (line 57) | HRESULT CreateUnitCube(ID3D11PixelShader** ppPS, ID3D11Device* pDevice)
function HRESULT (line 68) | HRESULT RenderUnitCube(ID3D11DeviceContext* pd3dContext,
FILE: amd_lib/shared/d3d11/src/AMD_UnitCube.h
function namespace (line 28) | namespace AMD
FILE: amd_lib/shared/d3d11/src/DirectXTex/DDSTextureLoader.cpp
type DDS_PIXELFORMAT (line 51) | struct DDS_PIXELFORMAT
type DDS_MISC_FLAGS2 (line 87) | enum DDS_MISC_FLAGS2
type DDS_HEADER (line 92) | struct DDS_HEADER
type DDS_HEADER_DXT10 (line 110) | struct DDS_HEADER_DXT10
type handle_closer (line 125) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
function HANDLE (line 129) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
function SetDebugObjectName (line 132) | inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ co...
function HRESULT (line 145) | static HRESULT LoadTextureDataFromFile( _In_z_ const wchar_t* fileName,
function BitsPerPixel (line 273) | static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
function GetSurfaceInfo (line 423) | static void GetSurfaceInfo( _In_ size_t width,
function DXGI_FORMAT (line 555) | static DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf )
function DXGI_FORMAT (line 791) | static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format )
function HRESULT (line 823) | static HRESULT FillInitData( _In_ size_t width,
function HRESULT (line 921) | static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice,
function HRESULT (line 1163) | static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice,
function DDS_ALPHA_MODE (line 1514) | static DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header )
function _Use_decl_annotations_ (line 1543) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1557) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1572) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1591) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1687) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1700) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1714) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1732) | _Use_decl_annotations_
FILE: amd_lib/shared/d3d11/src/DirectXTex/DDSTextureLoader.h
function namespace (line 44) | namespace DirectX
FILE: amd_lib/shared/d3d11/src/DirectXTex/ScreenGrab.cpp
type DDS_PIXELFORMAT (line 68) | struct DDS_PIXELFORMAT
type handle_closer (line 206) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
function HANDLE (line 210) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
function BitsPerPixel (line 216) | static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
function IsCompressed (line 366) | static bool IsCompressed( _In_ DXGI_FORMAT fmt )
function GetSurfaceInfo (line 402) | static void GetSurfaceInfo( _In_ size_t width,
function DXGI_FORMAT (line 532) | static DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt )
function HRESULT (line 562) | static HRESULT CaptureTexture( _In_ ID3D11DeviceContext* pContext,
function IWICImagingFactory (line 664) | static IWICImagingFactory* _GetWIC()
function HRESULT (line 723) | HRESULT DirectX::SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext,
function HRESULT (line 881) | HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext,
FILE: amd_lib/shared/d3d11/src/DirectXTex/ScreenGrab.h
function namespace (line 37) | namespace DirectX
FILE: amd_lib/shared/d3d12/inc/d3dx12.h
type CD3DX12_DEFAULT (line 19) | struct CD3DX12_DEFAULT {}
function D3D12_RECT (line 34) | struct CD3DX12_RECT : public D3D12_RECT
function D3D12_BOX (line 57) | struct CD3DX12_BOX : public D3D12_BOX
function D3D12_DEPTH_STENCIL_DESC (line 115) | struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC
function D3D12_BLEND_DESC (line 171) | struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC
function D3D12_RASTERIZER_DESC (line 198) | struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC
function D3D12_RESOURCE_ALLOCATION_INFO (line 249) | struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATI...
type CD3DX12_HEAP_PROPERTIES (line 267) | struct CD3DX12_HEAP_PROPERTIES
function explicit (line 271) | explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) :
type CD3DX12_HEAP_DESC (line 315) | struct CD3DX12_HEAP_DESC
function explicit (line 319) | explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) :
type CD3DX12_CLEAR_VALUE (line 402) | struct CD3DX12_CLEAR_VALUE
function explicit (line 406) | explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) :
type CD3DX12_RANGE (line 430) | struct CD3DX12_RANGE
function explicit (line 434) | explicit CD3DX12_RANGE(const D3D12_RANGE &o) :
type CD3DX12_TILED_RESOURCE_COORDINATE (line 472) | struct CD3DX12_TILED_RESOURCE_COORDINATE
function explicit (line 476) | explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_CO...
function D3D12_TILE_REGION_SIZE (line 494) | struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE
type CD3DX12_SUBRESOURCE_TILING (line 518) | struct CD3DX12_SUBRESOURCE_TILING
function explicit (line 522) | explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) :
function D3D12_TILE_SHAPE (line 540) | struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE
type CD3DX12_RESOURCE_BARRIER (line 560) | struct CD3DX12_RESOURCE_BARRIER
function explicit (line 564) | explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) :
function CD3DX12_RESOURCE_BARRIER (line 567) | static inline CD3DX12_RESOURCE_BARRIER Transition(
function CD3DX12_RESOURCE_BARRIER (line 585) | static inline CD3DX12_RESOURCE_BARRIER Aliasing(
function CD3DX12_RESOURCE_BARRIER (line 597) | static inline CD3DX12_RESOURCE_BARRIER UAV(
type CD3DX12_PACKED_MIP_INFO (line 611) | struct CD3DX12_PACKED_MIP_INFO
function explicit (line 615) | explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) :
function explicit (line 637) | explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT...
function explicit (line 653) | explicit CD3DX12_SUBRESOURCE_FOOTPRINT(
type CD3DX12_TEXTURE_COPY_LOCATION (line 667) | struct CD3DX12_TEXTURE_COPY_LOCATION
function explicit (line 671) | explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION...
function D3D12_DESCRIPTOR_RANGE (line 690) | struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE
function D3D12_ROOT_DESCRIPTOR_TABLE (line 736) | struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE
function Init (line 749) | inline void Init(
function Init (line 756) | static inline void Init(
function D3D12_ROOT_CONSTANTS (line 767) | struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS
function D3D12_ROOT_DESCRIPTOR (line 802) | struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR
function D3D12_ROOT_PARAMETER (line 830) | struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER
function InitAsDescriptorTable (line 893) | inline void InitAsDescriptorTable(
function D3D12_STATIC_SAMPLER_DESC (line 936) | struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC
function D3D12_ROOT_SIGNATURE_DESC (line 1038) | struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC
function CD3DX12_ROOT_SIGNATURE_DESC (line 1053) | CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT)
function D3D12_CPU_DESCRIPTOR_HANDLE (line 1085) | struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE
function D3D12_GPU_DESCRIPTOR_HANDLE (line 1146) | struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE
function UINT (line 1207) | inline UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT P...
function D3D12DecomposeSubresource (line 1214) | void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT A...
function UINT8 (line 1222) | inline UINT8 D3D12GetFormatPlaneCount(
function D3D12_RESOURCE_DESC (line 1236) | struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC
function CD3DX12_RESOURCE_DESC (line 1268) | static inline CD3DX12_RESOURCE_DESC Buffer(
function UINT8 (line 1327) | inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const
function UINT (line 1329) | inline UINT Subresources(_In_ ID3D12Device* pDevice) const
function UINT (line 1331) | inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSl...
function D3D12IsLayoutOpaque (line 1515) | inline bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout )
function ID3D12CommandList (line 1519) | inline ID3D12CommandList * const * CommandListCast(ID3D12GraphicsCommand...
FILE: framework/d3d11/amd_sdk/inc/AMD_SDK.h
function AMDProfileEventClass (line 66) | struct AMDProfileEventClass
FILE: framework/d3d11/amd_sdk/inc/ShaderCacheSampleHelper.h
type HRESULT (line 34) | typedef long HRESULT;
type UINT (line 35) | typedef unsigned int UINT;
function namespace (line 37) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/AMD_Mesh.cpp
type AMD (line 40) | namespace AMD
function HRESULT (line 55) | HRESULT Mesh::Create(ID3D11Device * pDevice, const char * path, const ...
function HRESULT (line 203) | HRESULT Mesh::Render(ID3D11DeviceContext * pContext)
function HRESULT (line 234) | HRESULT Mesh::Release()
function ID3D11ShaderResourceView (line 264) | ID3D11ShaderResourceView ** Mesh::srv()
FILE: framework/d3d11/amd_sdk/src/AMD_Mesh.h
function class (line 42) | class Mesh
FILE: framework/d3d11/amd_sdk/src/Geometry.cpp
function NormalizePlane (line 36) | static void NormalizePlane( XMFLOAT4* pPlaneEquation )
function ExtractPlanesFromFrustum (line 54) | void ExtractPlanesFromFrustum( XMFLOAT4* pPlaneEquation, const XMMATRIX*...
FILE: framework/d3d11/amd_sdk/src/Geometry.h
function namespace (line 31) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/HUD.cpp
function HRESULT (line 62) | HRESULT HUD::OnCreateDevice( ID3D11Device* pd3dDevice )
FILE: framework/d3d11/amd_sdk/src/HUD.h
function namespace (line 33) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/HelperFunctions.cpp
function HRESULT (line 45) | HRESULT AMD::CreateSurface( ID3D11Texture2D** ppTexture, ID3D11ShaderRes...
function HRESULT (line 126) | HRESULT AMD::CreateDepthStencilSurface( ID3D11Texture2D** ppDepthStencil...
function ID3D11Buffer (line 354) | ID3D11Buffer* AMD::CreateAndCopyToDebugBuf( ID3D11Device* pDevice, ID3D1...
function HRESULT (line 377) | HRESULT AMD::CompileShaderFromFile( WCHAR* szFileName, LPCSTR szEntryPoint,
type Position (line 578) | struct Position
type Vertex (line 609) | struct Vertex
FILE: framework/d3d11/amd_sdk/src/HelperFunctions.h
function namespace (line 31) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/LineRender.h
function namespace (line 32) | namespace DirectX
function namespace (line 37) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/Magnify.cpp
function HRESULT (line 81) | HRESULT Magnify::OnCreateDevice( ID3D11Device* pd3dDevice )
FILE: framework/d3d11/amd_sdk/src/Magnify.h
function namespace (line 34) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/MagnifyTool.cpp
function HRESULT (line 120) | HRESULT MagnifyTool::OnCreateDevice( ID3D11Device* pd3dDevice )
FILE: framework/d3d11/amd_sdk/src/MagnifyTool.h
function namespace (line 34) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/ShaderCache.cpp
function DWORD (line 927) | DWORD WINAPI GenerateShaders_ThreadProc_( void* pParameter )
function HRESULT (line 945) | HRESULT ShaderCache::GenerateShaders( CREATE_TYPE CreateType, const bool...
class HTMLWriter (line 1832) | class HTMLWriter
method HTMLWriter (line 1835) | HTMLWriter( FILE* i_pFile, const wchar_t* i_wcsTitle = NULL, const int...
method writeHTML (line 1850) | void writeHTML( const wchar_t* i_wcsString )
method StartTabTable (line 1855) | void StartTabTable( void )
method AddTab (line 1861) | void AddTab( const int i_tabID, const wchar_t* i_wcsTabName )
method EndTabTableHeader (line 1869) | void EndTabTableHeader( void )
method AddTabBody (line 1874) | void AddTabBody( const int i_tabID, const wchar_t* i_wcsTabName, const...
method EndTabTable (line 1884) | void EndTabTable( void )
method AddFileTableRow (line 1889) | void AddFileTableRow( const wchar_t* i_wcsString, const bool i_bCreate...
method FinishHTML (line 1900) | void FinishHTML( void )
method WriteHTMLHeader (line 1912) | void WriteHTMLHeader( const wchar_t* i_wcsTitle = NULL )
method WriteScriptHeader (line 1935) | void WriteScriptHeader( void )
method WriteHTMLHeadEnding (line 1948) | void WriteHTMLHeadEnding( void )
method WriteHTMLFooter (line 1954) | void WriteHTMLFooter( void )
function shader_duplicate_ptr (line 2388) | bool shader_duplicate_ptr( AMD::ShaderCache::Shader* pFirst, AMD::Shader...
function HRESULT (line 2602) | HRESULT ShaderCache::CreateShaders()
function BOOL (line 2716) | BOOL ShaderCache::CreateHashFromPreprocessFile( Shader* pShader )
function BOOL (line 2903) | BOOL ShaderCache::CompareHash( Shader* pShader )
function HRESULT (line 2939) | HRESULT ShaderCache::CreateShader( Shader* pShader )
function BOOL (line 3014) | BOOL ShaderCache::CompileShader( Shader* pShader )
function BOOL (line 3047) | BOOL ShaderCache::PreprocessShader( Shader* pShader )
function BOOL (line 3079) | BOOL ShaderCache::CheckShaderFile( Shader* pShader )
function BOOL (line 3106) | BOOL ShaderCache::CheckObjectFile( Shader* pShader )
function BOOL (line 3134) | BOOL ShaderCache::CheckFXC()
function BOOL (line 3152) | BOOL ShaderCache::CheckSCDEV()
function BOOL (line 3172) | BOOL ShaderCache::CheckErrorFile( Shader* pShader, bool& io_bHasShaderCo...
function BOOL (line 3320) | BOOL ShaderCache::IsAnError( FILE* pFile )
FILE: framework/d3d11/amd_sdk/src/ShaderCache.h
function namespace (line 75) | namespace AMD
type ProgressInfo (line 391) | struct ProgressInfo
FILE: framework/d3d11/amd_sdk/src/ShaderCacheSampleHelper.cpp
function SetHUDVisibility (line 47) | static void SetHUDVisibility( AMD::HUD& r_HUD, const bool i_bHUDIsVisible )
type AMD (line 63) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/Sprite.cpp
type SpriteVertex (line 40) | struct SpriteVertex
type SpriteBorderVertex (line 46) | struct SpriteBorderVertex
type CB_SPRITE (line 52) | struct CB_SPRITE
function HRESULT (line 113) | HRESULT Sprite::OnCreateDevice( ID3D11Device* pd3dDevice )
function HRESULT (line 480) | HRESULT Sprite::RenderSprite( ID3D11ShaderResourceView* pTextureView, in...
function HRESULT (line 531) | HRESULT Sprite::RenderSpriteMS( ID3D11ShaderResourceView* pTextureView, ...
function HRESULT (line 582) | HRESULT Sprite::RenderSpriteAsDepth( ID3D11ShaderResourceView* pTextureV...
function HRESULT (line 624) | HRESULT Sprite::RenderSpriteAsDepthMS( ID3D11ShaderResourceView* pTextur...
function HRESULT (line 666) | HRESULT Sprite::RenderSpriteVolume( ID3D11ShaderResourceView* pTextureVi...
FILE: framework/d3d11/amd_sdk/src/Sprite.h
function namespace (line 32) | namespace AMD
FILE: framework/d3d11/amd_sdk/src/Timer.cpp
function LONGLONG (line 29) | __declspec(naked) LONGLONG __cdecl rdtsc_time(void)
function LPCWSTR (line 478) | LPCWSTR TimingEvent::GetName()
function TimingEvent (line 539) | TimingEvent* TimingEvent::GetTimer( LPCWSTR timerId )
function TimingEvent (line 579) | TimingEvent* TimingEvent::GetParent()
function TimingEvent (line 584) | TimingEvent* TimingEvent::GetFirstChild()
function TimingEvent (line 589) | TimingEvent* TimingEvent::GetNextTimer()
function TimingEvent (line 595) | TimingEvent* TimingEvent::GetTimerRec( LPWSTR timerId )
function TimingEvent (line 622) | TimingEvent* TimingEvent::FindLastChildUsed()
function TimingEvent (line 867) | TimingEvent* TimerEx::GetTimer( LPCWSTR timerId )
FILE: framework/d3d11/amd_sdk/src/Timer.h
type TimerType (line 420) | enum TimerType
function class (line 429) | class Timer
function class (line 453) | class CpuTimer : public Timer
function class (line 476) | class GpuTimer : public Timer
function class (line 531) | class GpuCpuTimer : public CpuTimer
function class (line 552) | class TimingEvent
function class (line 593) | class TimerEx
function class (line 673) | class TimerExHelper
function virtual (line 681) | virtual ~TimerExHelper( )
FILE: framework/d3d11/amd_sdk/src/crc.cpp
function reflect (line 56) | static unsigned long
function crc (line 94) | crc
function crcInit (line 155) | void
function crc (line 211) | crc
FILE: framework/d3d11/amd_sdk/src/crc.h
type crc (line 34) | typedef unsigned short crc;
type crc (line 46) | typedef unsigned short crc;
type crc (line 58) | typedef unsigned long crc;
FILE: framework/d3d11/dxut/Core/DDSTextureLoader.cpp
type DDS_PIXELFORMAT (line 52) | struct DDS_PIXELFORMAT
type DDS_MISC_FLAGS2 (line 88) | enum DDS_MISC_FLAGS2
type DDS_HEADER (line 93) | struct DDS_HEADER
type DDS_HEADER_DXT10 (line 111) | struct DDS_HEADER_DXT10
type handle_closer (line 126) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
function HANDLE (line 130) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
function SetDebugObjectName (line 133) | inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ co...
function HRESULT (line 146) | static HRESULT LoadTextureDataFromFile( _In_z_ const wchar_t* fileName,
function BitsPerPixel (line 274) | static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
function GetSurfaceInfo (line 424) | static void GetSurfaceInfo( _In_ size_t width,
function DXGI_FORMAT (line 556) | static DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf )
function DXGI_FORMAT (line 794) | static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format )
function HRESULT (line 826) | static HRESULT FillInitData( _In_ size_t width,
function HRESULT (line 924) | static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice,
function HRESULT (line 1166) | static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice,
function DDS_ALPHA_MODE (line 1517) | static DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header )
function _Use_decl_annotations_ (line 1546) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1560) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1575) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1594) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1690) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1703) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1717) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1735) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Core/DDSTextureLoader.h
function namespace (line 44) | namespace DirectX
FILE: framework/d3d11/dxut/Core/DXUT.cpp
class DXUTLock (line 34) | class DXUTLock
method _Acquires_lock_ (line 38) | inline _Acquires_lock_(g_cs) DXUTLock() { if( g_bThreadSafe ) EnterCr...
type DXUT_TIMER (line 58) | struct DXUT_TIMER
class DXUTState (line 72) | class DXUTState
type STATE (line 75) | struct STATE
method DXUTState (line 258) | DXUTState() { Create(); }
method Create (line 261) | void Create()
method Destroy (line 289) | void Destroy()
function HRESULT (line 475) | HRESULT WINAPI DXUTCreateState()
function DXUTDestroyState (line 486) | void WINAPI DXUTDestroyState()
class DXUTMemoryHelper (line 491) | class DXUTMemoryHelper
method DXUTMemoryHelper (line 494) | DXUTMemoryHelper() { DXUTCreateState(); }
function DXUTState (line 498) | DXUTState& GetDXUTState()
type STATE (line 75) | struct STATE
method DXUTState (line 258) | DXUTState() { Create(); }
method Create (line 261) | void Create()
method Destroy (line 289) | void Destroy()
function UINT (line 559) | UINT DXUTGetBackBufferWidthFromDS( _In_ DXUTDeviceSettings* pNewDeviceSe...
function UINT (line 563) | UINT DXUTGetBackBufferHeightFromDS( _In_ DXUTDeviceSettings* pNewDeviceS...
function DXUTGetIsWindowedFromDS (line 567) | bool DXUTGetIsWindowedFromDS( _In_ DXUTDeviceSettings* pNewDeviceSettings )
function DXUTGetMSAASwapChainCreated (line 579) | bool WINAPI DXUTGetMSAASwapChainCreated()
function D3D_FEATURE_LEVEL (line 586) | D3D_FEATURE_LEVEL WINAPI DXUTGetD3D11DeviceFeatureLevel() { return GetD...
function DXGI_SURFACE_DESC (line 590) | const DXGI_SURFACE_DESC* WINAPI DXUTGetDXGIBackBufferSurfaceDesc() { ret...
function HINSTANCE (line 591) | HINSTANCE WINAPI DXUTGetHINSTANCE() { return GetD...
function HWND (line 592) | HWND WINAPI DXUTGetHWND() { return DXUT...
function HWND (line 593) | HWND WINAPI DXUTGetHWNDFocus() { return GetD...
function HWND (line 594) | HWND WINAPI DXUTGetHWNDDeviceFullScreen() { return GetD...
function HWND (line 595) | HWND WINAPI DXUTGetHWNDDeviceWindowed() { return GetD...
function RECT (line 596) | RECT WINAPI DXUTGetWindowClientRect() { RECT rc; Ge...
function LONG (line 597) | LONG WINAPI DXUTGetWindowWidth() { RECT rc = D...
function LONG (line 598) | LONG WINAPI DXUTGetWindowHeight() { RECT rc = D...
function RECT (line 599) | RECT WINAPI DXUTGetWindowClientRectAtModeChange() { RECT rc = {...
function RECT (line 600) | RECT WINAPI DXUTGetFullsceenClientRectAtModeChange() { RECT rc = {...
function DXUTGetTime (line 601) | double WINAPI DXUTGetTime() { return GetD...
function DXUTGetElapsedTime (line 602) | float WINAPI DXUTGetElapsedTime() { return GetD...
function DXUTGetFPS (line 603) | float WINAPI DXUTGetFPS() { return GetD...
function LPCWSTR (line 604) | LPCWSTR WINAPI DXUTGetWindowTitle() { return GetD...
function LPCWSTR (line 605) | LPCWSTR WINAPI DXUTGetDeviceStats() { return GetD...
function DXUTIsRenderingPaused (line 606) | bool WINAPI DXUTIsRenderingPaused() { return GetD...
function DXUTIsTimePaused (line 607) | bool WINAPI DXUTIsTimePaused() { return GetD...
function DXUTIsActive (line 608) | bool WINAPI DXUTIsActive() { return GetD...
function DXUTGetExitCode (line 609) | int WINAPI DXUTGetExitCode() { return GetD...
function DXUTGetShowMsgBoxOnError (line 610) | bool WINAPI DXUTGetShowMsgBoxOnError() { return GetD...
function DXUTGetAutomation (line 611) | bool WINAPI DXUTGetAutomation() { return GetD...
function DXUTIsWindowed (line 612) | bool WINAPI DXUTIsWindowed() { return DXUT...
function DXUTIsInGammaCorrectMode (line 613) | bool WINAPI DXUTIsInGammaCorrectMode() { return GetD...
function DXUTSetCallbackDeviceChanging (line 639) | void WINAPI DXUTSetCallbackDeviceChanging( _In_ LPDXUTCALLBACKMODIFYDEVI...
function DXUTSetCallbackDeviceRemoved (line 640) | void WINAPI DXUTSetCallbackDeviceRemoved( _In_ LPDXUTCALLBACKDEVICEREMOV...
function DXUTSetCallbackFrameMove (line 641) | void WINAPI DXUTSetCallbackFrameMove( _In_ LPDXUTCALLBACKFRAMEMOVE pCall...
function DXUTSetCallbackKeyboard (line 642) | void WINAPI DXUTSetCallbackKeyboard( _In_ LPDXUTCALLBACKKEYBOARD pCallba...
function DXUTSetCallbackMouse (line 643) | void WINAPI DXUTSetCallbackMouse( _In_ LPDXUTCALLBACKMOUSE pCallback, bo...
function DXUTSetCallbackMsgProc (line 644) | void WINAPI DXUTSetCallbackMsgProc( _In_ LPDXUTCALLBACKMSGPROC pCallback...
function DXUTSetCallbackD3D11DeviceAcceptable (line 647) | void WINAPI DXUTSetCallbackD3D11DeviceAcceptable( _In_ LPDXUTCALLBACKISD...
function DXUTSetCallbackD3D11BeforeDeviceCreated (line 648) | void WINAPI DXUTSetCallbackD3D11BeforeDeviceCreated( _In_ LPDXUTCALLBACK...
function DXUTSetCallbackD3D11DeviceCreated (line 649) | void WINAPI DXUTSetCallbackD3D11DeviceCreated( _In_ LPDXUTCALLBACKD3D11D...
function DXUTSetCallbackD3D11SwapChainResized (line 650) | void WINAPI DXUTSetCallbackD3D11SwapChainResized( _In_ LPDXUTCALLBACKD3D...
function DXUTSetCallbackD3D11FrameRender (line 651) | void WINAPI DXUTSetCallbackD3D11FrameRender( _In_ LPDXUTCALLBACKD3D11FRA...
function DXUTSetCallbackD3D11SwapChainReleasing (line 652) | void WINAPI DXUTSetCallbackD3D11SwapChainReleasing( _In_ LPDXUTCALLBACKD...
function DXUTSetCallbackD3D11DeviceDestroyed (line 653) | void WINAPI DXUTSetCallbackD3D11DeviceDestroyed( _In_ LPDXUTCALLBACKD3D1...
function DXUTGetCallbackD3D11DeviceAcceptable (line 654) | void DXUTGetCallbackD3D11DeviceAcceptable( _In_ LPDXUTCALLBACKISD3D11DEV...
function _Use_decl_annotations_ (line 681) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 733) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 957) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 980) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1017) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1124) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1185) | _Use_decl_annotations_
function HRESULT (line 1588) | HRESULT WINAPI DXUTMainLoop( _In_opt_ HACCEL hAccel )
function _Use_decl_annotations_ (line 1677) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1769) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1818) | _Use_decl_annotations_
function HRESULT (line 2206) | HRESULT DXUTDelayLoadDXGI()
function DXUTUpdateDeviceSettingsWithOverrides (line 2231) | void DXUTUpdateDeviceSettingsWithOverrides( _Inout_ DXUTDeviceSettings* ...
function HRESULT (line 2293) | HRESULT WINAPI DXUTSetupD3D11Views( _In_ ID3D11DeviceContext* pd3dDevice...
function _Use_decl_annotations_ (line 2319) | _Use_decl_annotations_
function HRESULT (line 2393) | HRESULT DXUTCreate3DEnvironment11()
function HRESULT (line 2727) | HRESULT DXUTReset3DEnvironment11()
function DXUTRender3DEnvironment (line 2821) | void WINAPI DXUTRender3DEnvironment()
function DXUTCleanup3DEnvironment (line 2998) | void DXUTCleanup3DEnvironment( _In_ bool bReleaseSettings )
function LRESULT (line 3185) | LRESULT CALLBACK DXUTLowLevelKeyboardProc( int nCode, WPARAM wParam, LPA...
function _Use_decl_annotations_ (line 3214) | _Use_decl_annotations_
function DXUTAllowShortcutKeys (line 3235) | void DXUTAllowShortcutKeys( _In_ bool bAllowKeys )
function _Use_decl_annotations_ (line 3307) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3343) | _Use_decl_annotations_
function HRESULT (line 3380) | HRESULT WINAPI DXUTKillTimer( _In_ UINT nIDEvent )
function DXUTHandleTimers (line 3410) | void DXUTHandleTimers()
function DXUTDisplayErrorMessage (line 3443) | void DXUTDisplayErrorMessage( _In_ HRESULT hr )
function DXUTMapButtonToArrayIndex (line 3492) | int DXUTMapButtonToArrayIndex( _In_ BYTE vButton )
function HRESULT (line 3518) | HRESULT WINAPI DXUTToggleFullScreen()
function HRESULT (line 3575) | HRESULT WINAPI DXUTToggleWARP ()
function HRESULT (line 3623) | HRESULT WINAPI DXUTToggleREF()
function DXUTCheckForDXGIFullScreenSwitch (line 3674) | void DXUTCheckForDXGIFullScreenSwitch()
function _Use_decl_annotations_ (line 3704) | _Use_decl_annotations_
function DXUTCheckForDXGIBufferChange (line 3828) | void DXUTCheckForDXGIBufferChange()
function DXUTCheckForWindowSizeChange (line 3855) | void DXUTCheckForWindowSizeChange()
function DXUTCheckForWindowChangingMonitors (line 3870) | void DXUTCheckForWindowChangingMonitors()
function HMONITOR (line 3920) | HMONITOR DXUTGetMonitorFromAdapter( _In_ DXUTDeviceSettings* pDeviceSett...
function _Use_decl_annotations_ (line 3936) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3971) | _Use_decl_annotations_
function HRESULT (line 4010) | HRESULT DXUTHandleDeviceRemoved()
function DXUTUpdateBackBufferDesc (line 4045) | void DXUTUpdateBackBufferDesc()
function DXUTSetupCursor (line 4071) | void DXUTSetupCursor()
function DXUTUpdateStaticFrameStats (line 4091) | void DXUTUpdateStaticFrameStats()
function DXUTUpdateFrameStats (line 4128) | void DXUTUpdateFrameStats()
function LPCWSTR (line 4159) | LPCWSTR WINAPI DXUTGetFrameStats( _In_ bool bShowFPS )
function _Use_decl_annotations_ (line 4173) | _Use_decl_annotations_
function DXUTDeviceSettings (line 4253) | DXUTDeviceSettings WINAPI DXUTGetDeviceSettings()
function DXUTIsVsyncEnabled (line 4270) | bool WINAPI DXUTIsVsyncEnabled()
function DXUTIsKeyDown (line 4283) | bool WINAPI DXUTIsKeyDown( _In_ BYTE vKey )
function DXUTWasKeyPressed (line 4294) | bool WINAPI DXUTWasKeyPressed( _In_ BYTE vKey )
function DXUTIsMouseButtonDown (line 4302) | bool WINAPI DXUTIsMouseButtonDown( _In_ BYTE vButton )
function DXUTSetMultimonSettings (line 4309) | void WINAPI DXUTSetMultimonSettings( _In_ bool bAutoChangeAdapter )
function _Use_decl_annotations_ (line 4314) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4322) | _Use_decl_annotations_
function DXUTSetWindowSettings (line 4330) | void WINAPI DXUTSetWindowSettings( _In_ bool bCallDefWindowProc )
function _Use_decl_annotations_ (line 4335) | _Use_decl_annotations_
function DXUTResetFrameworkState (line 4351) | void WINAPI DXUTResetFrameworkState()
function DXUTShutdown (line 4361) | void WINAPI DXUTShutdown( _In_ int nExitCode )
function DXUTSetIsInGammaCorrectMode (line 4391) | void WINAPI DXUTSetIsInGammaCorrectMode( _In_ bool bGammaCorrect )
function DXUTApplyDefaultDeviceSettings (line 4398) | void DXUTApplyDefaultDeviceSettings(DXUTDeviceSettings *modifySettings)
function _Use_decl_annotations_ (line 4435) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Core/DXUT.h
type DXUTD3D11DeviceSettings (line 162) | struct DXUTD3D11DeviceSettings
type DXUTDeviceSettings (line 176) | struct DXUTDeviceSettings
FILE: framework/d3d11/dxut/Core/DXUTDevice11.cpp
function HRESULT (line 26) | HRESULT WINAPI DXUTCreateD3D11Enumeration()
function DXUTDestroyD3D11Enumeration (line 37) | void WINAPI DXUTDestroyD3D11Enumeration()
function _Use_decl_annotations_ (line 43) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 96) | _Use_decl_annotations_
function HRESULT (line 301) | HRESULT CD3D11Enumeration::EnumerateOutputs( _In_ CD3D11EnumAdapterInfo*...
function HRESULT (line 345) | HRESULT CD3D11Enumeration::EnumerateDisplayModes( _In_ CD3D11EnumOutputI...
function HRESULT (line 473) | HRESULT CD3D11Enumeration::EnumerateDevices( _In_ CD3D11EnumAdapterInfo*...
function HRESULT (line 634) | HRESULT CD3D11Enumeration::EnumerateDeviceCombosNoAdapter( _In_ CD3D11En...
function _Use_decl_annotations_ (line 705) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 827) | _Use_decl_annotations_
function CD3D11EnumAdapterInfo (line 888) | CD3D11EnumAdapterInfo* CD3D11Enumeration::GetAdapterInfo( _In_ UINT Adap...
function _Use_decl_annotations_ (line 901) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 919) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 933) | _Use_decl_annotations_
function UINT (line 997) | UINT WINAPI DXUTGetDXGIColorChannelBits( DXGI_FORMAT fmt )
function _Use_decl_annotations_ (line 1055) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1246) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Core/DXUTDevice11.h
type CD3D11EnumDeviceSettingsCombo (line 42) | struct CD3D11EnumDeviceSettingsCombo
function class (line 49) | class CD3D11Enumeration
function class (line 118) | class CD3D11EnumAdapterInfo
function class (line 147) | class CD3D11EnumOutputInfo
function class (line 170) | class CD3D11EnumDeviceInfo
type CD3D11EnumDeviceSettingsCombo (line 190) | struct CD3D11EnumDeviceSettingsCombo
FILE: framework/d3d11/dxut/Core/DXUTmisc.cpp
function _Use_decl_annotations_ (line 120) | _Use_decl_annotations_
function LARGE_INTEGER (line 165) | LARGE_INTEGER CDXUTTimer::GetAdjustedCurrentTime() const
function _Use_decl_annotations_ (line 213) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 339) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 361) | _Use_decl_annotations_
function DXUT_EnsureD3D9APIs (line 413) | static bool DXUT_EnsureD3D9APIs()
function DXUT_EnsureD3D11APIs (line 437) | bool DXUT_EnsureD3D11APIs()
function DXUT_Dynamic_D3DPERF_BeginEvent (line 474) | int WINAPI DXUT_Dynamic_D3DPERF_BeginEvent( _In_ DWORD col, _In_z_ LPCWS...
function DXUT_Dynamic_D3DPERF_EndEvent (line 482) | int WINAPI DXUT_Dynamic_D3DPERF_EndEvent()
function DXUT_Dynamic_D3DPERF_SetMarker (line 490) | void WINAPI DXUT_Dynamic_D3DPERF_SetMarker( _In_ DWORD col, _In_z_ LPCWS...
function DXUT_Dynamic_D3DPERF_SetRegion (line 496) | void WINAPI DXUT_Dynamic_D3DPERF_SetRegion( _In_ DWORD col, _In_z_ LPCWS...
function BOOL (line 502) | BOOL WINAPI DXUT_Dynamic_D3DPERF_QueryRepeatFrame()
function DXUT_Dynamic_D3DPERF_SetOptions (line 510) | void WINAPI DXUT_Dynamic_D3DPERF_SetOptions( _In_ DWORD dwOptions )
function DWORD (line 516) | DWORD WINAPI DXUT_Dynamic_D3DPERF_GetStatus()
function _Use_decl_annotations_ (line 524) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 533) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 542) | _Use_decl_annotations_
function WCHAR (line 564) | const WCHAR* WINAPI DXUTTraceWindowsMessage( _In_ UINT uMsg )
function _Use_decl_annotations_ (line 797) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 831) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 851) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 874) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 905) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 937) | _Use_decl_annotations_
function DXUTEnableXInput (line 1050) | void DXUTEnableXInput( _In_ bool bEnable )
function HRESULT (line 1069) | HRESULT DXUTStopRumbleOnAllControllers()
function DXGI_FORMAT (line 1093) | DXGI_FORMAT MAKE_SRGB( _In_ DXGI_FORMAT format )
function DXGI_FORMAT (line 1136) | DXGI_FORMAT MAKE_TYPELESS( _In_ DXGI_FORMAT format )
function HRESULT (line 1249) | HRESULT DXUTSnapD3D11Screenshot( _In_z_ LPCWSTR szFileName, _In_ bool us...
FILE: framework/d3d11/dxut/Core/DXUTmisc.h
type DXUT_GAMEPAD (line 30) | struct DXUT_GAMEPAD
function class (line 81) | class CDXUTTimer
function DXUT_SetDebugName (line 186) | inline void DXUT_SetDebugName( _In_ IDXGIObject* pObj, _In_z_ const CHAR...
function DXUT_SetDebugName (line 191) | inline void DXUT_SetDebugName( _In_ ID3D11Device* pObj, _In_z_ const CHA...
function DXUT_SetDebugName (line 196) | inline void DXUT_SetDebugName( _In_ ID3D11DeviceChild* pObj, _In_z_ cons...
function class (line 244) | class CDXUTPerfEventGenerator
type MONITORINFO (line 273) | typedef struct tagMONITORINFO
type tagMONITORINFOEXW (line 280) | struct tagMONITORINFOEXW
type MONITORINFOEXW (line 284) | typedef MONITORINFOEXW MONITORINFOEX;
type LPMONITORINFOEXW (line 285) | typedef LPMONITORINFOEXW LPMONITORINFOEX;
FILE: framework/d3d11/dxut/Core/ScreenGrab.cpp
type DDS_PIXELFORMAT (line 65) | struct DDS_PIXELFORMAT
type handle_closer (line 203) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
function HANDLE (line 207) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
function BitsPerPixel (line 213) | static size_t BitsPerPixel( _In_ DXGI_FORMAT fmt )
function IsCompressed (line 363) | static bool IsCompressed( _In_ DXGI_FORMAT fmt )
function GetSurfaceInfo (line 399) | static void GetSurfaceInfo( _In_ size_t width,
function DXGI_FORMAT (line 529) | static DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt )
function HRESULT (line 559) | static HRESULT CaptureTexture( _In_ ID3D11DeviceContext* pContext,
function IWICImagingFactory (line 659) | static IWICImagingFactory* _GetWIC()
function HRESULT (line 717) | HRESULT DirectX::SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext,
function HRESULT (line 873) | HRESULT DirectX::SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext,
FILE: framework/d3d11/dxut/Core/ScreenGrab.h
function namespace (line 37) | namespace DirectX
FILE: framework/d3d11/dxut/Core/WICTextureLoader.cpp
function SetDebugObjectName (line 57) | inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ co...
type WICTranslate (line 70) | struct WICTranslate
type WICConvert (line 105) | struct WICConvert
function IWICImagingFactory (line 174) | static IWICImagingFactory* _GetWIC()
function DXGI_FORMAT (line 231) | static DXGI_FORMAT _WICToDXGI( const GUID& guid )
function _WICBitsPerPixel (line 251) | static size_t _WICBitsPerPixel( REFGUID targetGuid )
function DXGI_FORMAT (line 281) | static DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format )
function HRESULT (line 313) | static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice,
function _Use_decl_annotations_ (line 688) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 701) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 715) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 733) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 812) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 824) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 837) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 854) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Core/WICTextureLoader.h
function namespace (line 49) | namespace DirectX
FILE: framework/d3d11/dxut/Core/dxerr.cpp
function WCHAR (line 72) | const WCHAR* WINAPI DXGetErrorStringW( _In_ HRESULT hr )
function DXGetErrorDescriptionW (line 3300) | void WINAPI DXGetErrorDescriptionW( _In_ HRESULT hr, _Out_cap_(count) WC...
function HRESULT (line 3611) | HRESULT WINAPI DXTraceW( _In_z_ const WCHAR* strFile, _In_ DWORD dwLine,...
FILE: framework/d3d11/dxut/Optional/DXUTLockFreePipe.h
function Read (line 65) | bool __forceinline Read( _Out_writes_(cbDest) void* pvDest, _In...
function Write (line 150) | bool __forceinline Write( _In_reads_(cbSrc) const void* pvSrc, ...
FILE: framework/d3d11/dxut/Optional/DXUTcamera.cpp
function _Use_decl_annotations_ (line 99) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 233) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 262) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 292) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 309) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 443) | _Use_decl_annotations_
function D3DUtil_CameraKeys (line 638) | D3DUtil_CameraKeys CBaseCamera::MapKey( _In_ UINT nKey )
function _Use_decl_annotations_ (line 809) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 990) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1013) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1118) | _Use_decl_annotations_
function HRESULT (line 1191) | HRESULT CDXUTDirectionWidget::UpdateLightDir()
function _Use_decl_annotations_ (line 1230) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1243) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Optional/DXUTcamera.h
function class (line 18) | class CD3DArcBall
function SetOffset (line 37) | void SetOffset( _In_ INT nX, _In_ INT nY ) { m_Offset.x = nX; m_Offset.y...
function SetQuatNow (line 58) | void SetQuatNow( _In_ DirectX::FXMVECTOR& q ) { DirectX::XMStoreFloat4( ...
function DirectX (line 60) | static DirectX::XMVECTOR QuatFromBallPoints( _In_ DirectX::FXMVECTOR vFr...
type D3DUtil_CameraKeys (line 115) | enum D3DUtil_CameraKeys
function class (line 143) | class CBaseCamera
function SetEnableYAxisMovement (line 166) | void SetEnableYAxisMovement( _In_ bool bEnableYAxisMovement ) { m_bEnabl...
function SetEnablePositionMovement (line 167) | void SetEnablePositionMovement( _In_ bool bEnablePositionMovement ) { m_...
function SetClipToBoundary (line 168) | void SetClipToBoundary( _In_ bool bClipToBoundary, _In_opt_ DirectX::XMF...
function SetNumberOfFramesToSmoothMouseData (line 179) | void SetNumberOfFramesToSmoothMouseData( _In_ int nFrames ) { if( nFrame...
function SetResetCursorAfterMove (line 180) | void SetResetCursorAfterMove( _In_ bool bResetCursorAfterMove ) { m_bRes...
function IsKeyDown (line 201) | bool IsKeyDown( _In_ BYTE key ) const { return( ( key & KEY_IS_DOWN_MASK...
function WasKeyDown (line 202) | bool WasKeyDown( _In_ BYTE key ) const { return( ( key & KEY_WAS_DOWN_MA...
function class (line 279) | class CFirstPersonCamera : public CBaseCamera
function class (line 309) | class CModelViewerCamera : public CBaseCamera
function class (line 388) | class CDXUTDirectionWidget
function SetRadius (line 410) | void SetRadius( _In_ float fRadius ) { m_fRadius = fRadius; }
function IsBeingDragged (line 412) | bool IsBeingDragged() { return m_ArcBall.IsBeingDragged(); }
FILE: framework/d3d11/dxut/Optional/DXUTgui.cpp
function XMFLOAT4 (line 49) | inline XMFLOAT4 D3DCOLOR_TO_D3DCOLORVALUE( DWORD c )
type DXUT_SCREEN_VERTEX (line 174) | struct DXUT_SCREEN_VERTEX
type DXUT_SCREEN_VERTEX_UNTEX (line 181) | struct DXUT_SCREEN_VERTEX_UNTEX
type DXUT_SCREEN_VERTEX_10 (line 187) | struct DXUT_SCREEN_VERTEX_10
function RectWidth (line 195) | inline int RectWidth( RECT& rc )
function RectHeight (line 199) | inline int RectHeight( RECT& rc )
function HRESULT (line 216) | HRESULT InitFont11( _In_ ID3D11Device* pd3d11Device, _In_ ID3D11InputLay...
function EndFont11 (line 230) | void EndFont11()
function BeginText11 (line 239) | void BeginText11()
function _Use_decl_annotations_ (line 246) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 341) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 457) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 470) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 482) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 496) | _Use_decl_annotations_
function HRESULT (line 579) | HRESULT CDXUTDialog::OnRender( _In_ float fElapsedTime )
function _Use_decl_annotations_ (line 698) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 715) | _Use_decl_annotations_
function DXUTFontNode (line 739) | DXUTFontNode* CDXUTDialog::GetFont( _In_ UINT index ) const
function _Use_decl_annotations_ (line 748) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 772) | _Use_decl_annotations_
function DXUTTextureNode (line 796) | DXUTTextureNode* CDXUTDialog::GetTexture( _In_ UINT index ) const
function _Use_decl_annotations_ (line 805) | _Use_decl_annotations_
function CDXUTControl (line 1067) | CDXUTControl* CDXUTDialog::GetControlAtPoint( _In_ const POINT& pt ) const
function _Use_decl_annotations_ (line 1145) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1176) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1193) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1223) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1254) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1286) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1320) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1350) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1382) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1414) | _Use_decl_annotations_
function HRESULT (line 1441) | HRESULT CDXUTDialog::InitControl( _In_ CDXUTControl* pControl )
function HRESULT (line 1464) | HRESULT CDXUTDialog::AddControl( _In_ CDXUTControl* pControl )
function CDXUTControl (line 1480) | CDXUTControl* CDXUTDialog::GetControl( _In_ int ID ) const
function CDXUTControl (line 1497) | CDXUTControl* CDXUTDialog::GetControl( _In_ int ID, _In_ UINT nControl...
function CDXUTControl (line 1514) | CDXUTControl* CDXUTDialog::GetNextControl( _In_ CDXUTControl* pControl )
function CDXUTControl (line 1534) | CDXUTControl* CDXUTDialog::GetPrevControl( _In_ CDXUTControl* pControl )
function _Use_decl_annotations_ (line 1602) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1613) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1697) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1714) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1756) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2283) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2294) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2422) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2552) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2672) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 2743) | _Use_decl_annotations_
function HRESULT (line 2798) | HRESULT CDXUTDialogResourceManager::CreateTexture11( _In_ UINT iTexture )
function HRESULT (line 2890) | HRESULT CDXUTControl::SetElement( _In_ UINT iElement, _In_ CDXUTElement*...
function _Use_decl_annotations_ (line 2975) | _Use_decl_annotations_
function HRESULT (line 2992) | HRESULT CDXUTStatic::SetText( _In_z_ LPCWSTR strText )
function _Use_decl_annotations_ (line 3019) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3059) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3193) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3232) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3284) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3365) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3408) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3464) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3563) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3650) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 3978) | _Use_decl_annotations_
function DXUTComboBoxItem (line 4082) | DXUTComboBoxItem* CDXUTComboBox::GetSelectedItem() const
function HRESULT (line 4122) | HRESULT CDXUTComboBox::SetSelectedByIndex( _In_ UINT index )
function HRESULT (line 4136) | HRESULT CDXUTComboBox::SetSelectedByText( _In_z_ const WCHAR* strText )
function HRESULT (line 4154) | HRESULT CDXUTComboBox::SetSelectedByData( _In_ void* pData )
function _Use_decl_annotations_ (line 4220) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4272) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4560) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4571) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4686) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4880) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 4900) | _Use_decl_annotations_
function DXUTListBoxItem (line 4952) | DXUTListBoxItem* CDXUTListBox::GetItem( _In_ int nIndex ) const
function _Use_decl_annotations_ (line 5031) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5140) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5364) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5578) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5691) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5820) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 5895) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6152) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6186) | _Use_decl_annotations_
function HRESULT (line 6260) | HRESULT CUniBuffer::Analyse()
function WCHAR (line 6324) | WCHAR& CUniBuffer::operator[]( _In_ int n ) // No param checking
function _Use_decl_annotations_ (line 6404) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6463) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6487) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6529) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6561) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6611) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6626) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6649) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 6664) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Optional/DXUTgui.h
type DXUTElementHolder (line 58) | struct DXUTElementHolder
type DXUTTextureNode (line 59) | struct DXUTTextureNode
type DXUTFontNode (line 60) | struct DXUTFontNode
type DXUT_CONTROL_TYPE (line 68) | enum DXUT_CONTROL_TYPE
type DXUT_CONTROL_STATE (line 82) | enum DXUT_CONTROL_STATE
type DXUTBlendColor (line 94) | struct DXUTBlendColor
function class (line 109) | class CDXUTElement
function class (line 132) | class CDXUTDialog
type DXUTTextureNode (line 358) | struct DXUTTextureNode
type DXUTFontNode (line 370) | struct DXUTFontNode
type DXUTSpriteVertex (line 377) | struct DXUTSpriteVertex
function class (line 388) | class CDXUTDialogResourceManager
function class (line 472) | class CDXUTControl
type DXUTElementHolder (line 581) | struct DXUTElementHolder
function class (line 593) | class CDXUTStatic : public CDXUTControl
function class (line 617) | class CDXUTButton : public CDXUTStatic
function class (line 649) | class CDXUTCheckBox : public CDXUTButton
function class (line 682) | class CDXUTRadioButton : public CDXUTCheckBox
function SetButtonGroup (line 696) | void SetButtonGroup( _In_ UINT nButtonGroup ) { m_nButtonGroup = nButton...
function class (line 708) | class CDXUTScrollBar : public CDXUTControl
type DXUTListBoxItem (line 778) | struct DXUTListBoxItem
function class (line 787) | class CDXUTListBox : public CDXUTControl
type STYLE (line 835) | enum STYLE
type DXUTComboBoxItem (line 860) | struct DXUTComboBoxItem
function class (line 869) | class CDXUTComboBox : public CDXUTButton
function class (line 945) | class CDXUTSlider : public CDXUTControl
function class (line 993) | class CUniBuffer
function class (line 1048) | class CDXUTEditBox : public CDXUTControl
FILE: framework/d3d11/dxut/Optional/DXUTguiIME.cpp
function _Use_decl_annotations_ (line 43) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 254) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 307) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 476) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 511) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Optional/DXUTguiIME.h
function class (line 31) | class CDXUTIMEEditBox : public CDXUTEditBox
FILE: framework/d3d11/dxut/Optional/DXUTres.cpp
function _Use_decl_annotations_ (line 8296) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Optional/DXUTsettingsdlg.cpp
function _Use_decl_annotations_ (line 88) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 100) | _Use_decl_annotations_
function HRESULT (line 235) | HRESULT CD3DSettingsDlg::Refresh()
function _Use_decl_annotations_ (line 425) | _Use_decl_annotations_
function HRESULT (line 435) | HRESULT CD3DSettingsDlg::OnD3D11CreateDevice( _In_ ID3D11Device* pd3dDev...
function _Use_decl_annotations_ (line 449) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 481) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 495) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 517) | _Use_decl_annotations_
function CD3D11EnumAdapterInfo (line 650) | CD3D11EnumAdapterInfo* CD3DSettingsDlg::GetCurrentD3D11AdapterInfo() const
function CD3D11EnumDeviceInfo (line 658) | CD3D11EnumDeviceInfo* CD3DSettingsDlg::GetCurrentD3D11DeviceInfo() const
function CD3D11EnumOutputInfo (line 667) | CD3D11EnumOutputInfo* CD3DSettingsDlg::GetCurrentD3D11OutputInfo() const
function CD3D11EnumDeviceSettingsCombo (line 675) | CD3D11EnumDeviceSettingsCombo* CD3DSettingsDlg::GetCurrentD3D11DeviceSet...
function HRESULT (line 683) | HRESULT CD3DSettingsDlg::OnD3D11ResolutionChanged ()
function HRESULT (line 701) | HRESULT CD3DSettingsDlg::OnFeatureLevelChanged ()
function HRESULT (line 774) | HRESULT CD3DSettingsDlg::OnAdapterChanged()
function HRESULT (line 805) | HRESULT CD3DSettingsDlg::OnDeviceTypeChanged()
function HRESULT (line 873) | HRESULT CD3DSettingsDlg::OnWindowedFullScreenChanged()
function HRESULT (line 921) | HRESULT CD3DSettingsDlg::OnAdapterOutputChanged()
function HRESULT (line 997) | HRESULT CD3DSettingsDlg::OnRefreshRateChanged()
function HRESULT (line 1007) | HRESULT CD3DSettingsDlg::OnBackBufferFormatChanged()
function HRESULT (line 1062) | HRESULT CD3DSettingsDlg::OnMultisampleTypeChanged()
function HRESULT (line 1104) | HRESULT CD3DSettingsDlg::OnMultisampleQualityChanged()
function HRESULT (line 1113) | HRESULT CD3DSettingsDlg::OnPresentIntervalChanged()
function HRESULT (line 1122) | HRESULT CD3DSettingsDlg::OnDebugDeviceChanged()
function UINT (line 1146) | UINT CD3DSettingsDlg::GetSelectedAdapter() const
function UINT (line 1193) | UINT CD3DSettingsDlg::GetSelectedD3D11AdapterOutput() const
function _Use_decl_annotations_ (line 1202) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1218) | _Use_decl_annotations_
function D3D_FEATURE_LEVEL (line 1298) | D3D_FEATURE_LEVEL CD3DSettingsDlg::GetSelectedFeatureLevel() const
function DXGI_RATIONAL (line 1331) | DXGI_RATIONAL CD3DSettingsDlg::GetSelectedD3D11RefreshRate() const
function DXGI_FORMAT (line 1355) | DXGI_FORMAT CD3DSettingsDlg::GetSelectedD3D11BackBufferFormat() const
function UINT (line 1377) | UINT CD3DSettingsDlg::GetSelectedD3D11MultisampleCount() const
function UINT (line 1399) | UINT CD3DSettingsDlg::GetSelectedD3D11MultisampleQuality() const
function DWORD (line 1408) | DWORD CD3DSettingsDlg::GetSelectedD3D11PresentInterval() const
function HRESULT (line 1427) | HRESULT CD3DSettingsDlg::UpdateD3D11Resolutions()
function HRESULT (line 1494) | HRESULT CD3DSettingsDlg::UpdateD3D11RefreshRates()
function D3D_DRIVER_TYPE (line 1551) | D3D_DRIVER_TYPE CD3DSettingsDlg::GetSelectedD3D11DeviceType() const
function WCHAR (line 1574) | const WCHAR* DXUTDeviceTypeToString( _In_ D3D_DRIVER_TYPE devType )
FILE: framework/d3d11/dxut/Optional/DXUTsettingsdlg.h
function CDXUTDialog (line 88) | CDXUTDialog* GetDialogControl() { return &m_Dialog; }
function SetActive (line 90) | void SetActive( _In_ bool bActive )
FILE: framework/d3d11/dxut/Optional/ImeUi.cpp
type _SkinCompStr (line 86) | struct _SkinCompStr
type tagINPUTCONTEXT2 (line 98) | struct
class CDisableCicero (line 128) | class CDisableCicero
method CDisableCicero (line 131) | CDisableCicero() : m_ptim( nullptr ),
method Initialize (line 139) | void Initialize()
method Uninitialize (line 157) | void Uninitialize()
method DisableCiceroOnThisWnd (line 169) | void DisableCiceroOnThisWnd( HWND hwnd )
function LRESULT (line 327) | inline LRESULT SendKeyMsg( HWND hwnd, UINT msg, WPARAM wp )
class CTsfUiLessMode (line 346) | class CTsfUiLessMode
class CUIElementSink (line 350) | class CUIElementSink : public ITfUIElementSink,
method CTsfUiLessMode (line 400) | CTsfUiLessMode()
function _strtoul (line 420) | static unsigned long _strtoul( LPCSTR psz, LPTSTR*, int )
function ComposeCandidateLine (line 458) | static void ComposeCandidateLine( int index, LPCTSTR pszCandidate )
function SendCompString (line 473) | static void SendCompString()
function DWORD (line 494) | static DWORD GetCandidateList( HIMC himc, DWORD dwIndex, LPCANDIDATELIST...
function SendControlKeys (line 505) | static void SendControlKeys( UINT vk, UINT num )
function CancelCompString (line 517) | static void CancelCompString( HWND hwnd, bool bUseBackSpace = true, int ...
function InitCompStringData (line 552) | static void InitCompStringData()
function DrawCaret (line 560) | static void DrawCaret( DWORD x, DWORD y, DWORD height )
function ImeUi_RenderUI (line 575) | void ImeUi_RenderUI( _In_ bool bDrawCompAttr, _In_ bool bDrawOtherUi )
function DrawImeIndicator (line 596) | static void DrawImeIndicator()
function DrawCompositionString (line 753) | static void DrawCompositionString( _In_ bool bDrawCompAttr )
function DrawCandidateList (line 939) | static void DrawCandidateList()
function CloseCandidateList (line 1213) | static void CloseCandidateList()
function _Use_decl_annotations_ (line 1229) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1568) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 1577) | _Use_decl_annotations_
function ImeUi_SetState (line 1595) | void ImeUi_SetState( _In_ DWORD dwState )
function DWORD (line 1654) | DWORD ImeUi_GetState()
function ImeUi_EnableIme (line 1662) | void ImeUi_EnableIme( _In_ bool bEnable )
function ImeUi_IsEnabled (line 1682) | bool ImeUi_IsEnabled()
function ImeUi_Initialize (line 1687) | bool ImeUi_Initialize(_In_ HWND hwnd, _In_ bool bDisable )
function ImeUi_Uninitialize (line 1776) | void ImeUi_Uninitialize()
function DWORD (line 1817) | static DWORD GetImeId( _In_ UINT uIndex )
function GetReadingString (line 1924) | static void GetReadingString( _In_ HWND hWnd )
function ImeUi_IgnoreHotKey (line 2147) | bool ImeUi_IgnoreHotKey( _In_ const MSG* pmsg )
function ImeUi_FinalizeString (line 2189) | void ImeUi_FinalizeString( _In_ bool bSend )
function SetCompStringColor (line 2233) | static void SetCompStringColor()
function SetSupportLevel (line 2244) | static void SetSupportLevel( _In_ DWORD dwImeLevel )
function ImeUi_SetSupportLevel (line 2258) | void ImeUi_SetSupportLevel( _In_ DWORD dwImeLevel )
function ImeUi_SetAppearance (line 2266) | void ImeUi_SetAppearance( _In_opt_ const IMEUI_APPEARANCE* pia )
function ImeUi_GetAppearance (line 2282) | void ImeUi_GetAppearance( _Out_opt_ IMEUI_APPEARANCE* pia )
function CheckToggleState (line 2297) | static void CheckToggleState()
function ImeUi_SetInsertMode (line 2332) | void ImeUi_SetInsertMode( _In_ bool bInsert )
function ImeUi_GetCaretStatus (line 2339) | bool ImeUi_GetCaretStatus()
function ImeUi_SetScreenDimension (line 2344) | void ImeUi_SetScreenDimension( _In_ UINT width, _In_ UINT height )
function _PumpMessage (line 2353) | static void _PumpMessage()
function GetReadingWindowOrientation (line 2370) | static void GetReadingWindowOrientation( _In_ DWORD dwId )
function ImeUi_ToggleLanguageBar (line 2404) | void ImeUi_ToggleLanguageBar( _In_ BOOL bRestore )
function ImeUi_IsSendingKeyMessage (line 2462) | bool ImeUi_IsSendingKeyMessage()
function OnInputLangChangeWorker (line 2467) | static void OnInputLangChangeWorker()
function OnInputLangChange (line 2476) | static void OnInputLangChange()
function SetImeApi (line 2496) | static void SetImeApi()
function CheckInputLocale (line 2523) | static void CheckInputLocale()
function ImeUi_SetWindow (line 2575) | void ImeUi_SetWindow( _In_ HWND hwnd )
function UINT (line 2581) | UINT ImeUi_GetInputCodePage()
function DWORD (line 2586) | DWORD ImeUi_GetFlags()
function ImeUi_SetFlags (line 2591) | void ImeUi_SetFlags( _In_ DWORD dwFlags, _In_ bool bSet )
function BOOL (line 2614) | BOOL CTsfUiLessMode::SetupSinks()
function STDAPI (line 2693) | STDAPI CTsfUiLessMode::CUIElementSink::QueryInterface( _In_ REFIID riid,...
function STDAPI (line 2745) | STDAPI CTsfUiLessMode::CUIElementSink::BeginUIElement( DWORD dwUIElement...
function STDAPI (line 2772) | STDAPI CTsfUiLessMode::CUIElementSink::UpdateUIElement( DWORD dwUIElemen...
function STDAPI (line 2797) | STDAPI CTsfUiLessMode::CUIElementSink::EndUIElement( DWORD dwUIElementId )
function STDAPI (line 2864) | STDAPI CTsfUiLessMode::CUIElementSink::OnActivated( DWORD dwProfileType,...
function STDAPI (line 2889) | STDAPI CTsfUiLessMode::CUIElementSink::OnChange( _In_ REFGUID rguid )
function ITfUIElement (line 3008) | ITfUIElement* CTsfUiLessMode::GetUIElement( DWORD dwUIElementId )
function BOOL (line 3022) | BOOL CTsfUiLessMode::CurrentInputLocaleIsIme()
function BOOL (line 3080) | BOOL CTsfUiLessMode::GetCompartments( ITfCompartmentMgr** ppcm, ITfCompa...
function BOOL (line 3116) | BOOL CTsfUiLessMode::SetupCompartmentSinks( BOOL bRemoveOnly, ITfCompart...
function WORD (line 3179) | WORD ImeUi_GetPrimaryLanguage()
function DWORD (line 3184) | DWORD ImeUi_GetImeId( _In_ UINT uIndex )
function WORD (line 3189) | WORD ImeUi_GetLanguage()
function PTSTR (line 3194) | PTSTR ImeUi_GetIndicatior()
function ImeUi_IsShowReadingWindow (line 3200) | bool ImeUi_IsShowReadingWindow()
function ImeUi_IsShowCandListWindow (line 3205) | bool ImeUi_IsShowCandListWindow()
function ImeUi_IsVerticalCand (line 3210) | bool ImeUi_IsVerticalCand()
function ImeUi_IsHorizontalReading (line 3215) | bool ImeUi_IsHorizontalReading()
function TCHAR (line 3220) | TCHAR* ImeUi_GetCandidate( _In_ UINT idx )
function DWORD (line 3228) | DWORD ImeUi_GetCandidateSelection()
function DWORD (line 3233) | DWORD ImeUi_GetCandidateCount()
function TCHAR (line 3238) | TCHAR* ImeUi_GetCompositionString()
function BYTE (line 3243) | BYTE* ImeUi_GetCompStringAttr()
function DWORD (line 3248) | DWORD ImeUi_GetImeCursorChars()
FILE: framework/d3d11/dxut/Optional/ImeUi.h
function class (line 17) | class CImeUiFont_Base
type IMEUI_APPEARANCE (line 30) | typedef struct
type IMEUI_VERTEX (line 60) | typedef struct // D3DTLVERTEX compatible
FILE: framework/d3d11/dxut/Optional/SDKmesh.cpp
function _Use_decl_annotations_ (line 25) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 105) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 140) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 175) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 234) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 475) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 503) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 554) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 585) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 685) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 745) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 752) | _Use_decl_annotations_
function HRESULT (line 760) | HRESULT CDXUTSDKMesh::LoadAnimation( _In_z_ const WCHAR* szFileName )
function _Use_decl_annotations_ (line 906) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 933) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 943) | _Use_decl_annotations_
function D3D11_PRIMITIVE_TOPOLOGY (line 954) | D3D11_PRIMITIVE_TOPOLOGY CDXUTSDKMesh::GetPrimitiveType11( _In_ SDKMESH_...
function DXGI_FORMAT (line 993) | DXGI_FORMAT CDXUTSDKMesh::GetIBFormat11( _In_ UINT iMesh ) const
function ID3D11Buffer (line 1006) | ID3D11Buffer* CDXUTSDKMesh::GetVB11( _In_ UINT iMesh, _In_ UINT iVB ) const
function ID3D11Buffer (line 1012) | ID3D11Buffer* CDXUTSDKMesh::GetIB11( _In_ UINT iMesh ) const
function SDKMESH_INDEX_TYPE (line 1016) | SDKMESH_INDEX_TYPE CDXUTSDKMesh::GetIndexType( _In_ UINT iMesh ) const
function ID3D11Buffer (line 1021) | ID3D11Buffer* CDXUTSDKMesh::GetAdjIB11( _In_ UINT iMesh ) const
function WCHAR (line 1033) | const WCHAR* CDXUTSDKMesh::GetMeshPathW() const
function UINT (line 1039) | UINT CDXUTSDKMesh::GetNumMeshes() const
function UINT (line 1047) | UINT CDXUTSDKMesh::GetNumMaterials() const
function UINT (line 1055) | UINT CDXUTSDKMesh::GetNumVBs() const
function UINT (line 1063) | UINT CDXUTSDKMesh::GetNumIBs() const
function ID3D11Buffer (line 1071) | ID3D11Buffer* CDXUTSDKMesh::GetVB11At( _In_ UINT iVB ) const
function ID3D11Buffer (line 1077) | ID3D11Buffer* CDXUTSDKMesh::GetIB11At( _In_ UINT iIB ) const
function BYTE (line 1083) | BYTE* CDXUTSDKMesh::GetRawVerticesAt( _In_ UINT iVB ) const
function BYTE (line 1089) | BYTE* CDXUTSDKMesh::GetRawIndicesAt( _In_ UINT iIB ) const
function SDKMESH_MATERIAL (line 1095) | SDKMESH_MATERIAL* CDXUTSDKMesh::GetMaterial( _In_ UINT iMaterial ) const
function SDKMESH_MESH (line 1101) | SDKMESH_MESH* CDXUTSDKMesh::GetMesh( _In_ UINT iMesh ) const
function UINT (line 1107) | UINT CDXUTSDKMesh::GetNumSubsets( _In_ UINT iMesh ) const
function SDKMESH_SUBSET (line 1113) | SDKMESH_SUBSET* CDXUTSDKMesh::GetSubset( _In_ UINT iMesh, _In_ UINT iSub...
function UINT (line 1119) | UINT CDXUTSDKMesh::GetVertexStride( _In_ UINT iMesh, _In_ UINT iVB ) const
function UINT (line 1125) | UINT CDXUTSDKMesh::GetNumFrames() const
function SDKMESH_FRAME (line 1131) | SDKMESH_FRAME* CDXUTSDKMesh::GetFrame( _In_ UINT iFrame ) const
function SDKMESH_FRAME (line 1138) | SDKMESH_FRAME* CDXUTSDKMesh::FindFrame( _In_z_ const char* pszName ) const
function UINT64 (line 1151) | UINT64 CDXUTSDKMesh::GetNumVertices( _In_ UINT iMesh, _In_ UINT iVB ) const
function UINT64 (line 1157) | UINT64 CDXUTSDKMesh::GetNumIndices( _In_ UINT iMesh ) const
function XMVECTOR (line 1163) | XMVECTOR CDXUTSDKMesh::GetMeshBBoxCenter( _In_ UINT iMesh ) const
function XMVECTOR (line 1169) | XMVECTOR CDXUTSDKMesh::GetMeshBBoxExtents( _In_ UINT iMesh ) const
function UINT (line 1175) | UINT CDXUTSDKMesh::GetOutstandingResources() const
function UINT (line 1211) | UINT CDXUTSDKMesh::GetOutstandingBufferResources() const
function BOOL (line 1256) | BOOL CDXUTSDKMesh::HadLoadingError() const
function UINT (line 1262) | UINT CDXUTSDKMesh::GetNumInfluences( _In_ UINT iMesh ) const
function XMMATRIX (line 1268) | XMMATRIX CDXUTSDKMesh::GetMeshInfluenceMatrix( _In_ UINT iMesh, _In_ UIN...
function XMMATRIX (line 1274) | XMMATRIX CDXUTSDKMesh::GetWorldMatrix( _In_ UINT iFrameIndex ) const
function XMMATRIX (line 1279) | XMMATRIX CDXUTSDKMesh::GetInfluenceMatrix( _In_ UINT iFrameIndex ) const
function UINT (line 1286) | UINT CDXUTSDKMesh::GetAnimationKeyFromTime( _In_ double fTime ) const
function _Use_decl_annotations_ (line 1300) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Optional/SDKmesh.h
type SDKMESH_PRIMITIVE_TYPE (line 53) | enum SDKMESH_PRIMITIVE_TYPE
type SDKMESH_INDEX_TYPE (line 68) | enum SDKMESH_INDEX_TYPE
type FRAME_TRANSFORM_TYPE (line 74) | enum FRAME_TRANSFORM_TYPE
type SDKMESH_HEADER (line 85) | struct SDKMESH_HEADER
type SDKMESH_VERTEX_BUFFER_HEADER (line 111) | struct SDKMESH_VERTEX_BUFFER_HEADER
type SDKMESH_INDEX_BUFFER_HEADER (line 124) | struct SDKMESH_INDEX_BUFFER_HEADER
type SDKMESH_MESH (line 136) | struct SDKMESH_MESH
type SDKMESH_SUBSET (line 160) | struct SDKMESH_SUBSET
type SDKMESH_FRAME (line 171) | struct SDKMESH_FRAME
type SDKMESH_MATERIAL (line 182) | struct SDKMESH_MATERIAL
type SDKANIMATION_FILE_HEADER (line 234) | struct SDKANIMATION_FILE_HEADER
type SDKANIMATION_DATA (line 246) | struct SDKANIMATION_DATA
type SDKANIMATION_FRAME_DATA (line 253) | struct SDKANIMATION_FRAME_DATA
type SDKMESH_CALLBACKS11 (line 288) | struct SDKMESH_CALLBACKS11
function class (line 299) | class CDXUTSDKMesh
FILE: framework/d3d11/dxut/Optional/SDKmisc.cpp
function HRESULT (line 41) | HRESULT WINAPI DXUTDestroyGlobalResourceCache()
function DXUTDisplaySwitchingToREFWarning (line 66) | void WINAPI DXUTDisplaySwitchingToREFWarning()
function _Use_decl_annotations_ (line 161) | _Use_decl_annotations_
function WCHAR (line 205) | WCHAR* DXUTMediaSearchPath()
function LPCWSTR (line 217) | LPCWSTR WINAPI DXUTGetMediaSearchPath()
function HRESULT (line 224) | HRESULT WINAPI DXUTSetMediaSearchPath( _In_z_ LPCWSTR strPath )
function _Use_decl_annotations_ (line 251) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 345) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 422) | _Use_decl_annotations_
type handle_closer (line 470) | struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h)...
function HANDLE (line 474) | inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALU...
class CIncludeHandler (line 476) | class CIncludeHandler : public ID3DInclude
type sInclude (line 482) | struct sInclude
type sInclude (line 490) | struct sInclude
method CIncludeHandler (line 496) | CIncludeHandler() : m_nIncludes(0), m_reset(false)
method STDMETHOD (line 529) | STDMETHOD(Open( D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOI...
method STDMETHOD (line 569) | STDMETHOD(Close( LPCVOID pData ))
method SetCWD (line 576) | void SetCWD( LPCWSTR pFileName )
function _Use_decl_annotations_ (line 596) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 700) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 726) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 752) | _Use_decl_annotations_
function XMMATRIX (line 776) | XMMATRIX WINAPI DXUTGetCubeMapViewMatrix( _In_ DWORD dwFace )
function _Use_decl_annotations_ (line 825) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 878) | _Use_decl_annotations_
function HRESULT (line 896) | HRESULT CDXUTResourceCache::OnDestroyDevice()
function _Use_decl_annotations_ (line 908) | _Use_decl_annotations_
function HRESULT (line 939) | HRESULT CDXUTTextHelper::DrawFormattedTextLine( _In_z_ const WCHAR* strM...
function HRESULT (line 954) | HRESULT CDXUTTextHelper::DrawTextLine( _In_z_ const WCHAR* strMsg )
function _Use_decl_annotations_ (line 975) | _Use_decl_annotations_
function _Use_decl_annotations_ (line 991) | _Use_decl_annotations_
FILE: framework/d3d11/dxut/Optional/SDKmisc.h
type DXUTCache_Texture (line 22) | struct DXUTCache_Texture
function class (line 66) | class CDXUTTextHelper
FILE: third_party/assimp/include/assimp/Compiler/pstdint.h
type __int64 (line 474) | typedef __int64 int64_t;
type intmax_t (line 538) | typedef int64_t intmax_t;
type uintmax_t (line 539) | typedef uint64_t uintmax_t;
type intmax_t (line 555) | typedef int32_t intmax_t;
type uintmax_t (line 556) | typedef uint32_t uintmax_t;
type int_least8_t (line 580) | typedef int8_t int_least8_t;
type uint_least8_t (line 581) | typedef uint8_t uint_least8_t;
type int_least16_t (line 582) | typedef int16_t int_least16_t;
type uint_least16_t (line 583) | typedef uint16_t uint_least16_t;
type int_least32_t (line 584) | typedef int32_t int_least32_t;
type uint_least32_t (line 585) | typedef uint32_t uint_least32_t;
type int_least64_t (line 598) | typedef int64_t int_least64_t;
type uint_least64_t (line 599) | typedef uint64_t uint_least64_t;
type int_least8_t (line 619) | typedef int_least8_t int_fast8_t;
type uint_least8_t (line 620) | typedef uint_least8_t uint_fast8_t;
type int_least16_t (line 621) | typedef int_least16_t int_fast16_t;
type uint_least16_t (line 622) | typedef uint_least16_t uint_fast16_t;
type int_least32_t (line 623) | typedef int_least32_t int_fast32_t;
type uint_least32_t (line 624) | typedef uint_least32_t uint_fast32_t;
type int_least64_t (line 635) | typedef int_least64_t int_fast64_t;
type uint_least64_t (line 636) | typedef uint_least64_t uint_fast64_t;
FILE: third_party/assimp/include/assimp/DefaultLogger.hpp
type Assimp (line 51) | namespace Assimp {
class IOStream (line 53) | class IOStream
type LogStreamInfo (line 54) | struct LogStreamInfo
function DefaultLogger (line 72) | class ASSIMP_API DefaultLogger :
FILE: third_party/assimp/include/assimp/Exporter.hpp
type Assimp (line 53) | namespace Assimp {
class ExporterPimpl (line 54) | class ExporterPimpl
class IOSystem (line 55) | class IOSystem
class ASSIMP_API (line 77) | class ASSIMP_API
function Exporter (line 79) | class ASSIMP_API Exporter
function ExportProperties (line 323) | class ASSIMP_API ExportProperties
function aiExportDataBlob (line 491) | inline const aiExportDataBlob* Exporter :: ExportToBlob( const aiScen...
function aiReturn (line 497) | inline aiReturn Exporter :: Export( const aiScene* pScene, const std::...
FILE: third_party/assimp/include/assimp/IOStream.hpp
type Assimp (line 55) | namespace Assimp {
class ASSIMP_API (line 64) | class ASSIMP_API
FILE: third_party/assimp/include/assimp/IOSystem.hpp
type Assimp (line 59) | namespace Assimp {
class IOStream (line 60) | class IOStream
class ASSIMP_API (line 70) | class ASSIMP_API
function AI_FORCE_INLINE (line 203) | AI_FORCE_INLINE IOSystem::IOSystem() :
function AI_FORCE_INLINE (line 210) | AI_FORCE_INLINE IOSystem::~IOSystem()
function AI_FORCE_INLINE (line 222) | AI_FORCE_INLINE IOStream* IOSystem::Open(const std::string& pFile,
function AI_FORCE_INLINE (line 232) | AI_FORCE_INLINE bool IOSystem::Exists( const std::string& pFile) const
FILE: third_party/assimp/include/assimp/Importer.hpp
type Assimp (line 56) | namespace Assimp {
class Importer (line 59) | class Importer
class Exporter (line 60) | class Exporter
class IOStream (line 61) | class IOStream
class IOSystem (line 62) | class IOSystem
class ProgressHandler (line 63) | class ProgressHandler
class BaseImporter (line 71) | class BaseImporter
class BaseProcess (line 72) | class BaseProcess
class SharedPostProcessInfo (line 73) | class SharedPostProcessInfo
class BatchLoader (line 74) | class BatchLoader
class ImporterPimpl (line 78) | class ImporterPimpl
class ExporterPimpl (line 79) | class ExporterPimpl
function Importer (line 116) | class ASSIMP_API Importer {
function AI_FORCE_INLINE (line 639) | AI_FORCE_INLINE const aiScene* Importer::ReadFile( const std::string& ...
function AI_FORCE_INLINE (line 643) | AI_FORCE_INLINE void Importer::GetExtensionList(std::string& szOut) co...
function AI_FORCE_INLINE (line 649) | AI_FORCE_INLINE bool Importer::IsExtensionSupported(const std::string&...
type aiScene (line 84) | struct aiScene
type aiImporterDesc (line 87) | struct aiImporterDesc
type Assimp (line 90) | namespace Assimp {
class Importer (line 59) | class Importer
class Exporter (line 60) | class Exporter
class IOStream (line 61) | class IOStream
class IOSystem (line 62) | class IOSystem
class ProgressHandler (line 63) | class ProgressHandler
class BaseImporter (line 71) | class BaseImporter
class BaseProcess (line 72) | class BaseProcess
class SharedPostProcessInfo (line 73) | class SharedPostProcessInfo
class BatchLoader (line 74) | class BatchLoader
class ImporterPimpl (line 78) | class ImporterPimpl
class ExporterPimpl (line 79) | class ExporterPimpl
function Importer (line 116) | class ASSIMP_API Importer {
function AI_FORCE_INLINE (line 639) | AI_FORCE_INLINE const aiScene* Importer::ReadFile( const std::string& ...
function AI_FORCE_INLINE (line 643) | AI_FORCE_INLINE void Importer::GetExtensionList(std::string& szOut) co...
function AI_FORCE_INLINE (line 649) | AI_FORCE_INLINE bool Importer::IsExtensionSupported(const std::string&...
FILE: third_party/assimp/include/assimp/LogStream.hpp
type Assimp (line 47) | namespace Assimp {
class IOSystem (line 48) | class IOSystem
class ASSIMP_API (line 56) | class ASSIMP_API
FILE: third_party/assimp/include/assimp/Logger.hpp
type Assimp (line 48) | namespace Assimp {
class LogStream (line 49) | class LogStream
class ASSIMP_API (line 59) | class ASSIMP_API
type LogSeverity (line 70) | enum LogSeverity
type ErrorSeverity (line 84) | enum ErrorSeverity
FILE: third_party/assimp/include/assimp/NullLogger.hpp
type Assimp (line 49) | namespace Assimp {
function NullLogger (line 55) | class ASSIMP_API NullLogger
function OnInfo (line 66) | void OnInfo(const char* message) {
function OnWarn (line 71) | void OnWarn(const char* message) {
function OnError (line 76) | void OnError(const char* message) {
function attachStream (line 81) | bool attachStream(LogStream *pStream, unsigned int severity) {
function detatchStream (line 87) | bool detatchStream(LogStream *pStream, unsigned int severity) {
FILE: third_party/assimp/include/assimp/ProgressHandler.hpp
type Assimp (line 47) | namespace Assimp {
class ASSIMP_API (line 54) | class ASSIMP_API
function UpdateFileRead (line 99) | virtual void UpdateFileRead(int currentStep /*= 0*/, int numberOfSteps...
function UpdatePostProcess (line 113) | virtual void UpdatePostProcess(int currentStep /*= 0*/, int numberOfSt...
FILE: third_party/assimp/include/assimp/anim.h
type aiVectorKey (line 58) | struct aiVectorKey
function operator (line 92) | bool operator > (const aiVectorKey& o) const {
type aiQuatKey (line 101) | struct aiQuatKey
function operator (line 133) | bool operator > (const aiQuatKey& o) const {
type aiMeshKey (line 141) | struct aiMeshKey
function operator (line 177) | bool operator > (const aiMeshKey& o) const {
type aiAnimBehaviour (line 188) | enum aiAnimBehaviour
type aiMeshAnim (line 308) | struct aiMeshAnim
function if (line 340) | struct aiAnimation
function namespace (line 407) | namespace Assimp {
FILE: third_party/assimp/include/assimp/camera.h
type aiCamera (line 98) | struct aiCamera
FILE: third_party/assimp/include/assimp/cexport.h
type aiScene (line 56) | struct aiScene
type aiFileIO (line 57) | struct aiFileIO
type aiExportFormatDesc (line 64) | struct aiExportFormatDesc
type aiExportDataBlob (line 191) | struct aiExportDataBlob
FILE: third_party/assimp/include/assimp/cfileio.h
type aiFileIO (line 52) | struct aiFileIO
type aiFile (line 53) | struct aiFile
type aiReturn (line 60) | typedef aiReturn (*aiFileSeek)(C_STRUCT aiFile*, size_t, aiOrigin);
type aiFile (line 63) | typedef aiFile* (*aiFileOpenProc) (C_STRUCT aiFileIO*, const char*, con...
type aiFileIO (line 76) | struct aiFileIO
type aiFile (line 100) | struct aiFile
FILE: third_party/assimp/include/assimp/cimport.h
type aiScene (line 54) | struct aiScene
type aiFileIO (line 55) | struct aiFileIO
type aiLogStream (line 65) | struct aiLogStream
type aiPropertyStore (line 86) | struct aiPropertyStore { char sentinel; }
type aiBool (line 89) | typedef int aiBool;
FILE: third_party/assimp/include/assimp/color4.h
type aiColor4t (line 92) | typedef aiColor4t<float> aiColor4D;
type aiColor4D (line 96) | struct aiColor4D {
FILE: third_party/assimp/include/assimp/config.h
type aiComponent (line 383) | enum aiComponent
FILE: third_party/assimp/include/assimp/importerdesc.h
type aiImporterFlags (line 51) | enum aiImporterFlags
type aiImporterDesc (line 87) | struct aiImporterDesc
FILE: third_party/assimp/include/assimp/light.h
type aiLightSourceType (line 58) | enum aiLightSourceType
FILE: third_party/assimp/include/assimp/material.h
type aiTextureOp (line 77) | enum aiTextureOp
type aiTextureMapMode (line 108) | enum aiTextureMapMode
type aiTextureMapping (line 143) | enum aiTextureMapping
type aiTextureType (line 189) | enum aiTextureType
type aiShadingMode (line 303) | enum aiShadingMode
type aiTextureFlags (line 374) | enum aiTextureFlags
type aiBlendMode (line 420) | enum aiBlendMode
type aiPropertyTypeInfo (line 501) | enum aiPropertyTypeInfo
type aiMaterialProperty (line 560) | struct aiMaterialProperty
type ASSIMP_API (line 630) | struct ASSIMP_API
type aiMaterial (line 632) | struct aiMaterial
function aiReturn (line 1376) | inline aiReturn aiGetMaterialFloat(const aiMaterial* pMat,
function aiReturn (line 1414) | inline aiReturn aiGetMaterialInteger(const C_STRUCT aiMaterial* pMat,
FILE: third_party/assimp/include/assimp/matrix3x3.h
type aiMatrix3x3t (line 170) | typedef aiMatrix3x3t<float> aiMatrix3x3;
type aiMatrix3x3 (line 174) | struct aiMatrix3x3 {
FILE: third_party/assimp/include/assimp/matrix4x4.h
type aiMatrix4x4t (line 233) | typedef aiMatrix4x4t<float> aiMatrix4x4;
type aiMatrix4x4 (line 237) | struct aiMatrix4x4 {
FILE: third_party/assimp/include/assimp/mesh.h
function else (line 125) | struct aiFace
function operator (line 176) | bool operator== (const aiFace& o) const
function operator (line 190) | bool operator != (const aiFace& o) const
type aiVertexWeight (line 201) | struct aiVertexWeight
type aiBone (line 233) | struct aiBone
type aiPrimitiveType (line 287) | enum aiPrimitiveType
type aiAnimMesh (line 344) | struct aiAnimMesh
function HasVertexColors (line 433) | bool HasVertexColors( unsigned int pIndex) const {
function HasTextureCoords (line 440) | bool HasTextureCoords( unsigned int pIndex) const {
type aiMesh (line 467) | struct aiMesh
function HasVertexColors (line 693) | bool HasVertexColors( unsigned int pIndex) const
function HasTextureCoords (line 703) | bool HasTextureCoords( unsigned int pIndex) const
function GetNumUVChannels (line 712) | unsigned int GetNumUVChannels() const
FILE: third_party/assimp/include/assimp/metadata.h
type aiMetadataType (line 64) | typedef enum aiMetadataType
type aiMetadataEntry (line 87) | struct aiMetadataEntry
function aiMetadataType (line 106) | inline aiMetadataType GetAiType( bool ) { return AI_BOOL; }
function aiMetadataType (line 107) | inline aiMetadataType GetAiType( int ) { return AI_INT; }
function aiMetadataType (line 108) | inline aiMetadataType GetAiType( uint64_t ) { return AI_UINT64; }
function aiMetadataType (line 109) | inline aiMetadataType GetAiType( float ) { return AI_FLOAT; }
function aiMetadataType (line 110) | inline aiMetadataType GetAiType( aiString ) { return AI_AISTRING; }
function aiMetadataType (line 111) | inline aiMetadataType GetAiType( aiVector3D ) { return AI_AIVECTOR3D; }
type aiMetadata (line 126) | struct aiMetadata
function Get (line 228) | bool Get( const aiString& key, T& value )
function Get (line 238) | bool Get( const std::string& key, T& value ) {
FILE: third_party/assimp/include/assimp/port/AndroidJNI/AndroidJNIIOSystem.h
function namespace (line 53) | namespace Assimp {
FILE: third_party/assimp/include/assimp/postprocess.h
type aiPostProcessSteps (line 65) | enum aiPostProcessSteps
FILE: third_party/assimp/include/assimp/quaternion.h
type aiQuaterniont (line 115) | typedef aiQuaterniont<float> aiQuaternion;
type aiQuaternion (line 119) | struct aiQuaternion {
FILE: third_party/assimp/include/assimp/scene.h
type aiNode (line 71) | struct aiNode
function HasMaterials (line 275) | struct aiScene
FILE: third_party/assimp/include/assimp/texture.h
type aiTexel (line 80) | struct aiTexel
type aiTexture (line 120) | struct aiTexture
FILE: third_party/assimp/include/assimp/types.h
function namespace (line 71) | namespace Assimp {
type aiRay (line 140) | struct aiRay
function length (line 266) | aiString(const aiString& rOther) :
function explicit (line 276) | explicit aiString(const std::string& pString) :
function Set (line 285) | void Set( const std::string& pString) {
function Set (line 295) | void Set( const char* sz) {
function Append (line 328) | void Append (const char* app) {
function Clear (line 342) | void Clear () {
type aiReturn (line 373) | typedef enum aiReturn
type aiOrigin (line 403) | enum aiOrigin
type aiDefaultLogStream (line 427) | enum aiDefaultLogStream
FILE: third_party/assimp/include/assimp/vector2.h
type aiVector2D (line 105) | struct aiVector2D {
FILE: third_party/assimp/include/assimp/vector3.h
type aiVector3D (line 134) | struct aiVector3D {
Condensed preview — 256 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,396K chars).
[
{
"path": ".gitattributes",
"chars": 1023,
"preview": "# This is a windows-only project. Force CRLF.\r\n* text eol=crlf\r\n\r\n# Explicit settings for specific file types.\r\n*.h "
},
{
"path": ".gitignore",
"chars": 798,
"preview": "## Ignore Visual Studio temporary files, build results, etc.\r\n\r\n# User-specific files\r\n*.suo\r\n*.user\r\n\r\n# Build results\r"
},
{
"path": "CONTRIBUTING.md",
"chars": 7194,
"preview": "# Contributing to GPUOpen Effects\r\n\r\nThank you for your interest in GPUOpen Effects.\r\n\r\nContributions can be made by cre"
},
{
"path": "LICENSE.txt",
"chars": 1113,
"preview": "Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n\r\nPermission is hereby granted, free of charge, to"
},
{
"path": "README.md",
"chars": 5763,
"preview": "# AMD GeometryFX\r\n\r\n\r\nThe Geom"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2015.sln",
"chars": 4461,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2015.vcxproj",
"chars": 31579,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2015.vcxproj.filters",
"chars": 2023,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2017.filters",
"chars": 2023,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2017.sln",
"chars": 4461,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2017.vcxproj",
"chars": 31579,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_geometryfx/build/AMD_GeometryFX_2017.vcxproj.filters",
"chars": 2023,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_geometryfx/inc/AMD_GeometryFX.h",
"chars": 2511,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/inc/AMD_GeometryFX_Filtering.h",
"chars": 6746,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/inc/AMD_GeometryFX_Utility.h",
"chars": 1697,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/premake/premake5.lua",
"chars": 3659,
"preview": "_AMD_LIBRARY_NAME = \"GeometryFX\"\r\n_AMD_LIBRARY_NAME_ALL_CAPS = string.upper(_AMD_LIBRARY_NAME)\r\n\r\n-- Set _AMD_LIBRARY_NA"
},
{
"path": "amd_geometryfx/src/AMD_GeometryFX_Filtering.cpp",
"chars": 46202,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/AMD_GeometryFX_Internal.h",
"chars": 1556,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/AMD_GeometryFX_Utility.cpp",
"chars": 2669,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/GeometryFXMesh.cpp",
"chars": 1850,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/GeometryFXMesh.h",
"chars": 2401,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/GeometryFXMeshManager.cpp",
"chars": 17467,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/GeometryFXMeshManager.h",
"chars": 2692,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/GeometryFXUtility_Internal.cpp",
"chars": 2982,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/GeometryFXUtility_Internal.h",
"chars": 2415,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/Shaders/AMD_GeometryFX_Filtering.hlsl",
"chars": 11281,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx/src/Shaders/build/fxc_compile_geometryfx_all.bat",
"chars": 1481,
"preview": "@echo off\r\n\r\nREM Set this to point to the Windows SDK version where fxc is located\r\nREM Recommend Windows SDK 8.1 or hig"
},
{
"path": "amd_geometryfx/src/Shaders/inc/AMD_GeometryFX_ClearDrawIndirectArgsCS.inc",
"chars": 4322,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 10.1\r\n//\r\n//\r\n// Resource Bindings:\r\n//\r\n// Name "
},
{
"path": "amd_geometryfx/src/Shaders/inc/AMD_GeometryFX_DepthOnlyMultiIndirectVS.inc",
"chars": 15578,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 10.1\r\n//\r\n//\r\n// Buffer Definitions: \r\n//\r\n// cbuffer Fram"
},
{
"path": "amd_geometryfx/src/Shaders/inc/AMD_GeometryFX_DepthOnlyVS.inc",
"chars": 11117,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 10.1\r\n//\r\n//\r\n// Buffer Definitions: \r\n//\r\n// cbuffer Draw"
},
{
"path": "amd_geometryfx/src/Shaders/inc/AMD_GeometryFX_FilterCS.inc",
"chars": 58396,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 10.1\r\n//\r\n//\r\n// Buffer Definitions: \r\n//\r\n// cbuffer Fram"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2015.sln",
"chars": 3270,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2015.vcxproj",
"chars": 11158,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2015.vcxproj.filters",
"chars": 1088,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2017.filters",
"chars": 1088,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2017.sln",
"chars": 3270,
"preview": "\r\nMicrosoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\nProject(\"{8BC9CEB8-8B4A-11D0-8D11-00"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2017.vcxproj",
"chars": 11158,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_geometryfx_sample/build/GeometryFX_Sample_2017.vcxproj.filters",
"chars": 1088,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_geometryfx_sample/media/house.mtl",
"chars": 1112,
"preview": "# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware\r\n# File Created: 20.01.2016 10:45:58\r\n\r\nnewmtl wire_177088026"
},
{
"path": "amd_geometryfx_sample/media/readme.txt",
"chars": 188,
"preview": "The media files in the ui subfolder are from the Microsoft DirectX SDK Samples:\r\nhttps://github.com/walbourn/directx-sdk"
},
{
"path": "amd_geometryfx_sample/media/ui/MIT.txt",
"chars": 1148,
"preview": " The MIT License (MIT)\r\n\r\nCopyright (c) 2015 Microsoft Corp\r\n\r\nPermission is hereby grante"
},
{
"path": "amd_geometryfx_sample/premake/premake5.lua",
"chars": 3851,
"preview": "_AMD_LIBRARY_NAME = \"GeometryFX\"\r\n_AMD_LIBRARY_NAME_ALL_CAPS = string.upper(_AMD_LIBRARY_NAME)\r\n\r\n-- Set _AMD_LIBRARY_NA"
},
{
"path": "amd_geometryfx_sample/src/GeometryFX_Sample.cpp",
"chars": 54044,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_geometryfx_sample/src/ResourceFiles/GeometryFX_Sample.rc",
"chars": 1777,
"preview": "// Microsoft Visual C++ generated resource script.\r\n//\r\n#include \"resource.h\"\r\n\r\n#define APSTUDIO_READONLY_SYMBOLS\r\n////"
},
{
"path": "amd_geometryfx_sample/src/ResourceFiles/dpiaware.manifest",
"chars": 448,
"preview": "<?xml version=\"1.0\"?>\r\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\">\r\n <application xmlns=\""
},
{
"path": "amd_geometryfx_sample/src/ResourceFiles/resource.h",
"chars": 460,
"preview": "//{{NO_DEPENDENCIES}}\r\n// Microsoft Visual C++ generated include file.\r\n// Used by GeometryFX_Sample.rc\r\n//\r\n#define IDI"
},
{
"path": "amd_geometryfx_sample/src/Shaders/GeometryFX_Sample.hlsl",
"chars": 3350,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/ags_lib/.gitattributes",
"chars": 258,
"preview": "# This is a windows-only project. Force CRLF.\r\n* text eol=crlf\r\n\r\n# Explicit settings for specific file types.\r\n*.h "
},
{
"path": "amd_lib/ags_lib/CHANGELOG.md",
"chars": 827,
"preview": "# AMD AGS Library Changelog\r\n\r\n### v3.2.0 - 2016-02-12\r\n* Add ability to disable Crossfire\r\n * This is in addition to t"
},
{
"path": "amd_lib/ags_lib/LICENSE.txt",
"chars": 1113,
"preview": "Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n\r\nPermission is hereby granted, free of charge, to"
},
{
"path": "amd_lib/ags_lib/README.md",
"chars": 945,
"preview": "# AMD AGS Library\r\n\r\n\r\nThe AMD GPU"
},
{
"path": "amd_lib/ags_lib/inc/amd_ags.h",
"chars": 22035,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/.gitattributes",
"chars": 758,
"preview": "# This is a windows-only project. Force CRLF.\r\n* text eol=crlf\r\n\r\n# Explicit settings for specific file types.\r\n*.h "
},
{
"path": "amd_lib/shared/.gitignore",
"chars": 596,
"preview": "## Ignore Visual Studio temporary files, build results, etc.\r\n\r\n# User-specific files\r\n*.suo\r\n*.user\r\n\r\n# Build results\r"
},
{
"path": "amd_lib/shared/LICENSE.txt",
"chars": 1113,
"preview": "Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n\r\nPermission is hereby granted, free of charge, to"
},
{
"path": "amd_lib/shared/README.md",
"chars": 580,
"preview": "# AMD LIB\r\n\r\nThe AMD LIB project contains common code shared by [GPUOpen Effects](https://github.com/GPUOpen-Effects/) l"
},
{
"path": "amd_lib/shared/common/inc/AMD_Types.h",
"chars": 9359,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_2015.vcxproj",
"chars": 16645,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_2015.vcxproj.filters",
"chars": 4952,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_2017.vcxproj",
"chars": 16645,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_2017.vcxproj.filters",
"chars": 4952,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_Minimal_2015.vcxproj",
"chars": 16667,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_Minimal_2015.vcxproj.filters",
"chars": 4296,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_Minimal_2017.vcxproj",
"chars": 16667,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "amd_lib/shared/d3d11/build/AMD_LIB_Minimal_2017.vcxproj.filters",
"chars": 4296,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "amd_lib/shared/d3d11/inc/AMD_LIB.h",
"chars": 1970,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/premake/premake5.lua",
"chars": 2432,
"preview": "dofile (\"../../../../premake/amd_premake_util.lua\")\r\n\r\nworkspace \"AMD_LIB\"\r\n configurations { \"Debug\", \"Release\", \"Rel"
},
{
"path": "amd_lib/shared/d3d11/premake/premake5_minimal.lua",
"chars": 2478,
"preview": "dofile (\"../../../../premake/amd_premake_util.lua\")\r\n\r\nworkspace \"AMD_LIB_Minimal\"\r\n configurations { \"Debug\", \"Releas"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Buffer.cpp",
"chars": 6108,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Buffer.h",
"chars": 2644,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Common.cpp",
"chars": 1701,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Common.h",
"chars": 1534,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_FullscreenPass.cpp",
"chars": 10712,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_FullscreenPass.h",
"chars": 4499,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Rand.cpp",
"chars": 1611,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Rand.h",
"chars": 1384,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_SaveRestoreState.cpp",
"chars": 17341,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_SaveRestoreState.h",
"chars": 7864,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Serialize.cpp",
"chars": 6396,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Serialize.h",
"chars": 3003,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Texture2D.cpp",
"chars": 17970,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_Texture2D.h",
"chars": 3040,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_UnitCube.cpp",
"chars": 7749,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/AMD_UnitCube.h",
"chars": 2458,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/DirectXTex/DDSTextureLoader.cpp",
"chars": 67187,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DDSTextureLoader.cpp\r"
},
{
"path": "amd_lib/shared/d3d11/src/DirectXTex/DDSTextureLoader.h",
"chars": 8023,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DDSTextureLoader.h\r\n/"
},
{
"path": "amd_lib/shared/d3d11/src/DirectXTex/MIT.txt",
"chars": 1148,
"preview": " The MIT License (MIT)\r\n\r\nCopyright (c) 2015 Microsoft Corp\r\n\r\nPermission is hereby grante"
},
{
"path": "amd_lib/shared/d3d11/src/DirectXTex/ReadMe.txt",
"chars": 16199,
"preview": "DIRECTX TEXTURE LIBRARY (DirectXTex)\r\n------------------------------------\r\n\r\nCopyright (c) Microsoft Corporation. All r"
},
{
"path": "amd_lib/shared/d3d11/src/DirectXTex/ScreenGrab.cpp",
"chars": 43973,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: ScreenGrab.cpp\r\n//\r\n/"
},
{
"path": "amd_lib/shared/d3d11/src/DirectXTex/ScreenGrab.h",
"chars": 1985,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: ScreenGrab.h\r\n//\r\n// "
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/AMD_FullscreenPass.hlsl",
"chars": 3853,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/AMD_Quaternion.hlsl",
"chars": 3113,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/AMD_UnitCube.hlsl",
"chars": 3302,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/SeparableFilter/FilterCommon.hlsl",
"chars": 6696,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/SeparableFilter/FilterKernel.hlsl",
"chars": 6604,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/SeparableFilter/HorizontalFilter.hlsl",
"chars": 5804,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/SeparableFilter/VerticalFilter.hlsl",
"chars": 5797,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/build/fxc_compile_fullscreen_pass.bat",
"chars": 755,
"preview": "fxc.exe /nologo /T vs_5_0 /E vsFullscreen /O1 /Fh ..\\inc\\VS_FULLSCREEN.inc /Vn VS_FULLSCREEN_Data "
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/build/fxc_compile_unit_cube.bat",
"chars": 399,
"preview": "fxc.exe /nologo /T vs_5_0 /E vsUnitCube /O1 /Fh ..\\inc\\VS_UNIT_CUBE.inc /Vn VS_UNIT_CUBE_Data ..\\AMD_Un"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/GS_FULLSCREEN_INDEX_RT.inc",
"chars": 7281,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n//\r\n// Input signature:\r\n//\r\n// Na"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/PS_FULLSCREEN.inc",
"chars": 5466,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n// Resource Bindings:\r\n//\r\n// Name"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/PS_UNIT_CUBE.inc",
"chars": 6768,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n// Buffer Definitions: \r\n//\r\n// cb"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/VS_CLIP_SPACE_CUBE.inc",
"chars": 16856,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n// Buffer Definitions: \r\n//\r\n// cb"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/VS_FULLSCREEN.inc",
"chars": 6861,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n//\r\n// Input signature:\r\n//\r\n// Na"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/VS_FULLSCREEN_INDEX_RT.inc",
"chars": 7604,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n//\r\n// Input signature:\r\n//\r\n// Na"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/VS_SCREENQUAD.inc",
"chars": 8380,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n//\r\n// Input signature:\r\n//\r\n// Na"
},
{
"path": "amd_lib/shared/d3d11/src/Shaders/inc/VS_UNIT_CUBE.inc",
"chars": 16850,
"preview": "#if 0\r\n//\r\n// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384\r\n//\r\n//\r\n// Buffer Definitions: \r\n//\r\n// cb"
},
{
"path": "amd_lib/shared/d3d12/inc/d3dx12.h",
"chars": 58776,
"preview": "//*********************************************************\r\n//\r\n// Copyright (c) Microsoft. All rights reserved.\r\n// Th"
},
{
"path": "framework/d3d11/amd_sdk/.gitattributes",
"chars": 580,
"preview": "# This is a windows-only project. Force CRLF.\r\n* text eol=crlf\r\n\r\n# Explicit settings for specific file types.\r\n*.h "
},
{
"path": "framework/d3d11/amd_sdk/.gitignore",
"chars": 596,
"preview": "## Ignore Visual Studio temporary files, build results, etc.\r\n\r\n# User-specific files\r\n*.suo\r\n*.user\r\n\r\n# Build results\r"
},
{
"path": "framework/d3d11/amd_sdk/LICENSE.txt",
"chars": 1113,
"preview": "Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n\r\nPermission is hereby granted, free of charge, to"
},
{
"path": "framework/d3d11/amd_sdk/README.md",
"chars": 673,
"preview": "# AMD SDK\r\n<img src=\"media/amd_logo_black.png\" width=\"512\" height=\"123\" />\r\n\r\nThe AMD SDK project contains utility code "
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_2015.vcxproj",
"chars": 6791,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_2015.vcxproj.filters",
"chars": 3170,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_2017.vcxproj",
"chars": 6791,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_2017.vcxproj.filters",
"chars": 3170,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_Minimal_2015.vcxproj",
"chars": 6793,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_Minimal_2015.vcxproj.filters",
"chars": 3170,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_Minimal_2017.vcxproj",
"chars": 6793,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/amd_sdk/build/AMD_SDK_Minimal_2017.vcxproj.filters",
"chars": 3170,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "framework/d3d11/amd_sdk/inc/AMD_SDK.h",
"chars": 2875,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/inc/ShaderCacheSampleHelper.h",
"chars": 3078,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/premake/premake5.lua",
"chars": 1447,
"preview": "dofile (\"../../../../premake/amd_premake_util.lua\")\r\n\r\nworkspace \"AMD_SDK\"\r\n configurations { \"Debug\", \"Release\" }\r\n "
},
{
"path": "framework/d3d11/amd_sdk/premake/premake5_minimal.lua",
"chars": 1487,
"preview": "dofile (\"../../../../premake/amd_premake_util.lua\")\r\n\r\nworkspace \"AMD_SDK_Minimal\"\r\n configurations { \"Debug\", \"Releas"
},
{
"path": "framework/d3d11/amd_sdk/src/AMD_Mesh.cpp",
"chars": 8804,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/AMD_Mesh.h",
"chars": 3006,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Geometry.cpp",
"chars": 4435,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Geometry.h",
"chars": 1677,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/HUD.cpp",
"chars": 6790,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/HUD.h",
"chars": 3369,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/HelperFunctions.cpp",
"chars": 27107,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/HelperFunctions.h",
"chars": 7092,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/LineRender.cpp",
"chars": 7414,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/LineRender.h",
"chars": 2883,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Magnify.cpp",
"chars": 18323,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Magnify.h",
"chars": 3933,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/MagnifyTool.cpp",
"chars": 10240,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/MagnifyTool.h",
"chars": 3822,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/ShaderCache.cpp",
"chars": 129666,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/ShaderCache.h",
"chars": 21055,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/ShaderCacheSampleHelper.cpp",
"chars": 11348,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Shaders/Line.hlsl",
"chars": 1620,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Shaders/Sprite.hlsl",
"chars": 8017,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Sprite.cpp",
"chars": 32725,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Sprite.h",
"chars": 4771,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Timer.cpp",
"chars": 21534,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/Timer.h",
"chars": 25456,
"preview": "//\r\n// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.\r\n//\r\n// Permission is hereby granted, free o"
},
{
"path": "framework/d3d11/amd_sdk/src/crc.cpp",
"chars": 5911,
"preview": "/**********************************************************************\r\n *\r\n * Filename: crc.c\r\n * \r\n * Description:"
},
{
"path": "framework/d3d11/amd_sdk/src/crc.h",
"chars": 1883,
"preview": "/**********************************************************************\r\n *\r\n * Filename: crc.h\r\n * \r\n * Description:"
},
{
"path": "framework/d3d11/dxut/.gitattributes",
"chars": 580,
"preview": "# This is a windows-only project. Force CRLF.\r\n* text eol=crlf\r\n\r\n# Explicit settings for specific file types.\r\n*.h "
},
{
"path": "framework/d3d11/dxut/.gitignore",
"chars": 584,
"preview": "## Ignore Visual Studio temporary files, build results, etc.\r\n\r\n# User-specific files\r\n*.suo\r\n*.user\r\n\r\n# Build results\r"
},
{
"path": "framework/d3d11/dxut/Core/DDSTextureLoader.cpp",
"chars": 67136,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DDSTextureLoader.cpp\r"
},
{
"path": "framework/d3d11/dxut/Core/DDSTextureLoader.h",
"chars": 8023,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DDSTextureLoader.h\r\n/"
},
{
"path": "framework/d3d11/dxut/Core/DXUT.cpp",
"chars": 200489,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUT.cpp\r\n//\r\n// THIS"
},
{
"path": "framework/d3d11/dxut/Core/DXUT.h",
"chars": 17473,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUT.h\r\n//\r\n// THIS C"
},
{
"path": "framework/d3d11/dxut/Core/DXUTDevice11.cpp",
"chars": 51209,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTDevice11.cpp\r\n//\r"
},
{
"path": "framework/d3d11/dxut/Core/DXUTDevice11.h",
"chars": 9149,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTDevice11.h\r\n//\r\n/"
},
{
"path": "framework/d3d11/dxut/Core/DXUT_2015.vcxproj",
"chars": 5883,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/dxut/Core/DXUT_2017.vcxproj",
"chars": 5883,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/dxut/Core/DXUTmisc.cpp",
"chars": 48953,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTMisc.cpp\r\n//\r\n// "
},
{
"path": "framework/d3d11/dxut/Core/DXUTmisc.h",
"chars": 13768,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTMisc.h\r\n//\r\n// He"
},
{
"path": "framework/d3d11/dxut/Core/ScreenGrab.cpp",
"chars": 43497,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: ScreenGrab.cpp\r\n//\r\n/"
},
{
"path": "framework/d3d11/dxut/Core/ScreenGrab.h",
"chars": 1860,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: ScreenGrab.h\r\n//\r\n// "
},
{
"path": "framework/d3d11/dxut/Core/WICTextureLoader.cpp",
"chars": 37012,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: WICTextureLoader.cpp\r"
},
{
"path": "framework/d3d11/dxut/Core/WICTextureLoader.h",
"chars": 7295,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: WICTextureLoader.h\r\n/"
},
{
"path": "framework/d3d11/dxut/Core/dxerr.cpp",
"chars": 185893,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXErr.cpp\r\n//\r\n// Dir"
},
{
"path": "framework/d3d11/dxut/Core/dxerr.h",
"chars": 3172,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXErr.h\r\n//\r\n// Direc"
},
{
"path": "framework/d3d11/dxut/Core/premake5.lua",
"chars": 1198,
"preview": "dofile (\"../../../../premake/amd_premake_util.lua\")\r\n\r\nworkspace \"DXUT\"\r\n configurations { \"Debug\", \"Release\" }\r\n pl"
},
{
"path": "framework/d3d11/dxut/MIT.txt",
"chars": 1148,
"preview": " The MIT License (MIT)\r\n\r\nCopyright (c) 2015 Microsoft Corp\r\n\r\nPermission is hereby grante"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTLockFreePipe.h",
"chars": 9799,
"preview": "//--------------------------------------------------------------------------------------\r\n// DXUTLockFreePipe.h\r\n//\r\n// "
},
{
"path": "framework/d3d11/dxut/Optional/DXUTOpt_2015.vcxproj",
"chars": 6219,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTOpt_2017.vcxproj",
"chars": 6219,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micro"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTcamera.cpp",
"chars": 47124,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTcamera.cpp\r\n//\r\n/"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTcamera.h",
"chars": 20440,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: Camera.h\r\n//\r\n// Help"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTgui.cpp",
"chars": 219806,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTgui.cpp\r\n//\r\n// T"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTgui.h",
"chars": 43373,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTgui.h\r\n//\r\n// THI"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTguiIME.cpp",
"chars": 37511,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTguiIME.cpp\r\n//\r\n/"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTguiIME.h",
"chars": 6046,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTguiIME.h\r\n//\r\n// "
},
{
"path": "framework/d3d11/dxut/Optional/DXUTres.cpp",
"chars": 844639,
"preview": "//----------------------------------------------------------------------------\r\n// File: DXUTRes.cpp\r\n//\r\n// THIS CODE A"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTres.h",
"chars": 742,
"preview": "//----------------------------------------------------------------------------\r\n// File: dxutres.h\r\n//\r\n// Functions to "
},
{
"path": "framework/d3d11/dxut/Optional/DXUTsettingsdlg.cpp",
"chars": 62546,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTSettingsDlg.cpp\r\n"
},
{
"path": "framework/d3d11/dxut/Optional/DXUTsettingsdlg.h",
"chars": 7838,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: DXUTSettingsDlg.h\r\n//"
},
{
"path": "framework/d3d11/dxut/Optional/ImeUi.cpp",
"chars": 116958,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: ImeUi.cpp\r\n//\r\n// THI"
},
{
"path": "framework/d3d11/dxut/Optional/ImeUi.h",
"chars": 4357,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: ImeUi.h\r\n//\r\n// THIS "
},
{
"path": "framework/d3d11/dxut/Optional/SDKmesh.cpp",
"chars": 48912,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: SDKMesh.cpp\r\n//\r\n// T"
},
{
"path": "framework/d3d11/dxut/Optional/SDKmesh.h",
"chars": 17170,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: SDKMesh.h\r\n//\r\n// Dis"
},
{
"path": "framework/d3d11/dxut/Optional/SDKmisc.cpp",
"chars": 36158,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: SDKmisc.cpp\r\n//\r\n// V"
},
{
"path": "framework/d3d11/dxut/Optional/SDKmisc.h",
"chars": 6125,
"preview": "//--------------------------------------------------------------------------------------\r\n// File: SDKMisc.h\r\n//\r\n// Var"
},
{
"path": "framework/d3d11/dxut/Optional/premake5.lua",
"chars": 1246,
"preview": "dofile (\"../../../../premake/amd_premake_util.lua\")\r\n\r\nworkspace \"DXUTOpt\"\r\n configurations { \"Debug\", \"Release\" }\r\n "
},
{
"path": "framework/d3d11/dxut/ReadMe.txt",
"chars": 5399,
"preview": "Modified version of Microsoft DXUT. The unmodified version can be found on GitHub - https://github.com/Microsoft/DXUT\r\n\r"
},
{
"path": "premake/LICENSE.txt",
"chars": 1562,
"preview": "Copyright (c) 2003-2015 Jason Perkins and individual contributors.\r\nAll rights reserved.\r\n\r\nRedistribution and use in so"
},
{
"path": "premake/amd_premake_util.lua",
"chars": 4951,
"preview": "-- amd_premake_util.lua\r\n-- utility code shared by AMD build scripts\r\n\r\n-- _ACTION is a premake global variable and for "
},
{
"path": "premake/gpuopen_fx_update_vs_files.bat",
"chars": 2717,
"preview": "@echo off\r\n\r\nif %1.==. goto usage\r\n\r\nset arg1=%1\r\n\r\n:: strip off relative path\r\nif \"%arg1:~0,3%\" == \"..\\\" set arg1=%arg1"
},
{
"path": "premake/gpuopen_geometryfx_update_vs_files.bat",
"chars": 68,
"preview": "@echo off\r\ncall gpuopen_fx_update_vs_files.bat amd_geometryfx\r\npause"
},
{
"path": "third_party/assimp/.gitattributes",
"chars": 344,
"preview": "# This is a windows-only project. Force CRLF.\r\n* text eol=crlf\r\n\r\n# Explicit settings for specific file types.\r\n*.h "
},
{
"path": "third_party/assimp/.gitignore",
"chars": 1091,
"preview": ".idea\r\n.project\r\n*.kdev4*\r\n\r\n# Visual Studio\r\n*.ncb\r\n\r\n\r\n# Output\r\nbin/\r\n\r\n\r\n# Generated\r\nassimp.pc\r\nrevision.h\r\ncontrib"
},
{
"path": "third_party/assimp/CHANGES",
"chars": 5491,
"preview": "----------------------------------------------------------------------\r\nCHANGELOG\r\n-------------------------------------"
},
{
"path": "third_party/assimp/CREDITS",
"chars": 4308,
"preview": "===============================================================\r\nOpen Asset Import Library (Assimp)\r\nDevelopers and Cont"
},
{
"path": "third_party/assimp/LICENSE",
"chars": 3892,
"preview": "Open Asset Import Library (assimp)\r\n\r\nCopyright (c) 2006-2015, assimp team\r\nAll rights reserved.\r\n\r\nRedistribution and u"
},
{
"path": "third_party/assimp/README",
"chars": 15,
"preview": "See Readme.md\r\n"
}
]
// ... and 56 more files (download for full content)
About this extraction
This page contains the full source code of the GPUOpen-Effects/GeometryFX GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 256 files (73.1 MB), approximately 1.1M tokens, and a symbol index with 1213 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.