Showing preview only (2,829K chars total). Download the full file or copy to clipboard to get everything.
Repository: jbarczak/Pyramid
Branch: master
Commit: 397118665161
Files: 357
Total size: 2.6 MB
Directory structure:
gitextract_1e9qi61g/
├── .gitattributes
├── .gitignore
├── .gitmodules
├── Distribute.bat
├── LICENSE.txt
├── README.md
├── shims/
│ └── atidxx_shim/
│ ├── ShimDLL.cpp
│ ├── ShimDLL.sln
│ ├── ShimDLL.vcxproj
│ └── elf.h
├── src/
│ ├── App.config
│ ├── Backends/
│ │ ├── AMDDriverBackend.cs
│ │ ├── AMDDriverResultsPanel.Designer.cs
│ │ ├── AMDDriverResultsPanel.cs
│ │ ├── AMDDriverResultsPanel.resx
│ │ ├── CodeXLAnalysisPanel.Designer.cs
│ │ ├── CodeXLAnalysisPanel.cs
│ │ ├── CodeXLAnalysisPanel.resx
│ │ ├── CodeXLBackend.cs
│ │ ├── CodeXLResultsPanel.Designer.cs
│ │ ├── CodeXLResultsPanel.cs
│ │ ├── CodeXLResultsPanel.resx
│ │ ├── FXCBackend.cs
│ │ ├── FXCResultsPanel.Designer.cs
│ │ ├── FXCResultsPanel.cs
│ │ ├── FXCResultsPanel.resx
│ │ ├── GLSLOptimizerBackend.cs
│ │ ├── GLSlangBackend.cs
│ │ ├── GLSlangResultsPanel.Designer.cs
│ │ ├── GLSlangResultsPanel.cs
│ │ ├── GLSlangResultsPanel.resx
│ │ ├── IBackend.cs
│ │ ├── IntelShaderAnalyzerBackend.cs
│ │ ├── IntelShaderAnalyzerResultsPanel.Designer.cs
│ │ ├── IntelShaderAnalyzerResultsPanel.cs
│ │ ├── IntelShaderAnalyzerResultsPanel.resx
│ │ ├── MaliSCBackend.cs
│ │ ├── MaliSCResultsPanel.Designer.cs
│ │ ├── MaliSCResultsPanel.cs
│ │ ├── MaliSCResultsPanel.resx
│ │ ├── PVRResultsPanel.Designer.cs
│ │ ├── PVRResultsPanel.cs
│ │ ├── PVRResultsPanel.resx
│ │ ├── PowerVRBackend.cs
│ │ └── RGABackend.cs
│ ├── GLSLOptimizer.cs
│ ├── GLSLTypes.cs
│ ├── GLSlang.cs
│ ├── HLSLTypes.cs
│ ├── IAMDDriver.cs
│ ├── ICSharpCode.TextEditor/
│ │ └── Project/
│ │ ├── Configuration/
│ │ │ └── AssemblyInfo.cs
│ │ ├── GlobalAssemblyInfo.cs
│ │ ├── ICSharpCode.TextEditor.csproj
│ │ ├── Resources/
│ │ │ ├── CPP-Mode.xshd
│ │ │ ├── GLSL-Mode.xshd
│ │ │ ├── HLSL-Mode.xshd
│ │ │ ├── ICSharpCode.TextEditor.snk
│ │ │ ├── Mode.xsd
│ │ │ ├── RightArrow.cur
│ │ │ └── SyntaxModes.xml
│ │ └── Src/
│ │ ├── Actions/
│ │ │ ├── BookmarkActions.cs
│ │ │ ├── CaretActions.cs
│ │ │ ├── ClipBoardActions.cs
│ │ │ ├── FindReplaceAction.cs
│ │ │ ├── FoldActions.cs
│ │ │ ├── FormatActions.cs
│ │ │ ├── HomeEndActions.cs
│ │ │ ├── IEditAction.cs
│ │ │ ├── MiscActions.cs
│ │ │ └── SelectionActions.cs
│ │ ├── Document/
│ │ │ ├── AbstractSegment.cs
│ │ │ ├── BookmarkManager/
│ │ │ │ ├── Bookmark.cs
│ │ │ │ ├── BookmarkEventHandler.cs
│ │ │ │ ├── BookmarkManager.cs
│ │ │ │ └── BookmarkManagerMemento.cs
│ │ │ ├── DefaultDocument.cs
│ │ │ ├── DefaultTextEditorProperties.cs
│ │ │ ├── DocumentEventArgs.cs
│ │ │ ├── DocumentFactory.cs
│ │ │ ├── FoldingStrategy/
│ │ │ │ ├── FoldMarker.cs
│ │ │ │ ├── FoldingManager.cs
│ │ │ │ ├── IFoldingStrategy.cs
│ │ │ │ └── IndentFoldingStrategy.cs
│ │ │ ├── FormattingStrategy/
│ │ │ │ ├── DefaultFormattingStrategy.cs
│ │ │ │ └── IFormattingStrategy.cs
│ │ │ ├── HighlightingStrategy/
│ │ │ │ ├── DefaultHighlightingStrategy.cs
│ │ │ │ ├── FontContainer.cs
│ │ │ │ ├── HighlightBackground.cs
│ │ │ │ ├── HighlightColor.cs
│ │ │ │ ├── HighlightInfo.cs
│ │ │ │ ├── HighlightRuleSet.cs
│ │ │ │ ├── HighlightingColorNotFoundException.cs
│ │ │ │ ├── HighlightingDefinitionInvalidException.cs
│ │ │ │ ├── HighlightingDefinitionParser.cs
│ │ │ │ ├── HighlightingManager.cs
│ │ │ │ ├── HighlightingStrategyFactory.cs
│ │ │ │ ├── IHighlightingStrategy.cs
│ │ │ │ ├── NextMarker.cs
│ │ │ │ ├── PrevMarker.cs
│ │ │ │ ├── Span.cs
│ │ │ │ ├── SpanStack.cs
│ │ │ │ ├── SyntaxModes/
│ │ │ │ │ ├── FileSyntaxModeProvider.cs
│ │ │ │ │ ├── ISyntaxModeFileProvider.cs
│ │ │ │ │ ├── ResourceSyntaxModeProvider.cs
│ │ │ │ │ └── SyntaxMode.cs
│ │ │ │ └── TextWord.cs
│ │ │ ├── IDocument.cs
│ │ │ ├── ISegment.cs
│ │ │ ├── ITextEditorProperties.cs
│ │ │ ├── LineManager/
│ │ │ │ ├── DeferredEventList.cs
│ │ │ │ ├── LineManager.cs
│ │ │ │ ├── LineManagerEventArgs.cs
│ │ │ │ ├── LineSegment.cs
│ │ │ │ └── LineSegmentTree.cs
│ │ │ ├── MarkerStrategy/
│ │ │ │ ├── MarkerStrategy.cs
│ │ │ │ └── TextMarker.cs
│ │ │ ├── Selection/
│ │ │ │ ├── ColumnRange.cs
│ │ │ │ ├── DefaultSelection.cs
│ │ │ │ ├── ISelection.cs
│ │ │ │ └── SelectionManager.cs
│ │ │ ├── TextAnchor.cs
│ │ │ ├── TextBufferStrategy/
│ │ │ │ ├── GapTextBufferStrategy.cs
│ │ │ │ ├── ITextBufferStrategy.cs
│ │ │ │ └── StringTextBufferStrategy.cs
│ │ │ ├── TextLocation.cs
│ │ │ └── TextUtilities.cs
│ │ ├── Gui/
│ │ │ ├── AbstractMargin.cs
│ │ │ ├── BracketHighlighter.cs
│ │ │ ├── BrushRegistry.cs
│ │ │ ├── Caret.cs
│ │ │ ├── CompletionWindow/
│ │ │ │ ├── AbstractCompletionWindow.cs
│ │ │ │ ├── CodeCompletionListView.cs
│ │ │ │ ├── CodeCompletionWindow.cs
│ │ │ │ ├── DeclarationViewWindow.cs
│ │ │ │ ├── ICompletionData.cs
│ │ │ │ └── ICompletionDataProvider.cs
│ │ │ ├── DrawableLine.cs
│ │ │ ├── FindReplaceForm/
│ │ │ │ ├── FindAndReplaceForm.Designer.cs
│ │ │ │ ├── FindAndReplaceForm.cs
│ │ │ │ └── FindAndReplaceForm.resx
│ │ │ ├── FoldMargin.cs
│ │ │ ├── GutterMargin.cs
│ │ │ ├── HRuler.cs
│ │ │ ├── IconBarMargin.cs
│ │ │ ├── Ime.cs
│ │ │ ├── InsightWindow/
│ │ │ │ ├── IInsightDataProvider.cs
│ │ │ │ └── InsightWindow.cs
│ │ │ ├── TextArea.cs
│ │ │ ├── TextAreaClipboardHandler.cs
│ │ │ ├── TextAreaControl.cs
│ │ │ ├── TextAreaDragDropHandler.cs
│ │ │ ├── TextAreaMouseHandler.cs
│ │ │ ├── TextAreaUpdate.cs
│ │ │ ├── TextEditorControl.cs
│ │ │ ├── TextEditorControlBase.cs
│ │ │ ├── TextView.cs
│ │ │ └── ToolTipRequestEventArgs.cs
│ │ ├── Undo/
│ │ │ ├── IUndoableOperation.cs
│ │ │ ├── UndoQueue.cs
│ │ │ ├── UndoStack.cs
│ │ │ ├── UndoableDelete.cs
│ │ │ ├── UndoableInsert.cs
│ │ │ └── UndoableReplace.cs
│ │ └── Util/
│ │ ├── AugmentableRedBlackTree.cs
│ │ ├── CheckedList.cs
│ │ ├── FileReader.cs
│ │ ├── LoggingService.cs
│ │ ├── LookupTable.cs
│ │ ├── MouseWheelHandler.cs
│ │ ├── RedBlackTreeIterator.cs
│ │ ├── RtfWriter.cs
│ │ ├── TextUtility.cs
│ │ ├── TipPainter.cs
│ │ ├── TipPainterTools.cs
│ │ ├── TipSection.cs
│ │ ├── TipSpacer.cs
│ │ ├── TipSplitter.cs
│ │ ├── TipText.cs
│ │ └── WeakCollection.cs
│ ├── IIncludeHandler.cs
│ ├── IWrapper.cs
│ ├── IncludeHandler.cs
│ ├── LanguageTypes.cs
│ ├── Languages/
│ │ ├── GLSLLanguage.cs
│ │ ├── GLSLOptionsPanel.Designer.cs
│ │ ├── GLSLOptionsPanel.cs
│ │ ├── GLSLOptionsPanel.resx
│ │ ├── HLSLLanguage.cs
│ │ ├── HLSLOptionsPanel.Designer.cs
│ │ ├── HLSLOptionsPanel.cs
│ │ ├── HLSLOptionsPanel.resx
│ │ ├── ICompileOptionsPanel.cs
│ │ └── ILanguage.cs
│ ├── MainUI/
│ │ ├── AboutBox.Designer.cs
│ │ ├── AboutBox.cs
│ │ ├── AboutBox.resx
│ │ ├── MainForm.Designer.cs
│ │ ├── MainForm.cs
│ │ ├── MainForm.resx
│ │ ├── OptionsScreen.Designer.cs
│ │ ├── OptionsScreen.cs
│ │ └── OptionsScreen.resx
│ ├── Options.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Pyramid.csproj
│ ├── Pyramid.sln
│ ├── PyramidTypes.csproj
│ ├── SPIRV.cs
│ ├── Scrutinizer/
│ │ ├── Analysis/
│ │ │ └── Algorithms.cs
│ │ └── UI/
│ │ ├── CFGWidget.Designer.cs
│ │ ├── CFGWidget.cs
│ │ ├── CFGWidget.resx
│ │ ├── InstructionWidget.Designer.cs
│ │ ├── InstructionWidget.cs
│ │ ├── InstructionWidget.resx
│ │ ├── ParameterWidget.Designer.cs
│ │ ├── ParameterWidget.cs
│ │ ├── ScrutinizerForm.Designer.cs
│ │ ├── ScrutinizerForm.cs
│ │ └── ScrutinizerForm.resx
│ ├── ScrutinizerTypes.cs
│ └── Wrapper/
│ ├── AMDAsic_Impl.cpp
│ ├── AMDAsic_Impl.h
│ ├── AMDDriver_Impl.cpp
│ ├── AMDDriver_Impl.h
│ ├── AMDShader_Impl.cpp
│ ├── AMDShader_Impl.h
│ ├── D3DCompiler_Impl.cpp
│ ├── D3DCompiler_Impl.h
│ ├── DXILCompiler_Impl.cpp
│ ├── DXILCompiler_Impl.h
│ ├── GCN1Decoder.cpp
│ ├── GCN1Decoder.h
│ ├── GCN3Decoder.cpp
│ ├── GCN3Decoder.h
│ ├── GCNBufferedPrinter.h
│ ├── GCNDecoder.cpp
│ ├── GCNDecoder.h
│ ├── GCNDisassembler.cpp
│ ├── GCNDisassembler.h
│ ├── GCNEnums.cpp
│ ├── GCNEnums.h
│ ├── GCNIsa.cpp
│ ├── GCNIsa.h
│ ├── GCNSimulator.cpp
│ ├── GCNSimulator.h
│ ├── GLSLOpt_Impl.cpp
│ ├── GLSLOpt_Impl.h
│ ├── GLSlang_Impl.cpp
│ ├── GLSlang_Impl.h
│ ├── GLSlang_Stubs.cpp
│ ├── Scrutinizer_GCN.cpp
│ ├── Scrutinizer_GCN.h
│ ├── Utilities.h
│ ├── Wrapper.cpp
│ ├── Wrapper.vcxproj
│ ├── Wrapper.vcxproj.filters
│ ├── amd-codexl-analyzer/
│ │ ├── Common/
│ │ │ └── Src/
│ │ │ └── DeviceInfo/
│ │ │ ├── DeviceInfo.h
│ │ │ ├── DeviceInfoUtils.cpp
│ │ │ └── DeviceInfoUtils.h
│ │ └── CommonProjects/
│ │ └── AMDTBackend/
│ │ └── Include/
│ │ └── Common/
│ │ ├── AmdDxGsaCompile.h
│ │ └── asic_reg/
│ │ ├── atiid.h
│ │ ├── ci_id.h
│ │ ├── cz_id.h
│ │ ├── evergreen_id.h
│ │ ├── kv_id.h
│ │ ├── northernisland_id.h
│ │ ├── si_id.h
│ │ ├── sumo_id.h
│ │ ├── tn_id.h
│ │ └── vi_id.h
│ ├── dxc/
│ │ ├── HLSL/
│ │ │ ├── DXIL.h
│ │ │ ├── DxilCBuffer.h
│ │ │ ├── DxilCompType.h
│ │ │ ├── DxilConstants.h
│ │ │ ├── DxilContainer.h
│ │ │ ├── DxilGenerationPass.h
│ │ │ ├── DxilInstructions.h
│ │ │ ├── DxilInterpolationMode.h
│ │ │ ├── DxilMetadataHelper.h
│ │ │ ├── DxilModule.h
│ │ │ ├── DxilOperations.h
│ │ │ ├── DxilPipelineStateValidation.h
│ │ │ ├── DxilResource.h
│ │ │ ├── DxilResourceBase.h
│ │ │ ├── DxilRootSignature.h
│ │ │ ├── DxilSampler.h
│ │ │ ├── DxilSemantic.h
│ │ │ ├── DxilShaderModel.h
│ │ │ ├── DxilSigPoint.h
│ │ │ ├── DxilSignature.h
│ │ │ ├── DxilSignatureAllocator.h
│ │ │ ├── DxilSignatureElement.h
│ │ │ ├── DxilSpanAllocator.h
│ │ │ ├── DxilTypeSystem.h
│ │ │ ├── DxilValidation.h
│ │ │ ├── HLMatrixLowerHelper.h
│ │ │ ├── HLMatrixLowerPass.h
│ │ │ ├── HLModule.h
│ │ │ ├── HLOperationLower.h
│ │ │ ├── HLOperationLowerExtension.h
│ │ │ ├── HLOperations.h
│ │ │ ├── HLResource.h
│ │ │ ├── HLSLExtensionsCodegenHelper.h
│ │ │ └── ReducibilityAnalysis.h
│ │ ├── HlslIntrinsicOp.h
│ │ ├── Support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── DxcLangExtensionsHelper.h
│ │ │ ├── ErrorCodes.h
│ │ │ ├── FileIOHelper.h
│ │ │ ├── Global.h
│ │ │ ├── HLSLOptions.h
│ │ │ ├── HLSLOptions.td
│ │ │ ├── Unicode.h
│ │ │ ├── WinIncludes.h
│ │ │ ├── dxcapi.impl.h
│ │ │ ├── dxcapi.use.h
│ │ │ ├── exception.h
│ │ │ └── microcom.h
│ │ ├── Tracing/
│ │ │ ├── CMakeLists.txt
│ │ │ └── dxcetw.man
│ │ ├── dxcapi.h
│ │ ├── dxcapi.internal.h
│ │ ├── dxcisense.h
│ │ └── dxctools.h
│ └── elf.h
└── test/
├── ShadowMaps.txt
├── branches_test
├── cs_addreturntest
├── cs_append
├── cs_barrier_test
├── cs_cull
├── cs_raster.hlsl
├── cs_raycaster
├── cs_sepgauss
├── include/
│ ├── include_d.txt
│ └── include_e.txt
├── include_a.txt
├── include_b.txt
├── include_root.txt
├── manual_trilerp
├── manual_trilerp_glsl
├── matthias_bug
├── mips
├── moblur_reduc
├── ps_lighting.txt
├── ps_lighting_normalmap
├── ps_ubershader
├── trivial_test_shaders.txt
├── trivial_vs_glsl
├── vs_rigid
└── vs_skinning
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
bin/* binary
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
src/.vs/*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Roslyn cache directories
*.ide/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
# RIA/Silverlight projects
Generated_Code/
# 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
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# =========================
# Operating System Files
# =========================
# OSX
# =========================
.DS_Store
.AppleDouble
.LSOverride
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Windows
# =========================
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msm
*.msp
# Windows shortcuts
*.lnk
================================================
FILE: .gitmodules
================================================
[submodule "src/Wrapper/glsl-optimizer"]
path = src/Wrapper/glsl-optimizer
url = https://github.com/jbarczak/glsl-optimizer
[submodule "src/Wrapper/GLSlang"]
path = src/Wrapper/GLSlang
url = https://github.com/jbarczak/GLSlang
================================================
FILE: Distribute.bat
================================================
echo off
mkdir Pyramid
mkdir Pyramid\bin
mkdir Pyramid\src
mkdir Pyramid\src\Backends
mkdir Pyramid\src\Languages
mkdir Pyramid\src\MainUI
mkdir Pyramid\src\Properties
mkdir Pyramid\src\Wrapper
mkdir Pyramid\src\Wrapper\glsl-optimizer
mkdir Pyramid\src\Wrapper\GLSlang
cp -r bin/* Pyramid/bin
cp -r LICENSE.txt Pyramid/LICENSE.txt
cp -r README.txt Pyramid/README.txt
cp src/*.cs Pyramid/src
cp src/*.resx Pyramid/src
cp src/Backends/*.cs Pyramid/src/Backends
cp src/Backends/*.resx Pyramid/src/Backends
cp src/Languages/*.cs Pyramid/src/Languages
cp src/Languages/*.resx Pyramid/src/Languages
cp src/MainUI/*.cs Pyramid/src/MainUI
cp src/MainUI/*.resx Pyramid/src/MainUI
cp src/App.config Pyramid/src/App.config
cp src/*.csproj Pyramid/src
cp src/Pyramid.sln Pyramid/src/Pyramid.sln
cp -r src/Properties/* Pyramid/src/Properties
cp src/Wrapper/*.cpp Pyramid/src/Wrapper
cp src/Wrapper/*.h Pyramid/src/Wrapper
cp src/Wrapper/Wrapper.vcxproj Pyramid/src/Wrapper
cp src/Wrapper/Wrapper.vcxproj.filters Pyramid/src/Wrapper
cp -r src/Wrapper/glsl-optimizer Pyramid/src/Wrapper
cp src/Wrapper/GLSlang/glslang_vs2013.vcxproj Pyramid/src/Wrapper/GLSlang/glslang_vs2013.vcxproj
cp -r src/Wrapper/GLSlang/glslang Pyramid/src/Wrapper/GLSlang
cp -r src/Wrapper/GLSlang/OGLCompilersDLL Pyramid/src/Wrapper/GLSlang
cp -r src/Wrapper/GLSlang/tools Pyramid/src/Wrapper/GLSlang
================================================
FILE: LICENSE.txt
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
================================================
FILE: README.md
================================================
# Pyramid
Pyramid is a free, open GUI tool for offline shader validation and analysis. The UI takes HLSL or GLSL as input, and runs them through various shader
compilers and static analyzers.
Here is Pyramid, showing HLSL shader compiled and disassembled for AMD's GCN, and a GLSL shader compiled and disassembled for PowerVR 6 *(click for full-size image)*:
[](doc/ui-hlsl-amddxx.png?raw=1)
[](doc/ui-glsl-powervr.png?raw=1)
Currently, Pyramid supports these tools:
* HLSL:
* Microsoft D3D compiler *(d3dcompiler_47)*: for showing D3D assembly.
* AMD DXX driver *(Catalyst 14.9)*, used for GCN disassembly and [shader execution simulation](http://www.joshbarczak.com/blog/?p=823).
* AMD [CodeXL analyzer](http://developer.amd.com/tools-and-sdks/opencl-zone/codexl/) *(version 1.5)*.
* glslang HLSL front end (2017 January build)
* [DXC] (https://github.com/microsoft/DirectXShadercompiler)
* [Intel Shader Analyzer](http://github.com/GameTechDev/IntelShaderAnalyzer)
* GLSL:
* Khronos reference [glslang](https://github.com/KhronosGroup/glslang) validator *(2017 January build)*.
* Imagination [PowerVR Rogue compiler](https://community.imgtec.com/developers/powervr/tools/pvrshadereditor/) *(version 3.4)*.
* ARM [Mali offline compiler](http://malideveloper.arm.com/resources/tools/mali-offline-compiler/) *(version 4.6)*.
* [glsl-optimizer](https://github.com/aras-p/glsl-optimizer) *(2015 November build)*.
All the above tools are included under bin/ folder for convenience. These are all publicly available binaries, but I do not own them, maintain them,
and am not responsible for them. If you like you can use the Options screen to point Pyramid at different versions of the tools.
Pyramid is intended to eventually support arbitrary languages and glue together tools and disassemblers from all over
the graphics world.
IHVs: You want developers scrutinizing the ISA for your GPUs. You know you do :) I will work with you to incorporate your disassemblers into this tool. I am willing to jump through hoops to make this happen, just tell me what I need to do.
## Obtaining Pyramid
The best way to obtain a copy is to ask github to download a zip of the repository. The `bin` directory will be updated periodically with an up to date binary.
Pyramid is built against .NET framework 4.5 and runs on Windows. If you don't have it, you need to go get it. Otherwise, just put the contents of `bin` wherever
you like, there is no installer.
Pyramid will create a configuration file under `AppData\Local\Pyramid`. At runtime, it will also create and delete temporary files in this location. Apart from that,
there are no other changes made to the system. In particular, there is no registry nonsense.
Pyramid is distributed as is. There is no warranty of any kind. I will not guarantee timely support, but I will be happy to accept bug fixes, patches, or contributions.
[License](LICENSE.txt) is GPL.
You may send constructive feedback to: jbarcz1@gmail.com
## Building it Yourself
Due to my use of submodules, downloading a zip will not get you the full source.
The best way to obtain the full source is to install git, open a shell, and type:
git clone --recurse https://github.com/jbarczak/Pyramid
This will ensure that all of the submodules are downloaded. github does not include submodules when you download a zip.
I use and recommend MSysGit: https://msysgit.github.io/
Pyramid was developed using VC++ 2013 express edition (Desktop). It runs correctly on my machine (Windows 8.1 with VC++ express installed).
The build products will be copied from `src/bin` into `bin` on each compile.
By default, Pyramid uses relative paths to look for all of the external binaries. For debugging, it's best to point the working directory at `bin` so that they will be found. Alternatively, you can use the options menu to replace the paths with absolutes.
================================================
FILE: shims/atidxx_shim/ShimDLL.cpp
================================================
#define _CRT_SECURE_NO_DEPRECATE
#include <Windows.h>
#include <stdio.h>
#include <stdarg.h>
#include <malloc.h>
#include "elf.h"
#include <time.h>
#include "d3d11tokenizedprogramformat.hpp"
struct esi_struct;
struct edi_struct;
#define CALL __cdecl
typedef DWORD (CALL *COMPILE_SHADER)( esi_struct*, edi_struct* );
typedef void (CALL *FREE_SHADER) (void*);
static FILE* g_pLog = 0;
static COMPILE_SHADER g_pCompileShader = 0;
static FREE_SHADER g_pFreeShader = 0;
static HMODULE g_hAMDDriver = 0;
static CRITICAL_SECTION g_Lock;
class ScopedLock
{
public:
ScopedLock() { EnterCriticalSection(&g_Lock); }
~ScopedLock() { LeaveCriticalSection(&g_Lock); }
};
void Log( const char* Format, ... )
{
va_list vl;
va_start(vl,Format);
int n = _vscprintf( Format, vl );
char* p = (char*) malloc( n+1 );
vsprintf(p,Format,vl);
printf(p);
OutputDebugStringA(p);
if( g_pLog )
fprintf( g_pLog, p );
free(p);
va_end(vl);
}
enum
{
INVALID_ARG = 0x80070057,
UNSPECIFIED_ERROR = 0x80004005,
};
struct esi_struct
{
DWORD d0; // esi Two dwords here that get passed into a call (pointer and size)? asic info?
DWORD d1; // esi+4
DWORD* pShaderBlob; // esi+8 If this is zero, return error ... pointer to D3D bytecode?
DWORD nShaderBlobLengthInBytes; // esi+10h. If this is non-zero, go to (53581b4e) (jumps over the esi+14h test)
void * oddball; // esi+14h. If this is non-zero, error, but only if esi+10 is also
DWORD mystery0;
void Print( )
{
Log( "esi_struct at: 0x%08x { 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x }\n",
this, d0,d1,pShaderBlob,nShaderBlobLengthInBytes,
oddball, mystery0 );
}
};
struct edi_struct
{
DWORD size; // 12
Elf32_Ehdr* pHeader;
DWORD nDataSize;
void Print( )
{
Log("edi_struct at (0x%08x): { 0x%08x 0x%08x 0x%08x }\n", this, size, pHeader,nDataSize );
}
void PrintSections( )
{
char* pHeaderBytes = (char*)pHeader;
Elf32_Shdr* pSections = (Elf32_Shdr*) (pHeaderBytes + pHeader->e_shoff);
Elf32_Shdr* pStringTable = pSections + pHeader->e_shstrndx;
char* pElfStringTable = pHeaderBytes + pStringTable->sh_offset;
for( DWORD i=0; i<pHeader->e_shnum; i++ )
{
DWORD nString = pSections[i].sh_name;
char* p = pElfStringTable + pSections[i].sh_name;
char* pSectionData = pHeaderBytes + pSections[i].sh_offset;
Log("ELF Section: %u named: %s (%u bytes)\n", i, p, pSections[i].sh_size );
}
}
void PrintGoryDetails( )
{
char* pHeaderBytes = (char*)pHeader;
Elf32_Shdr* pSections = (Elf32_Shdr*) (pHeaderBytes + pHeader->e_shoff);
Elf32_Shdr* pStringTable = pSections + pHeader->e_shstrndx;
char* pElfStringTable = pHeaderBytes + pStringTable->sh_offset;
for( DWORD i=0; i<pHeader->e_shnum; i++ )
{
DWORD nString = pSections[i].sh_name;
char* p = pElfStringTable + pSections[i].sh_name;
char* pSectionData = pHeaderBytes + pSections[i].sh_offset;
Log("ELF Section: %u named: %s (%u bytes)\n", i, p, pSections[i].sh_size );
Log("********************\n");
if( pSections[i].sh_size % 4 == 0 )
{
for( DWORD k=0; k<pSections[i].sh_size; k += 4 )
Log( "%08x\n", *((DWORD*)(pSectionData+k)) );
}
Log("ASCII: \"");
for( DWORD k=0; k<pSections[i].sh_size; k++ )
Log( "%c", pSectionData[k] );
Log("\"\n");
}
}
};
extern "C" {
static HRESULT Test( esi_struct* esi, edi_struct* edi )
{
const size_t PAD_SIZE = 2048;
unsigned char* p = (unsigned char*) malloc( PAD_SIZE );
for( size_t i=0; i<PAD_SIZE; i++ )
p[i] = rand();
size_t offs = rand() % (PAD_SIZE-(sizeof(edi_struct)+sizeof(esi_struct)));
edi_struct* new_edi = (edi_struct*) (p+offs);
esi_struct* new_esi = (esi_struct*) (new_edi+1);
*new_edi = *edi;
*new_esi = *esi;
HRESULT h = g_pCompileShader(new_esi,new_edi);
if( !SUCCEEDED(h) )
Log(" FAIL\n");
*edi = *new_edi;
free(p);
return h;
}
__declspec(dllexport) DWORD CALL AmdDxGsaCompileShader( esi_struct* esi, edi_struct* edi )
{
//edi_struct first_one = *edi;
//g_pCompileShader(esi,&first_one);
//for( int i=0; i<10000; i++ )
//{
// edi_struct current = *edi;
// Test(esi,¤t);
// if( current.nDataSize != first_one.nDataSize || memcmp(current.pHeader,first_one.pHeader,current.nDataSize) != 0 )
// Log("Results differ\n");
// g_pFreeShader( current.pHeader);
//}
//*edi = first_one;
//return S_OK;
HRESULT h;
Log("Asic numbers: %u,%u\n", esi->d0, esi->d1);
h = g_pCompileShader(esi,edi);
return h;
}
__declspec(dllexport) void CALL AmdDxGsaFreeCompiledShader( void* p )
{
ScopedLock l;
if( g_pFreeShader )
g_pFreeShader(p);
}
}
BOOL WINAPI DllMain(
_In_ HINSTANCE hinstDLL,
_In_ DWORD fdwReason,
_In_ LPVOID lpvReserved
)
{
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
{
InitializeCriticalSection(&g_Lock);
g_pLog = fopen("ShimLog.txt", "a" );
if( !g_pLog )
Log("Failed to open log\n");
HMODULE hAMDDriver = LoadLibrary( "real_driver.dll" );
if( !hAMDDriver )
return UNSPECIFIED_ERROR;
FARPROC pCompile = GetProcAddress( hAMDDriver, "AmdDxGsaCompileShader" );
FARPROC pFree = GetProcAddress( hAMDDriver, "AmdDxGsaFreeCompiledShader" );
if( !pCompile || !pFree )
{
FreeLibrary(hAMDDriver);
return FALSE;
}
g_pCompileShader = (COMPILE_SHADER) pCompile;
g_pFreeShader = (FREE_SHADER) pFree;
Log("**************************************************************************\n");
Log("Pyramid driver shim has loaded\n");
Log("Command line: %s\n", GetCommandLineA() );
}
break;
case DLL_PROCESS_DETACH:
DeleteCriticalSection( &g_Lock );
if( g_hAMDDriver )
{
FreeLibrary(g_hAMDDriver);
g_pFreeShader=0;
g_pCompileShader=0;
g_hAMDDriver=0;
Log("Pyramid driver shim has unloaded\n");
}
if( g_pLog )
{
fclose(g_pLog);
g_pLog=0;
}
break;
}
return TRUE;
}
================================================
FILE: shims/atidxx_shim/ShimDLL.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 2013 for Windows Desktop
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ShimDLL", "ShimDLL.vcxproj", "{FCD07E16-50F2-49AF-BF11-F50A9FBAA5AC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FCD07E16-50F2-49AF-BF11-F50A9FBAA5AC}.Debug|Win32.ActiveCfg = Debug|Win32
{FCD07E16-50F2-49AF-BF11-F50A9FBAA5AC}.Debug|Win32.Build.0 = Debug|Win32
{FCD07E16-50F2-49AF-BF11-F50A9FBAA5AC}.Release|Win32.ActiveCfg = Release|Win32
{FCD07E16-50F2-49AF-BF11-F50A9FBAA5AC}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: shims/atidxx_shim/ShimDLL.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{FCD07E16-50F2-49AF-BF11-F50A9FBAA5AC}</ProjectGuid>
<RootNamespace>ShimDLL</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='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)'=='Release|Win32'">
<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)'=='Debug|Win32'">
<TargetName>atidxx32</TargetName>
<OutDir>C:\Users\jbarczak\Documents\Projects\Blog\reverse_engineering_gsa\bin</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>atidxx32</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ShimDLL.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="elf.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: shims/atidxx_shim/elf.h
================================================
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
#ifndef _SYS_ELF_H
#define _SYS_ELF_H
#include <inttypes.h>
/* Type for a 16-bit quantity. */
typedef uint16_t Elf32_Half;
typedef uint16_t Elf64_Half;
/* Types for signed and unsigned 32-bit quantities. */
typedef uint32_t Elf32_Word;
typedef int32_t Elf32_Sword;
typedef uint32_t Elf64_Word;
typedef int32_t Elf64_Sword;
/* Types for signed and unsigned 64-bit quantities. */
typedef uint64_t Elf32_Xword;
typedef int64_t Elf32_Sxword;
typedef uint64_t Elf64_Xword;
typedef int64_t Elf64_Sxword;
/* Type of addresses. */
typedef uint32_t Elf32_Addr;
typedef uint64_t Elf64_Addr;
/* Type of file offsets. */
typedef uint32_t Elf32_Off;
typedef uint64_t Elf64_Off;
#ifdef __cplusplus
extern "C" {
#endif
#define ELF32_FSZ_ADDR 4
#define ELF32_FSZ_HALF 2
#define ELF32_FSZ_OFF 4
#define ELF32_FSZ_SWORD 4
#define ELF32_FSZ_WORD 4
#define ELF64_FSZ_ADDR 8
#define ELF64_FSZ_HALF 2
#define ELF64_FSZ_OFF 8
#define ELF64_FSZ_SWORD 4
#define ELF64_FSZ_WORD 4
#define ELF64_FSZ_SXWORD 8
#define ELF64_FSZ_XWORD 8
/*
* "Enumerations" below use ...NUM as the number of
* values in the list. It should be 1 greater than the
* highest "real" value.
*/
/*
* ELF header
*/
#define EI_NIDENT 16
typedef struct {
unsigned char e_ident[EI_NIDENT]; /* ident bytes */
Elf32_Half e_type; /* file type */
Elf32_Half e_machine; /* target machine */
Elf32_Word e_version; /* file version */
Elf32_Addr e_entry; /* start address */
Elf32_Off e_phoff; /* phdr file offset */
Elf32_Off e_shoff; /* shdr file offset */
Elf32_Word e_flags; /* file flags */
Elf32_Half e_ehsize; /* sizeof ehdr */
Elf32_Half e_phentsize; /* sizeof phdr */
Elf32_Half e_phnum; /* number phdrs */
Elf32_Half e_shentsize; /* sizeof shdr */
Elf32_Half e_shnum; /* number shdrs */
Elf32_Half e_shstrndx; /* shdr string index */
} Elf32_Ehdr;
#define EI_MAG0 0 /* e_ident[] indexes */
#define EI_MAG1 1
#define EI_MAG2 2
#define EI_MAG3 3
#define EI_CLASS 4 /* File class */
#define EI_DATA 5 /* Data encoding */
#define EI_VERSION 6 /* File version */
#define EI_OSABI 7 /* Operating system/ABI identification */
#define EI_ABIVERSION 8 /* ABI version */
#define EI_PAD 9 /* Start of padding bytes */
#define ELFMAG0 0x7f /* EI_MAG */
#define ELFMAG1 'E'
#define ELFMAG2 'L'
#define ELFMAG3 'F'
#define ELFMAG "\177ELF"
#define SELFMAG 4
#define ELFCLASSNONE 0 /* EI_CLASS */
#define ELFCLASS32 1
#define ELFCLASS64 2
#define ELFCLASSNUM 3
#define ELFDATANONE 0 /* EI_DATA */
#define ELFDATA2LSB 1
#define ELFDATA2MSB 2
#define ELFDATANUM 3
#define ET_NONE 0 /* e_type */
#define ET_REL 1
#define ET_EXEC 2
#define ET_DYN 3
#define ET_CORE 4
#define ET_NUM 5
#define ET_LOOS 0xfe00 /* OS specific range */
#define ET_LOSUNW 0xfeff
#define ET_SUNWPSEUDO 0xfeff
#define ET_HISUNW 0xfeff
#define ET_HIOS 0xfeff
#define ET_LOPROC 0xff00 /* processor specific range */
#define ET_HIPROC 0xffff
#define ET_LOPROC 0xff00 /* processor specific range */
#define ET_HIPROC 0xffff
#define EM_NONE 0 /* e_machine */
#define EM_M32 1 /* AT&T WE 32100 */
#define EM_SPARC 2 /* Sun SPARC */
#define EM_386 3 /* Intel 80386 */
#define EM_68K 4 /* Motorola 68000 */
#define EM_88K 5 /* Motorola 88000 */
#define EM_486 6 /* Intel 80486 */
#define EM_860 7 /* Intel i860 */
#define EM_MIPS 8 /* MIPS RS3000 Big-Endian */
#define EM_S370 9 /* IBM System/370 Processor */
#define EM_MIPS_RS3_LE 10 /* MIPS RS3000 Little-Endian */
#define EM_RS6000 11 /* RS6000 */
#define EM_UNKNOWN12 12
#define EM_UNKNOWN13 13
#define EM_UNKNOWN14 14
#define EM_PA_RISC 15 /* PA-RISC */
#define EM_PARISC EM_PA_RISC /* Alias: GNU compatibility */
#define EM_nCUBE 16 /* nCUBE */
#define EM_VPP500 17 /* Fujitsu VPP500 */
#define EM_SPARC32PLUS 18 /* Sun SPARC 32+ */
#define EM_960 19 /* Intel 80960 */
#define EM_PPC 20 /* PowerPC */
#define EM_PPC64 21 /* 64-bit PowerPC */
#define EM_S390 22 /* IBM System/390 Processor */
#define EM_UNKNOWN22 EM_S390 /* Alias: Older published name */
#define EM_UNKNOWN23 23
#define EM_UNKNOWN24 24
#define EM_UNKNOWN25 25
#define EM_UNKNOWN26 26
#define EM_UNKNOWN27 27
#define EM_UNKNOWN28 28
#define EM_UNKNOWN29 29
#define EM_UNKNOWN30 30
#define EM_UNKNOWN31 31
#define EM_UNKNOWN32 32
#define EM_UNKNOWN33 33
#define EM_UNKNOWN34 34
#define EM_UNKNOWN35 35
#define EM_V800 36 /* NEX V800 */
#define EM_FR20 37 /* Fujitsu FR20 */
#define EM_RH32 38 /* TRW RH-32 */
#define EM_RCE 39 /* Motorola RCE */
#define EM_ARM 40 /* Advanced RISC Marchines ARM */
#define EM_ALPHA 41 /* Digital Alpha */
#define EM_SH 42 /* Hitachi SH */
#define EM_SPARCV9 43 /* Sun SPARC V9 (64-bit) */
#define EM_TRICORE 44 /* Siemens Tricore embedded processor */
#define EM_ARC 45 /* Argonaut RISC Core, */
/* Argonaut Technologies Inc. */
#define EM_H8_300 46 /* Hitachi H8/300 */
#define EM_H8_300H 47 /* Hitachi H8/300H */
#define EM_H8S 48 /* Hitachi H8S */
#define EM_H8_500 49 /* Hitachi H8/500 */
#define EM_IA_64 50 /* Intel IA64 */
#define EM_MIPS_X 51 /* Stanford MIPS-X */
#define EM_COLDFIRE 52 /* Motorola ColdFire */
#define EM_68HC12 53 /* Motorola M68HC12 */
#define EM_MMA 54 /* Fujitsu MMA Mulimedia Accelerator */
#define EM_PCP 55 /* Siemens PCP */
#define EM_NCPU 56 /* Sony nCPU embedded RISC processor */
#define EM_NDR1 57 /* Denso NDR1 microprocessor */
#define EM_STARCORE 58 /* Motorola Star*Core processor */
#define EM_ME16 59 /* Toyota ME16 processor */
#define EM_ST100 60 /* STMicroelectronics ST100 processor */
#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ */
/* embedded processor family */
#define EM_AMD64 62 /* AMDs x86-64 architecture */
#define EM_X86_64 EM_AMD64 /* (compatibility) */
#define EM_PDSP 63 /* Sony DSP Processor */
#define EM_UNKNOWN64 64
#define EM_UNKNOWN65 65
#define EM_FX66 66 /* Siemens FX66 microcontroller */
#define EM_ST9PLUS 67 /* STMicroelectronics ST9+8/16 bit */
/* microcontroller */
#define EM_ST7 68 /* STMicroelectronics ST7 8-bit */
/* microcontroller */
#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */
#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */
#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */
#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */
#define EM_SVX 73 /* Silicon Graphics SVx */
#define EM_ST19 74 /* STMicroelectronics ST19 8-bit */
/* microcontroller */
#define EM_VAX 75 /* Digital VAX */
#define EM_CRIS 76 /* Axis Communications 32-bit */
/* embedded processor */
#define EM_JAVELIN 77 /* Infineon Technologies 32-bit */
/* embedded processor */
#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
#define EM_MMIX 80 /* Donald Knuth's educational */
/* 64-bit processor */
#define EM_HUANY 81 /* Harvard University */
/* machine-independent */
/* object files */
#define EM_PRISM 82 /* SiTera Prism */
#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
#define EM_FR30 84 /* Fujitsu FR30 */
#define EM_D10V 85 /* Mitsubishi D10V */
#define EM_D30V 86 /* Mitsubishi D30V */
#define EM_V850 87 /* NEC v850 */
#define EM_M32R 88 /* Mitsubishi M32R */
#define EM_MN10300 89 /* Matsushita MN10300 */
#define EM_MN10200 90 /* Matsushita MN10200 */
#define EM_PJ 91 /* picoJava */
#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
#define EM_XTENSA 94 /* Tensilica Xtensa architecture */
#define EM_NUM 95
#define EV_NONE 0 /* e_version, EI_VERSION */
#define EV_CURRENT 1
#define EV_NUM 2
#define ELFOSABI_NONE 0 /* No extensions or unspecified */
#define ELFOSABI_SYSV ELFOSABI_NONE
#define ELFOSABI_HPUX 1 /* Hewlett-Packard HP-UX */
#define ELFOSABI_NETBSD 2 /* NetBSD */
#define ELFOSABI_LINUX 3 /* Linux */
#define ELFOSABI_UNKNOWN4 4
#define ELFOSABI_UNKNOWN5 5
#define ELFOSABI_SOLARIS 6 /* Sun Solaris */
#define ELFOSABI_AIX 7 /* AIX */
#define ELFOSABI_IRIX 8 /* IRIX */
#define ELFOSABI_FREEBSD 9 /* FreeBSD */
#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX */
#define ELFOSABI_MODESTO 11 /* Novell Modesto */
#define ELFOSABI_OPENBSD 12 /* Open BSD */
#define ELFOSABI_OPENVMS 13 /* Open VMS */
#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */
#define ELFOSABI_AROS 15 /* Amiga Research OS */
#define ELFOSABI_ARM 97 /* ARM */
#define ELFOSABI_STANDALONE 255 /* standalone (embedded) application */
/*
* Program header
*/
typedef struct {
Elf32_Word p_type; /* entry type */
Elf32_Off p_offset; /* file offset */
Elf32_Addr p_vaddr; /* virtual address */
Elf32_Addr p_paddr; /* physical address */
Elf32_Word p_filesz; /* file size */
Elf32_Word p_memsz; /* memory size */
Elf32_Word p_flags; /* entry flags */
Elf32_Word p_align; /* memory/file alignment */
} Elf32_Phdr;
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf64_Word p_type; /* entry type */
Elf64_Word p_flags; /* entry flags */
Elf64_Off p_offset; /* file offset */
Elf64_Addr p_vaddr; /* virtual address */
Elf64_Addr p_paddr; /* physical address */
Elf64_Xword p_filesz; /* file size */
Elf64_Xword p_memsz; /* memory size */
Elf64_Xword p_align; /* memory/file alignment */
} Elf64_Phdr;
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
#define PT_NULL 0 /* p_type */
#define PT_LOAD 1
#define PT_DYNAMIC 2
#define PT_INTERP 3
#define PT_NOTE 4
#define PT_SHLIB 5
#define PT_PHDR 6
#define PT_TLS 7
#define PT_NUM 8
#define PT_LOOS 0x60000000 /* OS specific range */
/*
* Note: The amd64 psABI defines that the UNWIND program header
* should reside in the OS specific range of the program
* headers.
*/
#define PT_SUNW_UNWIND 0x6464e550 /* amd64 UNWIND program header */
#define PT_GNU_EH_FRAME PT_SUNW_UNWIND
#define PT_LOSUNW 0x6ffffffa
#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
#define PT_SUNWSTACK 0x6ffffffb /* describes the stack segment */
#define PT_SUNWDTRACE 0x6ffffffc /* private */
#define PT_SUNWCAP 0x6ffffffd /* hard/soft capabilities segment */
#define PT_HISUNW 0x6fffffff
#define PT_HIOS 0x6fffffff
#define PT_LOPROC 0x70000000 /* processor specific range */
#define PT_HIPROC 0x7fffffff
#define PF_R 0x4 /* p_flags */
#define PF_W 0x2
#define PF_X 0x1
#define PF_MASKOS 0x0ff00000 /* OS specific values */
#define PF_MASKPROC 0xf0000000 /* processor specific values */
#define PF_SUNW_FAILURE 0x00100000 /* mapping absent due to failure */
#define PN_XNUM 0xffff /* extended program header index */
/*
* Section header
*/
typedef struct {
Elf32_Word sh_name; /* section name */
Elf32_Word sh_type; /* SHT_... */
Elf32_Word sh_flags; /* SHF_... */
Elf32_Addr sh_addr; /* virtual address */
Elf32_Off sh_offset; /* file offset */
Elf32_Word sh_size; /* section size */
Elf32_Word sh_link; /* misc info */
Elf32_Word sh_info; /* misc info */
Elf32_Word sh_addralign; /* memory alignment */
Elf32_Word sh_entsize; /* entry size if table */
} Elf32_Shdr;
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf64_Word sh_name; /* section name */
Elf64_Word sh_type; /* SHT_... */
Elf64_Xword sh_flags; /* SHF_... */
Elf64_Addr sh_addr; /* virtual address */
Elf64_Off sh_offset; /* file offset */
Elf64_Xword sh_size; /* section size */
Elf64_Word sh_link; /* misc info */
Elf64_Word sh_info; /* misc info */
Elf64_Xword sh_addralign; /* memory alignment */
Elf64_Xword sh_entsize; /* entry size if table */
} Elf64_Shdr;
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
#define SHT_NULL 0 /* sh_type */
#define SHT_PROGBITS 1
#define SHT_SYMTAB 2
#define SHT_STRTAB 3
#define SHT_RELA 4
#define SHT_HASH 5
#define SHT_DYNAMIC 6
#define SHT_NOTE 7
#define SHT_NOBITS 8
#define SHT_REL 9
#define SHT_SHLIB 10
#define SHT_DYNSYM 11
#define SHT_UNKNOWN12 12
#define SHT_UNKNOWN13 13
#define SHT_INIT_ARRAY 14
#define SHT_FINI_ARRAY 15
#define SHT_PREINIT_ARRAY 16
#define SHT_GROUP 17
#define SHT_SYMTAB_SHNDX 18
#define SHT_NUM 19
/* Solaris ABI specific values */
#define SHT_LOOS 0x60000000 /* OS specific range */
#define SHT_LOSUNW 0x6ffffff1
#define SHT_SUNW_symsort 0x6ffffff1
#define SHT_SUNW_tlssort 0x6ffffff2
#define SHT_SUNW_LDYNSYM 0x6ffffff3
#define SHT_SUNW_dof 0x6ffffff4
#define SHT_SUNW_cap 0x6ffffff5
#define SHT_SUNW_SIGNATURE 0x6ffffff6
#define SHT_SUNW_ANNOTATE 0x6ffffff7
#define SHT_SUNW_DEBUGSTR 0x6ffffff8
#define SHT_SUNW_DEBUG 0x6ffffff9
#define SHT_SUNW_move 0x6ffffffa
#define SHT_SUNW_COMDAT 0x6ffffffb
#define SHT_SUNW_syminfo 0x6ffffffc
#define SHT_SUNW_verdef 0x6ffffffd
#define SHT_SUNW_verneed 0x6ffffffe
#define SHT_SUNW_versym 0x6fffffff
#define SHT_HISUNW 0x6fffffff
#define SHT_HIOS 0x6fffffff
/* GNU/Linux ABI specific values */
#define SHT_GNU_verdef 0x6ffffffd
#define SHT_GNU_verneed 0x6ffffffe
#define SHT_GNU_versym 0x6fffffff
#define SHT_LOPROC 0x70000000 /* processor specific range */
#define SHT_HIPROC 0x7fffffff
#define SHT_LOUSER 0x80000000
#define SHT_HIUSER 0xffffffff
#define SHF_WRITE 0x01 /* sh_flags */
#define SHF_ALLOC 0x02
#define SHF_EXECINSTR 0x04
#define SHF_MERGE 0x10
#define SHF_STRINGS 0x20
#define SHF_INFO_LINK 0x40
#define SHF_LINK_ORDER 0x80
#define SHF_OS_NONCONFORMING 0x100
#define SHF_GROUP 0x200
#define SHF_TLS 0x400
#define SHF_MASKOS 0x0ff00000 /* OS specific values */
#define SHF_MASKPROC 0xf0000000 /* processor specific values */
#define SHN_UNDEF 0 /* special section numbers */
#define SHN_LORESERVE 0xff00
#define SHN_LOPROC 0xff00 /* processor specific range */
#define SHN_HIPROC 0xff1f
#define SHN_LOOS 0xff20 /* OS specific range */
#define SHN_LOSUNW 0xff3f
#define SHN_SUNW_IGNORE 0xff3f
#define SHN_HISUNW 0xff3f
#define SHN_HIOS 0xff3f
#define SHN_ABS 0xfff1
#define SHN_COMMON 0xfff2
#if defined(__APPLE__)
#define SHN_MACHO_64 0xfffd /* Mach-o_64 direct string access */
#define SHN_MACHO 0xfffe /* Mach-o direct string access */
#endif /* __APPLE__ */
#define SHN_XINDEX 0xffff /* extended sect index */
#define SHN_HIRESERVE 0xffff
/*
* Symbol table
*/
typedef struct {
Elf32_Word st_name;
Elf32_Addr st_value;
Elf32_Word st_size;
unsigned char st_info; /* bind, type: ELF_32_ST_... */
unsigned char st_other;
Elf32_Half st_shndx; /* SHN_... */
} Elf32_Sym;
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
#if !defined(__APPLE__)
Elf64_Word st_name;
#else
Elf64_Sxword st_name;
#endif /* __APPLE__ */
unsigned char st_info; /* bind, type: ELF_64_ST_... */
unsigned char st_other;
Elf64_Half st_shndx; /* SHN_... */
Elf64_Addr st_value;
Elf64_Xword st_size;
} Elf64_Sym;
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
#define STN_UNDEF 0
/*
* The macros compose and decompose values for S.st_info
*
* bind = ELF32_ST_BIND(S.st_info)
* type = ELF32_ST_TYPE(S.st_info)
* S.st_info = ELF32_ST_INFO(bind, type)
*/
#define ELF32_ST_BIND(info) ((info) >> 4)
#define ELF32_ST_TYPE(info) ((info) & 0xf)
#define ELF32_ST_INFO(bind, type) (((bind)<<4)+((type)&0xf))
#define ELF64_ST_BIND(info) ((info) >> 4)
#define ELF64_ST_TYPE(info) ((info) & 0xf)
#define ELF64_ST_INFO(bind, type) (((bind)<<4)+((type)&0xf))
#define STB_LOCAL 0 /* BIND */
#define STB_GLOBAL 1
#define STB_WEAK 2
#define STB_NUM 3
#define STB_LOPROC 13 /* processor specific range */
#define STB_HIPROC 15
#define STT_NOTYPE 0 /* TYPE */
#define STT_OBJECT 1
#define STT_FUNC 2
#define STT_SECTION 3
#define STT_FILE 4
#define STT_COMMON 5
#define STT_TLS 6
#define STT_NUM 7
#define STT_LOPROC 13 /* processor specific range */
#define STT_HIPROC 15
/*
* The macros decompose values for S.st_other
*
* visibility = ELF32_ST_VISIBILITY(S.st_other)
*/
#define ELF32_ST_VISIBILITY(other) ((other)&0x7)
#define ELF64_ST_VISIBILITY(other) ((other)&0x7)
#define STV_DEFAULT 0
#define STV_INTERNAL 1
#define STV_HIDDEN 2
#define STV_PROTECTED 3
#define STV_EXPORTED 4
#define STV_SINGLETON 5
#define STV_ELIMINATE 6
#define STV_NUM 7
/*
* Relocation
*/
typedef struct {
Elf32_Addr r_offset;
Elf32_Word r_info; /* sym, type: ELF32_R_... */
} Elf32_Rel;
typedef struct {
Elf32_Addr r_offset;
Elf32_Word r_info; /* sym, type: ELF32_R_... */
Elf32_Sword r_addend;
} Elf32_Rela;
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf64_Addr r_offset;
Elf64_Xword r_info; /* sym, type: ELF64_R_... */
} Elf64_Rel;
typedef struct {
Elf64_Addr r_offset;
Elf64_Xword r_info; /* sym, type: ELF64_R_... */
Elf64_Sxword r_addend;
} Elf64_Rela;
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
/*
* The macros compose and decompose values for Rel.r_info, Rela.f_info
*
* sym = ELF32_R_SYM(R.r_info)
* type = ELF32_R_TYPE(R.r_info)
* R.r_info = ELF32_R_INFO(sym, type)
*/
#define ELF32_R_SYM(info) ((info)>>8)
#define ELF32_R_TYPE(info) ((unsigned char)(info))
#define ELF32_R_INFO(sym, type) (((sym)<<8)+(unsigned char)(type))
#define ELF64_R_SYM(info) ((info)>>32)
#define ELF64_R_TYPE(info) ((Elf64_Word)(info))
#define ELF64_R_INFO(sym, type) (((Elf64_Xword)(sym)<<32)+(Elf64_Xword)(type))
/*
* The r_info field is composed of two 32-bit components: the symbol
* table index and the relocation type. The relocation type for SPARC V9
* is further decomposed into an 8-bit type identifier and a 24-bit type
* dependent data field. For the existing Elf32 relocation types,
* that data field is zero.
*/
#define ELF64_R_TYPE_DATA(info) (((Elf64_Xword)(info)<<32)>>40)
#define ELF64_R_TYPE_ID(info) (((Elf64_Xword)(info)<<56)>>56)
#define ELF64_R_TYPE_INFO(data, type) \
(((Elf64_Xword)(data)<<8)+(Elf64_Xword)(type))
/*
* Section Group Flags (SHT_GROUP)
*/
#define GRP_COMDAT 0x01
/*
* Note entry header
*/
typedef struct {
Elf32_Word n_namesz; /* length of note's name */
Elf32_Word n_descsz; /* length of note's "desc" */
Elf32_Word n_type; /* type of note */
} Elf32_Nhdr;
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf64_Word n_namesz; /* length of note's name */
Elf64_Word n_descsz; /* length of note's "desc" */
Elf64_Word n_type; /* type of note */
} Elf64_Nhdr;
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
/*
* Move entry
*/
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf32_Lword m_value; /* symbol value */
Elf32_Word m_info; /* size + index */
Elf32_Word m_poffset; /* symbol offset */
Elf32_Half m_repeat; /* repeat count */
Elf32_Half m_stride; /* stride info */
} Elf32_Move;
/*
* The macros compose and decompose values for Move.r_info
*
* sym = ELF32_M_SYM(M.m_info)
* size = ELF32_M_SIZE(M.m_info)
* M.m_info = ELF32_M_INFO(sym, size)
*/
#define ELF32_M_SYM(info) ((info)>>8)
#define ELF32_M_SIZE(info) ((unsigned char)(info))
#define ELF32_M_INFO(sym, size) (((sym)<<8)+(unsigned char)(size))
typedef struct {
Elf64_Lword m_value; /* symbol value */
Elf64_Xword m_info; /* size + index */
Elf64_Xword m_poffset; /* symbol offset */
Elf64_Half m_repeat; /* repeat count */
Elf64_Half m_stride; /* stride info */
} Elf64_Move;
#define ELF64_M_SYM(info) ((info)>>8)
#define ELF64_M_SIZE(info) ((unsigned char)(info))
#define ELF64_M_INFO(sym, size) (((sym)<<8)+(unsigned char)(size))
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
/*
* Hardware/Software capabilities entry
*/
#ifndef _ASM
typedef struct {
Elf32_Word c_tag; /* how to interpret value */
union {
Elf32_Word c_val;
Elf32_Addr c_ptr;
} c_un;
} Elf32_Cap;
#if defined(_LP64) || defined(_LONGLONG_TYPE)
typedef struct {
Elf64_Xword c_tag; /* how to interpret value */
union {
Elf64_Xword c_val;
Elf64_Addr c_ptr;
} c_un;
} Elf64_Cap;
#endif /* defined(_LP64) || defined(_LONGLONG_TYPE) */
#endif
#define CA_SUNW_NULL 0
#define CA_SUNW_HW_1 1 /* first hardware capabilities entry */
#define CA_SUNW_SF_1 2 /* first software capabilities entry */
/*
* Define software capabilities (CA_SUNW_SF_1 values). Note, hardware
* capabilities (CA_SUNW_HW_1 values) are taken directly from sys/auxv_$MACH.h.
*/
#define SF1_SUNW_FPKNWN 0x001 /* use/non-use of frame pointer is */
#define SF1_SUNW_FPUSED 0x002 /* known, and frame pointer is */
/* in use */
#define SF1_SUNW_MASK 0x003 /* known software capabilities mask */
/*
* Known values for note entry types (e_type == ET_CORE)
*/
#define NT_PRSTATUS 1 /* prstatus_t <sys/old_procfs.h> */
#define NT_PRFPREG 2 /* prfpregset_t <sys/old_procfs.h> */
#define NT_PRPSINFO 3 /* prpsinfo_t <sys/old_procfs.h> */
#define NT_PRXREG 4 /* prxregset_t <sys/procfs.h> */
#define NT_PLATFORM 5 /* string from sysinfo(SI_PLATFORM) */
#define NT_AUXV 6 /* auxv_t array <sys/auxv.h> */
#define NT_GWINDOWS 7 /* gwindows_t SPARC only */
#define NT_ASRS 8 /* asrset_t SPARC V9 only */
#define NT_LDT 9 /* ssd array <sys/sysi86.h> IA32 only */
#define NT_PSTATUS 10 /* pstatus_t <sys/procfs.h> */
#define NT_PSINFO 13 /* psinfo_t <sys/procfs.h> */
#define NT_PRCRED 14 /* prcred_t <sys/procfs.h> */
#define NT_UTSNAME 15 /* struct utsname <sys/utsname.h> */
#define NT_LWPSTATUS 16 /* lwpstatus_t <sys/procfs.h> */
#define NT_LWPSINFO 17 /* lwpsinfo_t <sys/procfs.h> */
#define NT_PRPRIV 18 /* prpriv_t <sys/procfs.h> */
#define NT_PRPRIVINFO 19 /* priv_impl_info_t <sys/priv.h> */
#define NT_CONTENT 20 /* core_content_t <sys/corectl.h> */
#define NT_ZONENAME 21 /* string from getzonenamebyid(3C) */
#define NT_NUM 21
#ifdef _KERNEL
/*
* The following routine checks the processor-specific
* fields of an ELF header.
*/
int elfheadcheck(unsigned char, Elf32_Half, Elf32_Word);
#endif
#ifdef __cplusplus
}
#endif
#if defined(ELF_TARGET_ALL) || defined(ELF_TARGET_SPARC)
#include <sys/elf_SPARC.h>
#endif
#if defined(ELF_TARGET_ALL) || defined(ELF_TARGET_386)
#if !defined(__APPLE__)
#include <sys/elf_386.h>
#else /* is Apple Mac OS X */
#include "elf_386.h" /* In lieu of Solaris <sys/elf_386.h> */
#endif /* __APPLE__ */
#endif
#if defined(ELF_TARGET_ALL) || defined(ELF_TARGET_AMD64)
#include <sys/elf_amd64.h>
#endif
#endif /* _SYS_ELF_H */
================================================
FILE: src/App.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
</configuration>
================================================
FILE: src/Backends/AMDDriverBackend.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pyramid
{
class AMDDriverResultSet : IResultSet
{
private AMDDriverResultsPanel m_Results;
private TextBox m_Analysis = new TextBox();
public string Name { get { return "AMDDXX"; } }
public Control AnalysisPanel { get { return m_Analysis; } }
public Control ResultsPanel { get { return m_Results; } }
public AMDDriverResultSet( IDXShaderReflection reflection )
{
m_Results = new AMDDriverResultsPanel(reflection);
m_Analysis.Dock = DockStyle.Fill;
m_Analysis.ReadOnly = true;
m_Analysis.Multiline = true;
m_Analysis.Font = new System.Drawing.Font("Lucida Console", 8);
m_Results.AsicChanged += delegate(IAMDShader sh)
{
m_Analysis.Text = sh.PrintStats();
};
}
public void Add( IAMDShader sh )
{
m_Results.AddResult(sh);
}
}
class AMDDriverBackendOptions : IBackendOptions
{
private List<string> m_RequestedAsics;
public AMDDriverBackendOptions(List<string> requestedAsics)
{
m_RequestedAsics = (requestedAsics != null) ? requestedAsics : new List<string>();
}
public List<string> Asics { get { return m_RequestedAsics; } }
}
class AMDDriverBackend : IBackend
{
private List<string> m_SupportedAsics = new List<string>();
private ID3DCompiler m_FXC = null;
private IAMDDriver m_Driver = null;
public string Name { get { return "AMDDXX"; } }
public IEnumerable<string> Asics { get { return m_SupportedAsics; } }
public AMDDriverBackend( IAMDDriver driver, ID3DCompiler fxc )
{
m_FXC = fxc;
m_Driver = driver;
if (m_Driver != null)
{
foreach (IAMDAsic asic in m_Driver.Asics)
{
m_SupportedAsics.Add(asic.Name);
}
}
}
private bool CompileForAsic(List<string> asics, string asic)
{
if (asics == null || asics.Count == 0)
return true;
return asics.Contains(asic);
}
public IResultSet Compile(IShader shaderObj, IBackendOptions options)
{
if ( !(shaderObj is HLSLShader ) )
return null;
HLSLShader shaderHLSL = shaderObj as HLSLShader;
IHLSLOptions hlslOpts = shaderHLSL.CompileOptions;
AMDDriverBackendOptions backendOptions = options as AMDDriverBackendOptions;
string shader = shaderObj.Code;
if (shaderHLSL.WasCompiledWithErrors)
return null;
try
{
// compile here if we must. Recycle existing blob if we can
IDXShaderBlob blob = shaderHLSL.CompiledBlob;
if ( blob == null )
{
if (!shaderHLSL.Compile(m_FXC, null))
return null;
blob = shaderHLSL.CompiledBlob;
}
if (!(blob is IDXBCShaderBlob))
return null;
IDXBCShaderBlob dxcBlob = blob as IDXBCShaderBlob;
IDXShaderReflection reflect = dxcBlob.Reflect();
IDXShaderBlob exe = dxcBlob.GetExecutableBlob();
if (exe == null)
return null;
byte[] bytes = exe.ReadBytes();
AMDDriverResultSet rs = new AMDDriverResultSet(reflect );
foreach (IAMDAsic a in m_Driver.Asics)
{
if (CompileForAsic(backendOptions.Asics, a.Name))
{
IAMDShader sh = m_Driver.CompileDXBlob(a, bytes, reflect);
rs.Add(sh);
}
}
return rs;
}
catch( System.Exception ex )
{
MessageBox.Show(ex.Message);
return null;
}
}
}
}
================================================
FILE: src/Backends/AMDDriverResultsPanel.Designer.cs
================================================
namespace Pyramid
{
partial class AMDDriverResultsPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.txtISA = new System.Windows.Forms.TextBox();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.txtHex = new System.Windows.Forms.TextBox();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.txtEncodings = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.cmbAsic = new System.Windows.Forms.ComboBox();
this.btnScrutinize = new System.Windows.Forms.Button();
this.tabControl1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage3.SuspendLayout();
this.SuspendLayout();
//
// tabControl1
//
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Bottom;
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Location = new System.Drawing.Point(3, 38);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(320, 185);
this.tabControl1.TabIndex = 5;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.txtISA);
this.tabPage2.Location = new System.Drawing.Point(4, 4);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(312, 159);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "Asm";
this.tabPage2.UseVisualStyleBackColor = true;
//
// txtISA
//
this.txtISA.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtISA.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtISA.Location = new System.Drawing.Point(3, 3);
this.txtISA.Multiline = true;
this.txtISA.Name = "txtISA";
this.txtISA.ReadOnly = true;
this.txtISA.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtISA.Size = new System.Drawing.Size(306, 153);
this.txtISA.TabIndex = 0;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.txtHex);
this.tabPage1.Location = new System.Drawing.Point(4, 4);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(312, 159);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "Hex";
this.tabPage1.UseVisualStyleBackColor = true;
//
// txtHex
//
this.txtHex.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtHex.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtHex.Location = new System.Drawing.Point(3, 3);
this.txtHex.Multiline = true;
this.txtHex.Name = "txtHex";
this.txtHex.ReadOnly = true;
this.txtHex.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtHex.Size = new System.Drawing.Size(306, 153);
this.txtHex.TabIndex = 0;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.txtEncodings);
this.tabPage3.Location = new System.Drawing.Point(4, 4);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(312, 159);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "Encodings";
this.tabPage3.UseVisualStyleBackColor = true;
//
// txtEncodings
//
this.txtEncodings.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtEncodings.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtEncodings.Location = new System.Drawing.Point(3, 3);
this.txtEncodings.Multiline = true;
this.txtEncodings.Name = "txtEncodings";
this.txtEncodings.ReadOnly = true;
this.txtEncodings.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtEncodings.Size = new System.Drawing.Size(306, 153);
this.txtEncodings.TabIndex = 1;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(8, 14);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(27, 13);
this.label1.TabIndex = 4;
this.label1.Text = "Asic";
//
// cmbAsic
//
this.cmbAsic.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbAsic.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbAsic.FormattingEnabled = true;
this.cmbAsic.Location = new System.Drawing.Point(47, 11);
this.cmbAsic.Name = "cmbAsic";
this.cmbAsic.Size = new System.Drawing.Size(199, 21);
this.cmbAsic.TabIndex = 3;
this.cmbAsic.SelectedIndexChanged += new System.EventHandler(this.cmbAsic_SelectedIndexChanged);
//
// btnScrutinize
//
this.btnScrutinize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnScrutinize.Location = new System.Drawing.Point(252, 7);
this.btnScrutinize.Name = "btnScrutinize";
this.btnScrutinize.Size = new System.Drawing.Size(64, 27);
this.btnScrutinize.TabIndex = 7;
this.btnScrutinize.Text = "Scrutinize";
this.btnScrutinize.UseVisualStyleBackColor = true;
this.btnScrutinize.Click += new System.EventHandler(this.btnScrutinize_Click);
//
// AMDDriverResultsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnScrutinize);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.label1);
this.Controls.Add(this.cmbAsic);
this.Name = "AMDDriverResultsPanel";
this.Size = new System.Drawing.Size(326, 235);
this.tabControl1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.TextBox txtISA;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TextBox txtHex;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbAsic;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.TextBox txtEncodings;
private System.Windows.Forms.Button btnScrutinize;
}
}
================================================
FILE: src/Backends/AMDDriverResultsPanel.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pyramid
{
public partial class AMDDriverResultsPanel : UserControl
{
private List<IAMDShader> m_Shaders = new List<IAMDShader>();
IDXShaderReflection m_DXReflection;
public delegate void AsicChangedDelegate(IAMDShader shader);
public event AsicChangedDelegate AsicChanged;
public AMDDriverResultsPanel( IDXShaderReflection shader )
{
InitializeComponent();
m_DXReflection = shader;
btnScrutinize.Enabled = (shader.GetShaderType() == HLSLShaderType.VERTEX ||
shader.GetShaderType() == HLSLShaderType.PIXEL ||
shader.GetShaderType() == HLSLShaderType.COMPUTE );
}
public void AddResult(IAMDShader shader)
{
m_Shaders.Add(shader);
cmbAsic.Items.Add(shader.Asic.Name);
if (cmbAsic.Items.Count == 1)
cmbAsic.SelectedIndex = 0;
}
private string HexDump( IAMDShader sh )
{
byte[] bytes = sh.ReadISABytes();
int nBytes = bytes.Length;
StringBuilder str = new StringBuilder();
if (nBytes % 4 == 0)
{
for (int i = 0; i < nBytes; i += 4)
{
int n = bytes[i] |
bytes[i + 1] << 8 |
bytes[i + 2] << 16 |
bytes[i + 3] << 24;
str.AppendFormat("{0:X8} ", n);
str.AppendLine();
}
}
else
{
for (int i = 0; i < nBytes; i++)
{
if (i % 8 == 0)
str.AppendLine();
str.AppendFormat("{0:X2} ", bytes[i]);
}
}
str.AppendLine();
return str.ToString();
}
private void cmbAsic_SelectedIndexChanged(object sender, EventArgs e)
{
int i = cmbAsic.SelectedIndex;
if (i >= 0 && i < m_Shaders.Count)
{
txtHex.Text = HexDump(m_Shaders[i]);
txtEncodings.Text = m_Shaders[i].ListEncodings();
txtISA.Text = m_Shaders[i].Disassemble();
}
else
{
txtHex.Text = "";
txtISA.Text = "";
}
AsicChanged(m_Shaders[i]);
}
private void btnScrutinize_Click(object sender, EventArgs e)
{
int i = cmbAsic.SelectedIndex;
if (i >= 0 && i < m_Shaders.Count)
{
IAMDShader sh = m_Shaders[cmbAsic.SelectedIndex];
Scrutinizer.IScrutinizer backend = sh.CreateScrutinizer();
List<Scrutinizer.IInstruction> Ops = backend.BuildProgram();
List<Scrutinizer.IInstruction> Fetch = backend.BuildDXFetchShader(m_DXReflection);
Scrutinizer.UI.ScrutinizerForm f = new Scrutinizer.UI.ScrutinizerForm(Fetch, Ops, backend);
f.ShowDialog();
}
}
}
}
================================================
FILE: src/Backends/AMDDriverResultsPanel.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="txtISA.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtISA.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtHex.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtHex.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtEncodings.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtEncodings.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
================================================
FILE: src/Backends/CodeXLAnalysisPanel.Designer.cs
================================================
namespace Pyramid
{
partial class CodeXLAnalysisPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.listView1 = new System.Windows.Forms.ListView();
this.Key = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.Value = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.SuspendLayout();
//
// listView1
//
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Key,
this.Value});
this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView1.Location = new System.Drawing.Point(0, 0);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(316, 225);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
//
// Key
//
this.Key.Text = "Key";
this.Key.Width = 95;
//
// Value
//
this.Value.Text = "Value";
this.Value.Width = 98;
//
// AMDAnalysisPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.listView1);
this.Name = "AMDAnalysisPanel";
this.Size = new System.Drawing.Size(316, 225);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.ColumnHeader Key;
private System.Windows.Forms.ColumnHeader Value;
}
}
================================================
FILE: src/Backends/CodeXLAnalysisPanel.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pyramid
{
public partial class CodeXLAnalysisPanel : UserControl
{
private Dictionary<string, List<KeyValuePair<string,string>>> m_DataSet = new Dictionary<string, List<KeyValuePair<string,string>>>();
public CodeXLAnalysisPanel()
{
InitializeComponent();
}
public void AddResult(string asic, Dictionary<string, string> vals)
{
List<KeyValuePair<string,string>> items = new List<KeyValuePair<string,string>>();
items.Add(new KeyValuePair<string,string>("Asic", asic));
items.AddRange(vals);
m_DataSet.Add(asic, items);
if (m_DataSet.Count == 1)
PopulateListView(items);
}
public void SetAsic(string asic)
{
listView1.Items.Clear();
List<KeyValuePair<string,string>> items;
if (m_DataSet.TryGetValue(asic, out items))
PopulateListView(items);
}
private void PopulateListView(List<KeyValuePair<string, string>> items)
{
foreach (KeyValuePair<string, string> p in items)
{
string[] arr = new string[2]; //ahoy!
arr[0] = p.Key;
arr[1] = p.Value;
listView1.Items.Add(new ListViewItem(arr));
}
}
}
}
================================================
FILE: src/Backends/CodeXLAnalysisPanel.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
================================================
FILE: src/Backends/CodeXLBackend.cs
================================================
using System.Diagnostics;
using System.Collections.Generic;
using System.IO;
using System;
using System.Windows.Forms;
namespace Pyramid
{
class CodeXLResultSet : IResultSet
{
private AMDResultsPanel m_ResultsPanel ;
private CodeXLAnalysisPanel m_AnalysisPanel;
public CodeXLResultSet()
{
m_ResultsPanel = new AMDResultsPanel();
m_AnalysisPanel = new CodeXLAnalysisPanel();
m_ResultsPanel.AsicChanged +=
delegate(string asic)
{
m_AnalysisPanel.SetAsic(asic);
};
}
public Control ResultsPanel { get { return m_ResultsPanel; } }
public Control AnalysisPanel { get { return m_AnalysisPanel; } }
public string Name { get { return "CodeXL"; } }
public int ResultCount { get { return m_ResultsPanel.ResultCount; } }
public void AddCompileResult( string asic, string il, string isa )
{
m_ResultsPanel.AddResult(asic, il, isa);
}
public void AddAnalysisResult( string asic, Dictionary<string,string> vals )
{
m_AnalysisPanel.AddResult(asic, vals);
}
public void DisplayAsic(string asic)
{
m_AnalysisPanel.SetAsic(asic);
m_ResultsPanel.SetAsic(asic);
}
}
class CodeXLBackendOptions : IBackendOptions
{
private List<string> m_RequestedAsics;
public CodeXLBackendOptions(List<string> requestedAsics)
{
m_RequestedAsics = (requestedAsics != null) ? requestedAsics : new List<string>();
}
public List<string> Asics { get { return m_RequestedAsics; } }
}
class CodeXLBackend : IBackend
{
private List<string> m_SupportedAsics = new List<string>();
private string m_CodeXL = "";
private string m_D3DCompiler = "";
private string m_TempPath = "";
public string Name { get { return "CodeXL"; } }
public IEnumerable<string> Asics { get { return m_SupportedAsics; } }
public static List<String> GetSupportedAsics( string CodeXLPath, string d3dpath )
{
// try to run CodeXLAnalyzer to get the asic list
// -s "HLSL" --DXLocation s -l"
string CommandLine = string.Format("-s \"HLSL\" --DXLocation {0} -l", d3dpath);
List<String> asics = new List<string>();
ProcessStartInfo pi = new ProcessStartInfo();
pi.RedirectStandardOutput = true;
pi.RedirectStandardInput = true;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
pi.Arguments = CommandLine;
pi.FileName = CodeXLPath;
pi.UseShellExecute = false;
try
{
Process p = Process.Start(pi);
p.WaitForExit();
while (!p.StandardOutput.EndOfStream)
{
string s = p.StandardOutput.ReadLine();
asics.Add(s.TrimEnd().TrimStart());
}
// skip whatever text they're emitting, up to 'Devices:'
while (!asics[0].Equals("Devices:"))
asics.RemoveAt(0);
asics.RemoveAt(0); // remove 'Devices'
p.Close();
}
catch (Exception e)
{
MessageBox.Show(e.Message, "uh-oh, couldn't get CodeXL asic list", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return asics;
}
public CodeXLBackend( string CodeXLPath, string D3DCompilerPath, string TempPath )
{
m_SupportedAsics = GetSupportedAsics(CodeXLPath, D3DCompilerPath);
m_CodeXL = CodeXLPath;
m_D3DCompiler = D3DCompilerPath;
m_TempPath = TempPath;
}
private bool CompileForAsic( List<string> asics, string asic )
{
if (asics == null || asics.Count == 0)
return true;
return asics.Contains(asic);
}
public IResultSet Compile(IShader shader, IBackendOptions options)
{
if ( !(shader is HLSLShader) || !(options is CodeXLBackendOptions) )
return null;
// TODO: Modify CodeXL backend so that it re-uses blob from
// FXC backend where available. It'd be nice not to have to
// have CodeXL recompile it for us
HLSLShader shaderHLSL = shader as HLSLShader;
IHLSLOptions hlslOpts = shaderHLSL.CompileOptions;
CodeXLBackendOptions backendOptions = options as CodeXLBackendOptions;
string text = shader.Code;
if (shaderHLSL.WasCompiledWithErrors)
return null;
string tmpFile = Path.Combine(m_TempPath, "PYRAMID_amdcodexl");
try
{
StreamWriter stream = File.CreateText(tmpFile);
stream.Write(text);
stream.Close();
}
catch (Exception e)
{
MessageBox.Show(e.Message, "uh-oh, couldn't create temp file", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
string isaPath = Path.Combine(m_TempPath, "pyramid.isa");
string analysisPath = Path.Combine(m_TempPath, "analysis");
string CommandLine = "-s \"HLSL\"";
CommandLine = String.Concat( CommandLine, String.Format( " -p {0}",hlslOpts.Target.ToString()) );
CommandLine = String.Concat( CommandLine, String.Format( " -f {0} ",hlslOpts.EntryPoint ));
CommandLine = String.Concat( CommandLine, String.Format( " --DXLocation \"{0}\"",m_D3DCompiler ));
CommandLine = String.Concat( CommandLine, String.Format( " --isa \"{0}\"",isaPath ));
CommandLine = String.Concat( CommandLine, String.Format( " -a \"{0}\"",analysisPath ));
CommandLine = String.Concat( CommandLine, String.Format( " --DXFlags {0} ",hlslOpts.GetD3DCompileFlagBits() ));
CommandLine = String.Concat(CommandLine, tmpFile);
foreach (string asic in m_SupportedAsics)
{
if (CompileForAsic(backendOptions.Asics, asic))
{
CommandLine = String.Concat(CommandLine, " -c ", asic, " ");
}
}
ProcessStartInfo pi = new ProcessStartInfo();
pi.RedirectStandardOutput = true;
pi.RedirectStandardInput = true;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
pi.Arguments = CommandLine;
pi.FileName = m_CodeXL;
pi.UseShellExecute = false;
string output;
try
{
int TimeOut = 15000; // TODO: Put in options
Process p = Process.Start(pi);
output = p.StandardOutput.ReadToEnd();
if (p.WaitForExit(TimeOut))
{
MessageBox.Show("CodeXL took more than 15 seconds");
}
p.Close();
File.Delete(tmpFile);
}
catch( Exception e )
{
MessageBox.Show(e.Message, "uh-oh, couldn't run CodeXL", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
// Compile results are emitted in one set of files per asic
string defaultAsic = "";
CodeXLResultSet results = new CodeXLResultSet();
foreach (string asic in m_SupportedAsics)
{
if (!CompileForAsic(backendOptions.Asics, asic))
{
continue;
}
if (defaultAsic == "")
{
defaultAsic = asic;
}
string isaFile = Path.Combine(m_TempPath, String.Format("{0}_pyramid.isa", asic));
try
{
string isa = File.ReadAllText(isaFile);
results.AddCompileResult(asic, "CodeXL doesn't support IL output for HLSL", isa);
File.Delete(isaFile);
}
catch (Exception )
{
// may occur in the event of a compile error.
}
}
// Analysis results are emitted in a big CSV file
try
{
string[] lines = File.ReadAllLines(analysisPath);
File.Delete(analysisPath);
try
{
// first line is column names
string columns = lines[0];
string[] cols = columns.Split(',');
// first column is asic, remaining columns are fields we want to display
for (int i = 1; i < lines.Length; i++)
{
string[] data = lines[i].Split(',');
string asic = data[0];
Dictionary<string, string> vals = new Dictionary<string, string>();
for (int j = 1; j < cols.Length; j++)
{
if( !String.IsNullOrEmpty(data[j]) && !String.IsNullOrEmpty(cols[j]))
vals.Add(cols[j], data[j]);
}
results.AddAnalysisResult(asic, vals);
}
}
catch( Exception e )
{
MessageBox.Show(e.Message, "uh-oh. Couldn't parse CodeXL analysis file. Did it change?", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch( Exception )
{
// compile error
}
if (results.ResultCount > 0)
{
results.DisplayAsic(defaultAsic);
return results;
}
else
return null;
}
}
}
================================================
FILE: src/Backends/CodeXLResultsPanel.Designer.cs
================================================
namespace Pyramid
{
partial class AMDResultsPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.cmbAsic = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.txtISA = new System.Windows.Forms.TextBox();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.txtIL = new System.Windows.Forms.TextBox();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.txtLiveReg = new System.Windows.Forms.TextBox();
this.tabPage4 = new System.Windows.Forms.TabPage();
this.txtToolOutput = new System.Windows.Forms.TextBox();
this.tabControl1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage3.SuspendLayout();
this.tabPage4.SuspendLayout();
this.SuspendLayout();
//
// cmbAsic
//
this.cmbAsic.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.cmbAsic.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbAsic.FormattingEnabled = true;
this.cmbAsic.Location = new System.Drawing.Point(55, 8);
this.cmbAsic.Name = "cmbAsic";
this.cmbAsic.Size = new System.Drawing.Size(166, 21);
this.cmbAsic.TabIndex = 0;
this.cmbAsic.SelectedIndexChanged += new System.EventHandler(this.cmbAsic_SelectedIndexChanged);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(16, 11);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(27, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Asic";
//
// tabControl1
//
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Bottom;
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Location = new System.Drawing.Point(3, 35);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(232, 186);
this.tabControl1.TabIndex = 2;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.txtISA);
this.tabPage2.Location = new System.Drawing.Point(4, 4);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(224, 160);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "ISA";
this.tabPage2.UseVisualStyleBackColor = true;
//
// txtISA
//
this.txtISA.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtISA.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtISA.Location = new System.Drawing.Point(3, 3);
this.txtISA.Multiline = true;
this.txtISA.Name = "txtISA";
this.txtISA.ReadOnly = true;
this.txtISA.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtISA.Size = new System.Drawing.Size(218, 154);
this.txtISA.TabIndex = 0;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.txtIL);
this.tabPage1.Location = new System.Drawing.Point(4, 4);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(224, 160);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "IL";
this.tabPage1.UseVisualStyleBackColor = true;
//
// txtIL
//
this.txtIL.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtIL.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtIL.Location = new System.Drawing.Point(3, 3);
this.txtIL.Multiline = true;
this.txtIL.Name = "txtIL";
this.txtIL.ReadOnly = true;
this.txtIL.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtIL.Size = new System.Drawing.Size(218, 154);
this.txtIL.TabIndex = 0;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.txtLiveReg);
this.tabPage3.Location = new System.Drawing.Point(4, 4);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(224, 160);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "LiveReg";
this.tabPage3.UseVisualStyleBackColor = true;
//
// txtLiveReg
//
this.txtLiveReg.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtLiveReg.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtLiveReg.Location = new System.Drawing.Point(3, 3);
this.txtLiveReg.Multiline = true;
this.txtLiveReg.Name = "txtLiveReg";
this.txtLiveReg.ReadOnly = true;
this.txtLiveReg.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtLiveReg.Size = new System.Drawing.Size(218, 154);
this.txtLiveReg.TabIndex = 1;
//
// tabPage4
//
this.tabPage4.Controls.Add(this.txtToolOutput);
this.tabPage4.Location = new System.Drawing.Point(4, 4);
this.tabPage4.Name = "tabPage4";
this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
this.tabPage4.Size = new System.Drawing.Size(224, 160);
this.tabPage4.TabIndex = 3;
this.tabPage4.Text = "Output";
this.tabPage4.UseVisualStyleBackColor = true;
//
// txtToolOutput
//
this.txtToolOutput.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtToolOutput.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtToolOutput.Location = new System.Drawing.Point(3, 3);
this.txtToolOutput.Multiline = true;
this.txtToolOutput.Name = "txtToolOutput";
this.txtToolOutput.ReadOnly = true;
this.txtToolOutput.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtToolOutput.Size = new System.Drawing.Size(218, 154);
this.txtToolOutput.TabIndex = 2;
//
// AMDResultsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.label1);
this.Controls.Add(this.cmbAsic);
this.Name = "AMDResultsPanel";
this.Size = new System.Drawing.Size(238, 236);
this.tabControl1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.tabPage1.ResumeLayout(false);
this.tabPage1.PerformLayout();
this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout();
this.tabPage4.ResumeLayout(false);
this.tabPage4.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ComboBox cmbAsic;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.TextBox txtIL;
private System.Windows.Forms.TextBox txtISA;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.TextBox txtLiveReg;
private System.Windows.Forms.TabPage tabPage4;
private System.Windows.Forms.TextBox txtToolOutput;
}
}
================================================
FILE: src/Backends/CodeXLResultsPanel.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
namespace Pyramid
{
public partial class AMDResultsPanel : UserControl
{
private List<String> m_IL = new List<string>();
private List<String> m_ISA = new List<string>();
private List<string> m_LiveReg = new List<String>();
public AMDResultsPanel()
{
InitializeComponent();
}
public int ResultCount { get { return m_IL.Count; } }
public delegate void AsicChangedDelegate( string asic );
public event AsicChangedDelegate AsicChanged;
public void SetToolOutput( string output )
{
txtToolOutput.Text = output;
}
public void AddResult(string Asic, string IL, string ISA)
{
m_IL.Add(IL);
m_ISA.Add(ISA);
m_LiveReg.Add("");
cmbAsic.Items.Add(Asic);
if (cmbAsic.Items.Count == 1)
cmbAsic.SelectedIndex = 0;
}
public void AddResult(string Asic, string IL, string ISA, string LiveReg)
{
m_IL.Add(IL);
m_ISA.Add(ISA);
m_LiveReg.Add(LiveReg);
cmbAsic.Items.Add(Asic);
if (cmbAsic.Items.Count == 1)
cmbAsic.SelectedIndex = 0;
}
public void SetAsic(string name)
{
int index = cmbAsic.Items.IndexOf(name);
if (index == -1)
{
txtIL.Text = "";
txtISA.Text = "";
txtLiveReg.Text = "";
return;
}
// invokes handler below indirectly
cmbAsic.SelectedIndex = index;
}
private void cmbAsic_SelectedIndexChanged(object sender, EventArgs e)
{
txtIL.Text = m_IL[cmbAsic.SelectedIndex];
txtISA.Text = m_ISA[cmbAsic.SelectedIndex];
txtLiveReg.Text = m_LiveReg[cmbAsic.SelectedIndex];
if( AsicChanged != null )
AsicChanged((string)cmbAsic.SelectedItem);
}
}
}
================================================
FILE: src/Backends/CodeXLResultsPanel.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="txtISA.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtIL.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtLiveReg.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="txtToolOutput.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>
================================================
FILE: src/Backends/FXCBackend.cs
================================================
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
namespace Pyramid
{
class FXCResultSet : IResultSet
{
private FXCResultsPanel m_Panel = null;
public FXCResultSet(HLSLShader shader)
{
m_Panel = new FXCResultsPanel(shader);
}
public string Name { get { return "D3DCompiler"; } }
public Control AnalysisPanel { get { return null; } }
public Control ResultsPanel { get { return m_Panel; } }
};
class D3DCompilerBackend : IBackend
{
private ID3DCompiler m_Compiler;
private IDXILCompiler m_DXIL;
public string Name { get { return "D3DCompiler"; } }
public D3DCompilerBackend( ID3DCompiler comp, IDXILCompiler dxil )
{
m_Compiler = comp;
m_DXIL = dxil;
}
public IResultSet Compile(IShader shader, IBackendOptions options)
{
if (!(shader is HLSLShader ) )
return null;
HLSLShader hlsl = (HLSLShader)shader;
IHLSLOptions hlslOpts = hlsl.CompileOptions;
string text = hlsl.Code;
if (!hlsl.WasCompiled)
hlsl.Compile(m_Compiler, m_DXIL);
if (!hlsl.RootSigWasCompiled)
hlsl.CompileRootSignature(m_DXIL);
return new FXCResultSet(hlsl);
}
}
}
================================================
FILE: src/Backends/FXCResultsPanel.Designer.cs
================================================
namespace Pyramid
{
partial class FXCResultsPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.tabControl1 = new System.Windows.Forms.TabControl();
this.asmPage = new System.Windows.Forms.TabPage();
this.txtASM = new System.Windows.Forms.TextBox();
this.hexPage = new System.Windows.Forms.TabPage();
this.txtHex = new System.Windows.Forms.TextBox();
this.messagesPage = new System.Windows.Forms.TabPage();
this.txtMessages = new System.Windows.Forms.TextBox();
this.rootSigPage = new System.Windows.Forms.TabPage();
this.exportPage = new System.Windows.Forms.TabPage();
this.txtRootSig = new System.Windows.Forms.TextBox();
this.btnExportBytecode = new System.Windows.Forms.Button();
this.btnExportRootSig = new System.Windows.Forms.Button();
this.btnExportCPP = new System.Windows.Forms.Button();
this.tabControl1.SuspendLayout();
this.asmPage.SuspendLayout();
this.hexPage.SuspendLayout();
this.messagesPage.SuspendLayout();
this.rootSigPage.SuspendLayout();
this.exportPage.SuspendLayout();
this.SuspendLayout();
//
// tabControl1
//
this.tabControl1.Controls.Add(this.asmPage);
this.tabControl1.Controls.Add(this.hexPage);
this.tabControl1.Controls.Add(this.messagesPage);
this.tabControl1.Controls.Add(this.rootSigPage);
this.tabControl1.Controls.Add(this.exportPage);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Location = new System.Drawing.Point(0, 0);
this.tabControl1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(200, 185);
this.tabControl1.TabIndex = 0;
//
// asmPage
//
this.asmPage.Controls.Add(this.txtASM);
this.asmPage.Location = new System.Drawing.Point(4, 25);
this.asmPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.asmPage.Name = "asmPage";
this.asmPage.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.asmPage.Size = new System.Drawing.Size(192, 156);
this.asmPage.TabIndex = 0;
this.asmPage.Text = "ASM";
this.asmPage.UseVisualStyleBackColor = true;
//
// txtASM
//
this.txtASM.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtASM.Location = new System.Drawing.Point(4, 4);
this.txtASM.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtASM.Multiline = true;
this.txtASM.Name = "txtASM";
this.txtASM.ReadOnly = true;
this.txtASM.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtASM.Size = new System.Drawing.Size(184, 148);
this.txtASM.TabIndex = 0;
//
// hexPage
//
this.hexPage.Controls.Add(this.txtHex);
this.hexPage.Location = new System.Drawing.Point(4, 25);
this.hexPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.hexPage.Name = "hexPage";
this.hexPage.Size = new System.Drawing.Size(192, 156);
this.hexPage.TabIndex = 2;
this.hexPage.Text = "Hex";
this.hexPage.UseVisualStyleBackColor = true;
//
// txtHex
//
this.txtHex.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtHex.Font = new System.Drawing.Font("Lucida Console", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtHex.Location = new System.Drawing.Point(0, 0);
this.txtHex.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtHex.Multiline = true;
this.txtHex.Name = "txtHex";
this.txtHex.ReadOnly = true;
this.txtHex.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtHex.Size = new System.Drawing.Size(192, 156);
this.txtHex.TabIndex = 3;
//
// messagesPage
//
this.messagesPage.Controls.Add(this.txtMessages);
this.messagesPage.Location = new System.Drawing.Point(4, 25);
this.messagesPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.messagesPage.Name = "messagesPage";
this.messagesPage.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.messagesPage.Size = new System.Drawing.Size(192, 156);
this.messagesPage.TabIndex = 1;
this.messagesPage.Text = "Messages";
this.messagesPage.UseVisualStyleBackColor = true;
//
// txtMessages
//
this.txtMessages.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtMessages.Location = new System.Drawing.Point(4, 4);
this.txtMessages.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtMessages.Multiline = true;
this.txtMessages.Name = "txtMessages";
this.txtMessages.ReadOnly = true;
this.txtMessages.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtMessages.Size = new System.Drawing.Size(184, 148);
this.txtMessages.TabIndex = 1;
//
// rootSigPage
//
this.rootSigPage.Controls.Add(this.txtRootSig);
this.rootSigPage.Location = new System.Drawing.Point(4, 25);
this.rootSigPage.Name = "rootSigPage";
this.rootSigPage.Size = new System.Drawing.Size(192, 156);
this.rootSigPage.TabIndex = 3;
this.rootSigPage.Text = "RootSig";
this.rootSigPage.UseVisualStyleBackColor = true;
//
// exportPage
//
this.exportPage.Controls.Add(this.btnExportCPP);
this.exportPage.Controls.Add(this.btnExportRootSig);
this.exportPage.Controls.Add(this.btnExportBytecode);
this.exportPage.Location = new System.Drawing.Point(4, 25);
this.exportPage.Name = "exportPage";
this.exportPage.Size = new System.Drawing.Size(192, 156);
this.exportPage.TabIndex = 4;
this.exportPage.Text = "Export";
this.exportPage.UseVisualStyleBackColor = true;
//
// txtRootSig
//
this.txtRootSig.Dock = System.Windows.Forms.DockStyle.Fill;
this.txtRootSig.Font = new System.Drawing.Font("Consolas", 8.5F);
this.txtRootSig.Location = new System.Drawing.Point(0, 0);
this.txtRootSig.Margin = new System.Windows.Forms.Padding(4);
this.txtRootSig.Multiline = true;
this.txtRootSig.Name = "txtRootSig";
this.txtRootSig.ReadOnly = true;
this.txtRootSig.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txtRootSig.Size = new System.Drawing.Size(192, 156);
this.txtRootSig.TabIndex = 2;
//
// btnExportBytecode
//
this.btnExportBytecode.Location = new System.Drawing.Point(12, 18);
this.btnExportBytecode.Name = "btnExportBytecode";
this.btnExportBytecode.Size = new System.Drawing.Size(134, 35);
this.btnExportBytecode.TabIndex = 0;
this.btnExportBytecode.Text = "Save Bytecode";
this.btnExportBytecode.UseVisualStyleBackColor = true;
this.btnExportBytecode.Click += new System.EventHandler(this.btnExportBytecode_Click);
//
// btnExportRootSig
//
this.btnExportRootSig.Location = new System.Drawing.Point(12, 59);
this.btnExportRootSig.Name = "btnExportRootSig";
this.btnExportRootSig.Size = new System.Drawing.Size(134, 35);
this.btnExportRootSig.TabIndex = 1;
this.btnExportRootSig.Text = "Save RootSig";
this.btnExportRootSig.UseVisualStyleBackColor = true;
this.btnExportRootSig.Click += new System.EventHandler(this.btnExportRootSig_Click);
//
// btnExportCPP
//
this.btnExportCPP.Location = new System.Drawing.Point(12, 100);
this.btnExportCPP.Name = "btnExportCPP";
this.btnExportCPP.Size = new System.Drawing.Size(134, 35);
this.btnExportCPP.TabIndex = 2;
this.btnExportCPP.Text = "Create .cpp File";
this.btnExportCPP.UseVisualStyleBackColor = true;
this.btnExportCPP.Click += new System.EventHandler(this.btnExportCPP_Click);
//
// FXCResultsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.tabControl1);
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.Name = "FXCResultsPanel";
this.Size = new System.Drawing.Size(200, 185);
this.tabControl1.ResumeLayout(false);
this.asmPage.ResumeLayout(false);
this.asmPage.PerformLayout();
this.hexPage.ResumeLayout(false);
this.hexPage.PerformLayout();
this.messagesPage.ResumeLayout(false);
this.messagesPage.PerformLayout();
this.rootSigPage.ResumeLayout(false);
this.rootSigPage.PerformLayout();
this.exportPage.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage messagesPage;
private System.Windows.Forms.TextBox txtASM;
private System.Windows.Forms.TextBox txtMessages;
private System.Windows.Forms.TabPage hexPage;
private System.Windows.Forms.TextBox txtHex;
private System.Windows.Forms.TabPage asmPage;
private System.Windows.Forms.TabPage rootSigPage;
private System.Windows.Forms.TextBox txtRootSig;
private System.Windows.Forms.TabPage exportPage;
private System.Windows.Forms.Button btnExportCPP;
private System.Windows.Forms.Button btnExportRootSig;
private System.Windows.Forms.Button btnExportBytecode;
}
}
================================================
FILE: src/Backends/FXCResultsPanel.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Pyramid
{
public partial class FXCResultsPanel : UserControl
{
private IDXShaderBlob m_Shader;
private IDXBlob m_RootSignature;
private static void HexBumpBlob( StringBuilder str, byte[] bytes )
{
int nBytes = bytes.Length;
if (nBytes % 4 == 0)
{
for (int i = 0; i < nBytes; i += 4)
{
int n = bytes[i] |
bytes[i + 1] << 8 |
bytes[i + 2] << 16 |
bytes[i + 3] << 24;
char c0 = Convert.ToChar(bytes[i]);
char c1 = Convert.ToChar(bytes[i+1]);
char c2 = Convert.ToChar(bytes[i+2]);
char c3 = Convert.ToChar(bytes[i+3]);
c0 = (c0 < 0x20 || c0 > 127) ? '.' : c0;
c1 = (c1 < 0x20 || c1 > 127) ? '.' : c1;
c2 = (c2 < 0x20 || c2 > 127) ? '.' : c2;
c3 = (c3 < 0x20 || c3 > 127) ? '.' : c3;
str.AppendFormat("{0:X8} '{1} {2} {3} {4}' ", n, c0,c1,c2,c3 );
str.AppendLine();
}
}
else
{
for( int i=0; i<nBytes; i++ )
{
if (i % 8 == 0)
str.AppendLine();
str.AppendFormat("{0:X2} ", bytes[i]);
}
}
str.AppendLine();
}
public FXCResultsPanel( HLSLShader shader )
{
string error = shader.Messages;
IDXShaderBlob blob = shader.CompiledBlob;
m_Shader = blob;
InitializeComponent();
txtMessages.Text = error;
if (blob == null)
{
tabControl1.TabPages.Remove(hexPage);
tabControl1.TabPages.Remove(asmPage);
}
else
{
txtASM.Text = blob.Disassemble();
// generate a blob dump
try
{
byte[] rawBytes = blob.ReadBytes();
StringBuilder str = new StringBuilder();
str.AppendFormat("Blob size is {0} ({1:X}) bytes", rawBytes.Length, rawBytes.Length);
str.AppendLine();
HexBumpBlob(str, rawBytes);
if (blob is IDXBCShaderBlob)
{
IDXBCShaderBlob blobDXBC = blob as IDXBCShaderBlob;
IDXBCShaderBlob strip = blobDXBC.Strip();
IDXBCShaderBlob sig = strip.GetSignatureBlob();
byte[] stripBytes = strip.ReadBytes();
byte[] sigBytes = sig.ReadBytes();
str.AppendFormat("Stripped blob size is {0} ({1:x}) bytes", stripBytes.Length, stripBytes.Length);
str.AppendLine();
HexBumpBlob(str, stripBytes);
str.AppendFormat("Signature blob size is {0} ({1:x}) bytes", sigBytes.Length, sigBytes.Length);
str.AppendLine();
HexBumpBlob(str, sigBytes);
}
txtHex.Text = str.ToString();
}
catch( Exception ex )
{
txtHex.Text = String.Format("EXCEPTION while generating hex dump: {0}", ex.Message);
}
}
IDXBlob rsBlob = shader.CompiledRootSig;
m_RootSignature = rsBlob;
txtMessages.Text = String.Concat(txtMessages.Text, shader.RootSigMessages);
if (rsBlob == null)
{
tabControl1.TabPages.Remove(rootSigPage);
}
else
{
try
{
byte[] rawBytes = rsBlob.ReadBytes();
StringBuilder str = new StringBuilder();
str.AppendFormat("RootSig blob size is {0} ({1:X}) bytes", rawBytes.Length, rawBytes.Length);
str.AppendLine();
HexBumpBlob(str, rawBytes);
txtRootSig.Text = str.ToString();
}
catch (Exception ex)
{
txtRootSig.Text = String.Format("EXCEPTION while generating rootsig dump: {0}", ex.Message);
}
}
}
private void btnExportBytecode_Click(object sender, EventArgs e)
{
if (m_Shader != null)
{
SaveFileDialog save = new SaveFileDialog();
if (save.ShowDialog() != DialogResult.Cancel)
{
File.WriteAllBytes(save.FileName, m_Shader.ReadBytes());
}
}
}
private void btnExportRootSig_Click(object sender, EventArgs e)
{
if (m_RootSignature != null)
{
SaveFileDialog save = new SaveFileDialog();
if (save.ShowDialog() != DialogResult.Cancel)
{
File.WriteAllBytes(save.FileName, m_RootSignature.ReadBytes());
}
}
}
private static void DeclareByteArray(StringBuilder str, byte[] bytes, string name)
{
int nBytes = bytes.Length;
str.AppendFormat("static const unsigned char {0}[{1}] = {{", name, nBytes );
str.AppendLine();
for( int i=0; i<nBytes; i += 32 )
{
str.Append(" ");
for( int j=0; j<32; j++ )
{
if (i + j >= nBytes)
break;
str.AppendFormat("{0,-3}, ", bytes[i + j]);
}
str.AppendLine();
}
str.Append("};");
str.AppendLine();
}
private void btnExportCPP_Click(object sender, EventArgs e)
{
SaveFileDialog save = new SaveFileDialog();
if (save.ShowDialog() != DialogResult.Cancel)
{
StringBuilder str = new StringBuilder();
if ( m_Shader != null )
{
str.Append("#if 0");
str.AppendLine();
str.Append(m_Shader.Disassemble());
str.AppendLine();
str.Append("#endif");
str.AppendLine();
byte[] byteCode = m_Shader.ReadBytes();
DeclareByteArray(str, byteCode, "Bytecode");
}
if( m_RootSignature != null )
{
byte[] byteCode = m_RootSignature.ReadBytes();
DeclareByteArray(str, byteCode, "RootSig");
}
File.WriteAllText(save.FileName, str.ToString());
}
}
}
}
================================================
FILE: src/Backends/FXCResultsPanel.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
================================================
FILE: src/Backends/GLSLOptimizerBackend.cs
================================================
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Pyramid
{
class GLSLOptimizerResultSet : IResultSet
{
private TextBox m_AnalysisPanel = new TextBox();
private TabControl m_ResultsPanel = new TabControl();
public GLSLOptimizerResultSet(GLSLOptimizer.IShader shader)
{
m_ResultsPanel.Dock = DockStyle.Fill;
TabPage page;
string AnalysisText="";
if( !shader.HadError )
{
AnalysisText = String.Format("GLSLOptimizer stats:\r\nMathOps:\t{0}\r\nTextureOps:\t{1}\r\nFlowOps:\t{2}\r\n",
shader.MathOps,
shader.TextureOps,
shader.ControlFlowOps);
m_ResultsPanel.TabPages.Add("Optimized Output");
page = m_ResultsPanel.TabPages[m_ResultsPanel.TabPages.Count - 1];
TextBox txtOutput = new TextBox();
txtOutput.ReadOnly = true;
txtOutput.Dock = DockStyle.Fill;
txtOutput.Multiline = true;
txtOutput.ScrollBars = ScrollBars.Both;
txtOutput.Text = shader.Output.Replace("\n", Environment.NewLine) ;
txtOutput.WordWrap = false;
page.Controls.Add(txtOutput);
m_ResultsPanel.TabPages.Add("Raw Output");
page = m_ResultsPanel.TabPages[m_ResultsPanel.TabPages.Count - 1];
TextBox txtRawOutput = new TextBox();
txtRawOutput.ReadOnly = true;
txtRawOutput.Dock = DockStyle.Fill;
txtRawOutput.Multiline = true;
txtRawOutput.ScrollBars = ScrollBars.Both;
txtRawOutput.Text = shader.RawOutput.Replace("\n",Environment.NewLine);
txtRawOutput.WordWrap = false;
page.Controls.Add(txtRawOutput);
}
m_ResultsPanel.TabPages.Add("Log");
page = m_ResultsPanel.TabPages[m_ResultsPanel.TabPages.Count - 1];
TextBox txtLog = new TextBox();
txtLog.ReadOnly = true;
txtLog.Dock = DockStyle.Fill;
txtLog.Multiline = true;
txtLog.ScrollBars = ScrollBars.Both;
txtLog.WordWrap = false;
txtLog.Text = shader.Log.Replace("\n", Environment.NewLine);
page.Controls.Add(txtLog);
m_AnalysisPanel.ReadOnly = true;
m_AnalysisPanel.Dock = DockStyle.Fill;
m_AnalysisPanel.Text = AnalysisText;
m_AnalysisPanel.Multiline = true;
m_AnalysisPanel.Font = new System.Drawing.Font("Lucida Console", 8);
}
public string Name { get { return "GLSLOptimizer"; } }
public Control AnalysisPanel { get { return m_AnalysisPanel; } }
public Control ResultsPanel { get { return m_ResultsPanel; } }
};
class GLSLOptimizerBackend : IBackend
{
private Dictionary<GLSLOptimizer.Target, GLSLOptimizer.IOptimizer> m_Optimizers =
new Dictionary<GLSLOptimizer.Target, GLSLOptimizer.IOptimizer>();
public string Name { get { return "GLSLOptimizer"; } }
public GLSLOptimizerBackend(IWrapper wrapper)
{
foreach( GLSLOptimizer.Target t in Enum.GetValues(typeof(GLSLOptimizer.Target)))
m_Optimizers.Add( t, wrapper.CreateGLSLOptimizer(t));
}
public IResultSet Compile(IShader shader, IBackendOptions options)
{
if ( !(shader is GLSLShader ) )
return null;
GLSLShader sh = (GLSLShader)shader;
IGLSLOptions glOpts = sh.CompileOptions;
if (glOpts.OptimizerOptions == null)
return null;
GLSLOptimizer.IOptimizer optimizer = m_Optimizers[glOpts.OptimizerTarget];
return new GLSLOptimizerResultSet( optimizer.Optimize(sh.Code, glOpts.OptimizerOptions) );
}
}
}
================================================
FILE: src/Backends/GLSlangBackend.cs
================================================
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Pyramid
{
class GLSlangBackend : IBackend
{
private GLSlang.ICompiler m_Compiler;
private GLSlang.IConfig m_Config;
private class GLSLangResultSet : IResultSet
{
private GLSlangResultsPanel m_Results = null;
public string Name { get { return "GLSlang"; } }
public Control AnalysisPanel { get { return null; } }
public Control ResultsPanel { get { return m_Results; } }
public GLSLangResultSet(GLSlang.IShader shader)
{
m_Results = new GLSlangResultsPanel(shader, shader.CompileSPIRV());
}
}
public string Name { get { return "GLSlang"; } }
public GLSlangBackend( IWrapper wrapper, IIncludeHandler handler )
{
m_Compiler = wrapper.CreateGLSlangCompiler(handler);
m_Config = m_Compiler.CreateDefaultConfig();
}
public IResultSet Compile(IShader shader, IBackendOptions options)
{
if (shader is GLSLShader)
{
GLSLShader sh = (GLSLShader)shader;
IGLSLOptions glOpts = sh.CompileOptions;
GLSlang.IShader result = m_Compiler.Compile(sh.Code, glOpts.ShaderType, m_Config, shader.SourceFilePath );
return new GLSLangResultSet(result);
}
else if( shader is HLSLShader )
{
HLSLShader sh = (HLSLShader)shader;
IHLSLOptions hlslOpts = sh.CompileOptions;
GLSlang.IShader result = m_Compiler.CompileHLSL(sh.Code, hlslOpts, m_Config, shader.SourceFilePath );
return new GLSLangResultSet(result);
}
else
{
return null;
}
}
}
}
================================================
FILE: src/Backends/GLSlangResultsPanel.Designer.cs
================================================
namespace Pyramid
{
partial class GLSlangResultsPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.Location = new System.Drawing.Point(3, 2);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBox1.Size = new System.Drawing.Size(206, 152);
this.textBox1.TabIndex = 0;
this.textBox1.WordWrap = false;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button1.Location = new System.Drawing.Point(141, 158);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(66, 21);
this.button1.TabIndex = 1;
this.button1.Text = "Export";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// GLSlangResultsPanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Name = "GLSlangResultsPanel";
this.Size = new System.Drawing.Size(212, 183);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
}
}
================================================
FILE: src/Backends/GLSlangResultsPanel.cs
================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pyramid
{
public partial class GLSlangResultsPanel : UserControl
{
private GLSlang.IShader m_Shader;
private SPIRV.IProgram m_SPIRV;
public GLSlangResultsPanel(GLSlang.IShader shader, SPIRV.IProgram spirv)
{
InitializeComponent();
m_Shader = shader;
m_SPIRV = spirv;
if (spirv != null)
{
textBox1.Text = spirv.Disassemble();
button1.Enabled = true;
}
else
{
textBox1.Text = shader.InfoLog.Replace("\n", Environment.NewLine);
button1.Enabled = false;
}
}
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog sd = new SaveFileDialog();
sd.Title = "Export SPIRV Binary";
if( sd.ShowDialog() != DialogResult.Cancel )
{
try
{
System.IO.File.WriteAllBytes(sd.FileName, m_SPIRV.GetBytes());
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
}
================================================
FILE: src/Backends/GLSlangResultsPanel.resx
================================================
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
================================================
FILE: src/Backends/IBackend.cs
================================================
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Pyramid
{
public interface IResultSet
{
string Name { get; }
Control AnalysisPanel { get; }
Control ResultsPanel { get; }
}
public interface IBackendOptions
{
}
public interface IBackend
{
string Name { get; }
IResultSet Compile(IShader shader, IBackendOptions options);
}
}
================================================
FILE: src/Backends/IntelShaderAnalyzerBackend.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows.Forms;
using System.Diagnostics;
namespace Pyramid
{
class IntelShaderAnalyzerResultSet : IResultSet
{
public string Name { get { return "IntelShaderAnalyzer"; } }
public Control AnalysisPanel { get { return m_Analysis; } }
public Control ResultsPanel { get { return m_Results; } }
private TextBox m_Analysis = new TextBox();
private IntelShaderAnalyzerResultsPanel m_Results = null;
public IntelShaderAnalyzerResultSet(IntelShaderAnalyzerResultsPanel panel )
{
m_Results = panel;
m_Analysis.Dock = DockStyle.Fill;
m_Analysis.ReadOnly = true;
m_Analysis.Multiline = true;
m_Analysis.Font = new System.Drawing.Font("Lucida Console", 8);
}
}
public class IntelShaderAnalyzerBackend : IBackend
{
private string m_ToolPath;
private string m_TempPath;
public IntelShaderAnalyzerBackend(Options PyramidOpts)
{
m_ToolPath = PyramidOpts.IntelShaderAnalyzerPath;
m_TempPath = PyramidOpts.TempPath;
}
public string Name { get { return "IGC"; } }
public List<string> GetAsicList()
{
try
{
ProcessStartInfo pi = new ProcessStartInfo();
pi.RedirectStandardOutput = true;
pi.RedirectStandardInput = false;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
pi.Arguments = "--list-asics";
pi.FileName = m_ToolPath;
pi.UseShellExecute = false;
Process p = Process.Start(pi);
int pid = p.Id;
// NOTE: Must read stdout before waiting for exit
// If we don't, then the process will hang if some stdout buffer fills up
// lame....
string stdout = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();
string[] lines = stdout.Split(
new[] { "\r\n", "\r", "\n" },
StringSplitOptions.None
);
List<String> asics = new List<string>();
foreach( string s in lines )
{
string asic = s.Trim();
if (!string.IsNullOrEmpty(asic))
asics.Add(asic);
}
return asics;
}
catch( System.Exception ex )
{
MessageBox.Show("Failed to get asic list from IntelShaderAnalyzer");
return new List<string>();
}
}
public IResultSet Compile(IShader shader, IBackendOptions options)
{
if (shader.Language == Languages.HLSL)
return CompileHLSL(shader as HLSLShader, options);
else
return null;
}
private IResultSet CompileHLSL(HLSLShader shader, IBackendOptions opts)
{
if (shader.CompiledBlob == null)
return null;
if (shader.CompiledBlob is IDXILShaderBlob &&
shader.CompiledRootSig == null)
return null;
try
{
List<string> tempFilesToDelete = new List<string>();
string byteCodeFile = Path.Combine(m_TempPath, "IGCShader");
string rootSigFile = Path.Combine(m_TempPath, "IGCRS");
File.WriteAllBytes( byteCodeFile, shader.CompiledBlob.ReadBytes() );
tempFilesToDelete.Add(byteCodeFile);
if( shader.CompiledRootSig != null )
{
File.WriteAllBytes(rootSigFile, shader.CompiledRootSig.ReadBytes());
tempFilesToDelete.Add(rootSigFile);
}
string commandline11 = "";
string commandline12 = "";
if (shader.CompiledBlob is IDXBCShaderBlob)
{
commandline11 = String.Format("--api dx11 \"{0}\"", byteCodeFile);
commandline12 = String.Format("--api dx12 \"{0}\" --rootsig_file \"{1}\"", byteCodeFile, rootSigFile);
}
else
{
commandline12 = String.Format("--api dx12 \"{0}\" --rootsig_file \"{1}\"", byteCodeFile, rootSigFile);
}
List<string> asics = GetAsicList();
foreach (string asic in asics)
{
commandline11 = String.Concat(commandline11, String.Format(" --asic {0} ", asic));
commandline12 = String.Concat(commandline12, String.Format(" --asic {0} ", asic));
}
string isaDir11 = Path.Combine(m_TempPath, "IntelISA_11\\");
string isaDir12 = Path.Combine(m_TempPath, "IntelISA_12\\");
Directory.CreateDirectory(isaDir11);
Directory.CreateDirectory(isaDir12);
// NOTE: Extra \ is required because DOS command interpretter parses \" as a double quote
commandline11 = String.Concat(commandline11, String.Format("--isa \"{0}\\\"", isaDir11));
commandline12 = String.Concat(commandline12, String.Format("--isa \"{0}\\\"", isaDir12));
string stdout = "";
List<string> dx11Files = new List<string>();
List<string> dx12Files = new List<string>();
// DX11 requires DXBC
if( shader.CompiledBlob is IDXBCShaderBlob)
{
ProcessStartInfo pi = new ProcessStartInfo();
pi.RedirectStandardOutput = true;
pi.RedirectStandardInput = false;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
pi.Arguments = commandline11;
pi.FileName = m_ToolPath;
pi.UseShellExecute = false;
Process p = Process.Start(pi);
int pid = p.Id;
// NOTE: Must read stdout before waiting for exit
// If we don't, then the process will hang if some stdout buffer fills up
// lame....
stdout = String.Concat("DX11 COMMAND LINE:", commandline11, Environment.NewLine);
stdout = String.Concat(stdout, p.StandardOutput.ReadToEnd());
p.WaitForExit();
p.Close();
foreach (string asic in asics)
dx11Files.Add(String.Concat(isaDir11, asic, ".asm"));
}
// DX12 requires a root signature
if( shader.CompiledRootSig != null )
{
ProcessStartInfo pi = new ProcessStartInfo();
pi.RedirectStandardOutput = true;
pi.RedirectStandardInput = false;
pi.RedirectStandardError = true;
pi.CreateNoWindow = true;
pi.Arguments = commandline12;
pi.FileName = m_ToolPath;
pi.UseShellExecute = false;
Process p = Process.Start(pi);
int pid = p.Id;
// NOTE: Must read stdout before waiting for exit
// If we don't, then the process will hang if some stdout buffer fills up
// lame....
stdout = String.Concat(stdout, string.Concat("DX12 COMMAND LINE: ", commandline12, Environment.NewLine));
stdout = String.Concat(stdout, Environment.NewLine);
stdout = String.Concat(stdout, p.StandardOutput.ReadToEnd());
p.WaitForExit();
p.Close();
foreach (string asic in asics)
dx12Files.Add(String.Concat(isaDir12, asic, ".asm"));
}
tempFilesToDelete.AddRange(dx11Files);
tempFilesToDelete.AddRange(dx12Files);
IntelShaderAnalyzerResultsPanel panel = new IntelShaderAnalyzerResultsPanel(stdout,asics);
panel.AddResults("DX11", dx11Files);
panel.AddResults("DX12", dx12Files);
// cleanup the temp files
foreach (string file in tempFilesToDelete)
File.Delete(file);
Directory.Delete(Path.Combine(m_TempPath, "IntelISA_11"));
Directory.Delete(Path.Combine(m_TempPath, "IntelISA_12"));
return new IntelShaderAnalyzerResultSet(panel);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "uh-oh, Couldn't run IntelShaderAnalyzer", MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
}
};
}
================================================
FILE: src/Backends/IntelShaderAnalyzerResultsPanel.Designer.cs
================================================
namespace Pyramid
{
partial class IntelShaderAnalyzerResultsPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.cmbOutputFile = new System.Windows.Forms.ComboBox();
this.cmbAPI = new System.Windows.Forms.ComboBox();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.txtAsm = new System.
gitextract_1e9qi61g/
├── .gitattributes
├── .gitignore
├── .gitmodules
├── Distribute.bat
├── LICENSE.txt
├── README.md
├── shims/
│ └── atidxx_shim/
│ ├── ShimDLL.cpp
│ ├── ShimDLL.sln
│ ├── ShimDLL.vcxproj
│ └── elf.h
├── src/
│ ├── App.config
│ ├── Backends/
│ │ ├── AMDDriverBackend.cs
│ │ ├── AMDDriverResultsPanel.Designer.cs
│ │ ├── AMDDriverResultsPanel.cs
│ │ ├── AMDDriverResultsPanel.resx
│ │ ├── CodeXLAnalysisPanel.Designer.cs
│ │ ├── CodeXLAnalysisPanel.cs
│ │ ├── CodeXLAnalysisPanel.resx
│ │ ├── CodeXLBackend.cs
│ │ ├── CodeXLResultsPanel.Designer.cs
│ │ ├── CodeXLResultsPanel.cs
│ │ ├── CodeXLResultsPanel.resx
│ │ ├── FXCBackend.cs
│ │ ├── FXCResultsPanel.Designer.cs
│ │ ├── FXCResultsPanel.cs
│ │ ├── FXCResultsPanel.resx
│ │ ├── GLSLOptimizerBackend.cs
│ │ ├── GLSlangBackend.cs
│ │ ├── GLSlangResultsPanel.Designer.cs
│ │ ├── GLSlangResultsPanel.cs
│ │ ├── GLSlangResultsPanel.resx
│ │ ├── IBackend.cs
│ │ ├── IntelShaderAnalyzerBackend.cs
│ │ ├── IntelShaderAnalyzerResultsPanel.Designer.cs
│ │ ├── IntelShaderAnalyzerResultsPanel.cs
│ │ ├── IntelShaderAnalyzerResultsPanel.resx
│ │ ├── MaliSCBackend.cs
│ │ ├── MaliSCResultsPanel.Designer.cs
│ │ ├── MaliSCResultsPanel.cs
│ │ ├── MaliSCResultsPanel.resx
│ │ ├── PVRResultsPanel.Designer.cs
│ │ ├── PVRResultsPanel.cs
│ │ ├── PVRResultsPanel.resx
│ │ ├── PowerVRBackend.cs
│ │ └── RGABackend.cs
│ ├── GLSLOptimizer.cs
│ ├── GLSLTypes.cs
│ ├── GLSlang.cs
│ ├── HLSLTypes.cs
│ ├── IAMDDriver.cs
│ ├── ICSharpCode.TextEditor/
│ │ └── Project/
│ │ ├── Configuration/
│ │ │ └── AssemblyInfo.cs
│ │ ├── GlobalAssemblyInfo.cs
│ │ ├── ICSharpCode.TextEditor.csproj
│ │ ├── Resources/
│ │ │ ├── CPP-Mode.xshd
│ │ │ ├── GLSL-Mode.xshd
│ │ │ ├── HLSL-Mode.xshd
│ │ │ ├── ICSharpCode.TextEditor.snk
│ │ │ ├── Mode.xsd
│ │ │ ├── RightArrow.cur
│ │ │ └── SyntaxModes.xml
│ │ └── Src/
│ │ ├── Actions/
│ │ │ ├── BookmarkActions.cs
│ │ │ ├── CaretActions.cs
│ │ │ ├── ClipBoardActions.cs
│ │ │ ├── FindReplaceAction.cs
│ │ │ ├── FoldActions.cs
│ │ │ ├── FormatActions.cs
│ │ │ ├── HomeEndActions.cs
│ │ │ ├── IEditAction.cs
│ │ │ ├── MiscActions.cs
│ │ │ └── SelectionActions.cs
│ │ ├── Document/
│ │ │ ├── AbstractSegment.cs
│ │ │ ├── BookmarkManager/
│ │ │ │ ├── Bookmark.cs
│ │ │ │ ├── BookmarkEventHandler.cs
│ │ │ │ ├── BookmarkManager.cs
│ │ │ │ └── BookmarkManagerMemento.cs
│ │ │ ├── DefaultDocument.cs
│ │ │ ├── DefaultTextEditorProperties.cs
│ │ │ ├── DocumentEventArgs.cs
│ │ │ ├── DocumentFactory.cs
│ │ │ ├── FoldingStrategy/
│ │ │ │ ├── FoldMarker.cs
│ │ │ │ ├── FoldingManager.cs
│ │ │ │ ├── IFoldingStrategy.cs
│ │ │ │ └── IndentFoldingStrategy.cs
│ │ │ ├── FormattingStrategy/
│ │ │ │ ├── DefaultFormattingStrategy.cs
│ │ │ │ └── IFormattingStrategy.cs
│ │ │ ├── HighlightingStrategy/
│ │ │ │ ├── DefaultHighlightingStrategy.cs
│ │ │ │ ├── FontContainer.cs
│ │ │ │ ├── HighlightBackground.cs
│ │ │ │ ├── HighlightColor.cs
│ │ │ │ ├── HighlightInfo.cs
│ │ │ │ ├── HighlightRuleSet.cs
│ │ │ │ ├── HighlightingColorNotFoundException.cs
│ │ │ │ ├── HighlightingDefinitionInvalidException.cs
│ │ │ │ ├── HighlightingDefinitionParser.cs
│ │ │ │ ├── HighlightingManager.cs
│ │ │ │ ├── HighlightingStrategyFactory.cs
│ │ │ │ ├── IHighlightingStrategy.cs
│ │ │ │ ├── NextMarker.cs
│ │ │ │ ├── PrevMarker.cs
│ │ │ │ ├── Span.cs
│ │ │ │ ├── SpanStack.cs
│ │ │ │ ├── SyntaxModes/
│ │ │ │ │ ├── FileSyntaxModeProvider.cs
│ │ │ │ │ ├── ISyntaxModeFileProvider.cs
│ │ │ │ │ ├── ResourceSyntaxModeProvider.cs
│ │ │ │ │ └── SyntaxMode.cs
│ │ │ │ └── TextWord.cs
│ │ │ ├── IDocument.cs
│ │ │ ├── ISegment.cs
│ │ │ ├── ITextEditorProperties.cs
│ │ │ ├── LineManager/
│ │ │ │ ├── DeferredEventList.cs
│ │ │ │ ├── LineManager.cs
│ │ │ │ ├── LineManagerEventArgs.cs
│ │ │ │ ├── LineSegment.cs
│ │ │ │ └── LineSegmentTree.cs
│ │ │ ├── MarkerStrategy/
│ │ │ │ ├── MarkerStrategy.cs
│ │ │ │ └── TextMarker.cs
│ │ │ ├── Selection/
│ │ │ │ ├── ColumnRange.cs
│ │ │ │ ├── DefaultSelection.cs
│ │ │ │ ├── ISelection.cs
│ │ │ │ └── SelectionManager.cs
│ │ │ ├── TextAnchor.cs
│ │ │ ├── TextBufferStrategy/
│ │ │ │ ├── GapTextBufferStrategy.cs
│ │ │ │ ├── ITextBufferStrategy.cs
│ │ │ │ └── StringTextBufferStrategy.cs
│ │ │ ├── TextLocation.cs
│ │ │ └── TextUtilities.cs
│ │ ├── Gui/
│ │ │ ├── AbstractMargin.cs
│ │ │ ├── BracketHighlighter.cs
│ │ │ ├── BrushRegistry.cs
│ │ │ ├── Caret.cs
│ │ │ ├── CompletionWindow/
│ │ │ │ ├── AbstractCompletionWindow.cs
│ │ │ │ ├── CodeCompletionListView.cs
│ │ │ │ ├── CodeCompletionWindow.cs
│ │ │ │ ├── DeclarationViewWindow.cs
│ │ │ │ ├── ICompletionData.cs
│ │ │ │ └── ICompletionDataProvider.cs
│ │ │ ├── DrawableLine.cs
│ │ │ ├── FindReplaceForm/
│ │ │ │ ├── FindAndReplaceForm.Designer.cs
│ │ │ │ ├── FindAndReplaceForm.cs
│ │ │ │ └── FindAndReplaceForm.resx
│ │ │ ├── FoldMargin.cs
│ │ │ ├── GutterMargin.cs
│ │ │ ├── HRuler.cs
│ │ │ ├── IconBarMargin.cs
│ │ │ ├── Ime.cs
│ │ │ ├── InsightWindow/
│ │ │ │ ├── IInsightDataProvider.cs
│ │ │ │ └── InsightWindow.cs
│ │ │ ├── TextArea.cs
│ │ │ ├── TextAreaClipboardHandler.cs
│ │ │ ├── TextAreaControl.cs
│ │ │ ├── TextAreaDragDropHandler.cs
│ │ │ ├── TextAreaMouseHandler.cs
│ │ │ ├── TextAreaUpdate.cs
│ │ │ ├── TextEditorControl.cs
│ │ │ ├── TextEditorControlBase.cs
│ │ │ ├── TextView.cs
│ │ │ └── ToolTipRequestEventArgs.cs
│ │ ├── Undo/
│ │ │ ├── IUndoableOperation.cs
│ │ │ ├── UndoQueue.cs
│ │ │ ├── UndoStack.cs
│ │ │ ├── UndoableDelete.cs
│ │ │ ├── UndoableInsert.cs
│ │ │ └── UndoableReplace.cs
│ │ └── Util/
│ │ ├── AugmentableRedBlackTree.cs
│ │ ├── CheckedList.cs
│ │ ├── FileReader.cs
│ │ ├── LoggingService.cs
│ │ ├── LookupTable.cs
│ │ ├── MouseWheelHandler.cs
│ │ ├── RedBlackTreeIterator.cs
│ │ ├── RtfWriter.cs
│ │ ├── TextUtility.cs
│ │ ├── TipPainter.cs
│ │ ├── TipPainterTools.cs
│ │ ├── TipSection.cs
│ │ ├── TipSpacer.cs
│ │ ├── TipSplitter.cs
│ │ ├── TipText.cs
│ │ └── WeakCollection.cs
│ ├── IIncludeHandler.cs
│ ├── IWrapper.cs
│ ├── IncludeHandler.cs
│ ├── LanguageTypes.cs
│ ├── Languages/
│ │ ├── GLSLLanguage.cs
│ │ ├── GLSLOptionsPanel.Designer.cs
│ │ ├── GLSLOptionsPanel.cs
│ │ ├── GLSLOptionsPanel.resx
│ │ ├── HLSLLanguage.cs
│ │ ├── HLSLOptionsPanel.Designer.cs
│ │ ├── HLSLOptionsPanel.cs
│ │ ├── HLSLOptionsPanel.resx
│ │ ├── ICompileOptionsPanel.cs
│ │ └── ILanguage.cs
│ ├── MainUI/
│ │ ├── AboutBox.Designer.cs
│ │ ├── AboutBox.cs
│ │ ├── AboutBox.resx
│ │ ├── MainForm.Designer.cs
│ │ ├── MainForm.cs
│ │ ├── MainForm.resx
│ │ ├── OptionsScreen.Designer.cs
│ │ ├── OptionsScreen.cs
│ │ └── OptionsScreen.resx
│ ├── Options.cs
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Pyramid.csproj
│ ├── Pyramid.sln
│ ├── PyramidTypes.csproj
│ ├── SPIRV.cs
│ ├── Scrutinizer/
│ │ ├── Analysis/
│ │ │ └── Algorithms.cs
│ │ └── UI/
│ │ ├── CFGWidget.Designer.cs
│ │ ├── CFGWidget.cs
│ │ ├── CFGWidget.resx
│ │ ├── InstructionWidget.Designer.cs
│ │ ├── InstructionWidget.cs
│ │ ├── InstructionWidget.resx
│ │ ├── ParameterWidget.Designer.cs
│ │ ├── ParameterWidget.cs
│ │ ├── ScrutinizerForm.Designer.cs
│ │ ├── ScrutinizerForm.cs
│ │ └── ScrutinizerForm.resx
│ ├── ScrutinizerTypes.cs
│ └── Wrapper/
│ ├── AMDAsic_Impl.cpp
│ ├── AMDAsic_Impl.h
│ ├── AMDDriver_Impl.cpp
│ ├── AMDDriver_Impl.h
│ ├── AMDShader_Impl.cpp
│ ├── AMDShader_Impl.h
│ ├── D3DCompiler_Impl.cpp
│ ├── D3DCompiler_Impl.h
│ ├── DXILCompiler_Impl.cpp
│ ├── DXILCompiler_Impl.h
│ ├── GCN1Decoder.cpp
│ ├── GCN1Decoder.h
│ ├── GCN3Decoder.cpp
│ ├── GCN3Decoder.h
│ ├── GCNBufferedPrinter.h
│ ├── GCNDecoder.cpp
│ ├── GCNDecoder.h
│ ├── GCNDisassembler.cpp
│ ├── GCNDisassembler.h
│ ├── GCNEnums.cpp
│ ├── GCNEnums.h
│ ├── GCNIsa.cpp
│ ├── GCNIsa.h
│ ├── GCNSimulator.cpp
│ ├── GCNSimulator.h
│ ├── GLSLOpt_Impl.cpp
│ ├── GLSLOpt_Impl.h
│ ├── GLSlang_Impl.cpp
│ ├── GLSlang_Impl.h
│ ├── GLSlang_Stubs.cpp
│ ├── Scrutinizer_GCN.cpp
│ ├── Scrutinizer_GCN.h
│ ├── Utilities.h
│ ├── Wrapper.cpp
│ ├── Wrapper.vcxproj
│ ├── Wrapper.vcxproj.filters
│ ├── amd-codexl-analyzer/
│ │ ├── Common/
│ │ │ └── Src/
│ │ │ └── DeviceInfo/
│ │ │ ├── DeviceInfo.h
│ │ │ ├── DeviceInfoUtils.cpp
│ │ │ └── DeviceInfoUtils.h
│ │ └── CommonProjects/
│ │ └── AMDTBackend/
│ │ └── Include/
│ │ └── Common/
│ │ ├── AmdDxGsaCompile.h
│ │ └── asic_reg/
│ │ ├── atiid.h
│ │ ├── ci_id.h
│ │ ├── cz_id.h
│ │ ├── evergreen_id.h
│ │ ├── kv_id.h
│ │ ├── northernisland_id.h
│ │ ├── si_id.h
│ │ ├── sumo_id.h
│ │ ├── tn_id.h
│ │ └── vi_id.h
│ ├── dxc/
│ │ ├── HLSL/
│ │ │ ├── DXIL.h
│ │ │ ├── DxilCBuffer.h
│ │ │ ├── DxilCompType.h
│ │ │ ├── DxilConstants.h
│ │ │ ├── DxilContainer.h
│ │ │ ├── DxilGenerationPass.h
│ │ │ ├── DxilInstructions.h
│ │ │ ├── DxilInterpolationMode.h
│ │ │ ├── DxilMetadataHelper.h
│ │ │ ├── DxilModule.h
│ │ │ ├── DxilOperations.h
│ │ │ ├── DxilPipelineStateValidation.h
│ │ │ ├── DxilResource.h
│ │ │ ├── DxilResourceBase.h
│ │ │ ├── DxilRootSignature.h
│ │ │ ├── DxilSampler.h
│ │ │ ├── DxilSemantic.h
│ │ │ ├── DxilShaderModel.h
│ │ │ ├── DxilSigPoint.h
│ │ │ ├── DxilSignature.h
│ │ │ ├── DxilSignatureAllocator.h
│ │ │ ├── DxilSignatureElement.h
│ │ │ ├── DxilSpanAllocator.h
│ │ │ ├── DxilTypeSystem.h
│ │ │ ├── DxilValidation.h
│ │ │ ├── HLMatrixLowerHelper.h
│ │ │ ├── HLMatrixLowerPass.h
│ │ │ ├── HLModule.h
│ │ │ ├── HLOperationLower.h
│ │ │ ├── HLOperationLowerExtension.h
│ │ │ ├── HLOperations.h
│ │ │ ├── HLResource.h
│ │ │ ├── HLSLExtensionsCodegenHelper.h
│ │ │ └── ReducibilityAnalysis.h
│ │ ├── HlslIntrinsicOp.h
│ │ ├── Support/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── DxcLangExtensionsHelper.h
│ │ │ ├── ErrorCodes.h
│ │ │ ├── FileIOHelper.h
│ │ │ ├── Global.h
│ │ │ ├── HLSLOptions.h
│ │ │ ├── HLSLOptions.td
│ │ │ ├── Unicode.h
│ │ │ ├── WinIncludes.h
│ │ │ ├── dxcapi.impl.h
│ │ │ ├── dxcapi.use.h
│ │ │ ├── exception.h
│ │ │ └── microcom.h
│ │ ├── Tracing/
│ │ │ ├── CMakeLists.txt
│ │ │ └── dxcetw.man
│ │ ├── dxcapi.h
│ │ ├── dxcapi.internal.h
│ │ ├── dxcisense.h
│ │ └── dxctools.h
│ └── elf.h
└── test/
├── ShadowMaps.txt
├── branches_test
├── cs_addreturntest
├── cs_append
├── cs_barrier_test
├── cs_cull
├── cs_raster.hlsl
├── cs_raycaster
├── cs_sepgauss
├── include/
│ ├── include_d.txt
│ └── include_e.txt
├── include_a.txt
├── include_b.txt
├── include_root.txt
├── manual_trilerp
├── manual_trilerp_glsl
├── matthias_bug
├── mips
├── moblur_reduc
├── ps_lighting.txt
├── ps_lighting_normalmap
├── ps_ubershader
├── trivial_test_shaders.txt
├── trivial_vs_glsl
├── vs_rigid
└── vs_skinning
Showing preview only (272K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2685 symbols across 269 files)
FILE: shims/atidxx_shim/ShimDLL.cpp
type esi_struct (line 12) | struct esi_struct
method Print (line 68) | void Print( )
type edi_struct (line 13) | struct edi_struct
method Print (line 84) | void Print( )
method PrintSections (line 89) | void PrintSections( )
method PrintGoryDetails (line 107) | void PrintGoryDetails( )
class ScopedLock (line 25) | class ScopedLock
method ScopedLock (line 28) | ScopedLock() { EnterCriticalSection(&g_Lock); }
function Log (line 33) | void Log( const char* Format, ... )
type esi_struct (line 59) | struct esi_struct
method Print (line 68) | void Print( )
type edi_struct (line 78) | struct edi_struct
method Print (line 84) | void Print( )
method PrintSections (line 89) | void PrintSections( )
method PrintGoryDetails (line 107) | void PrintGoryDetails( )
function HRESULT (line 144) | static HRESULT Test( esi_struct* esi, edi_struct* edi )
function DWORD (line 166) | __declspec(dllexport) DWORD CALL AmdDxGsaCompileShader( esi_struct* esi,...
function AmdDxGsaFreeCompiledShader (line 190) | __declspec(dllexport) void CALL AmdDxGsaFreeCompiledShader( void* p )
function BOOL (line 201) | BOOL WINAPI DllMain(
FILE: shims/atidxx_shim/elf.h
type Elf32_Half (line 36) | typedef uint16_t Elf32_Half;
type Elf64_Half (line 37) | typedef uint16_t Elf64_Half;
type Elf32_Word (line 40) | typedef uint32_t Elf32_Word;
type Elf32_Sword (line 41) | typedef int32_t Elf32_Sword;
type Elf64_Word (line 42) | typedef uint32_t Elf64_Word;
type Elf64_Sword (line 43) | typedef int32_t Elf64_Sword;
type Elf32_Xword (line 46) | typedef uint64_t Elf32_Xword;
type Elf32_Sxword (line 47) | typedef int64_t Elf32_Sxword;
type Elf64_Xword (line 48) | typedef uint64_t Elf64_Xword;
type Elf64_Sxword (line 49) | typedef int64_t Elf64_Sxword;
type Elf32_Addr (line 52) | typedef uint32_t Elf32_Addr;
type Elf64_Addr (line 53) | typedef uint64_t Elf64_Addr;
type Elf32_Off (line 56) | typedef uint32_t Elf32_Off;
type Elf64_Off (line 57) | typedef uint64_t Elf64_Off;
type Elf32_Ehdr (line 90) | typedef struct {
type Elf32_Phdr (line 292) | typedef struct {
type Elf64_Phdr (line 304) | typedef struct {
type Elf32_Shdr (line 364) | typedef struct {
type Elf64_Shdr (line 378) | typedef struct {
type Elf32_Sym (line 485) | typedef struct {
type Elf64_Sym (line 495) | typedef struct {
type Elf32_Rel (line 570) | typedef struct {
type Elf32_Rela (line 575) | typedef struct {
type Elf64_Rel (line 582) | typedef struct {
type Elf64_Rela (line 587) | typedef struct {
type Elf32_Nhdr (line 635) | typedef struct {
type Elf64_Nhdr (line 642) | typedef struct {
type Elf32_Move (line 653) | typedef struct {
type Elf64_Move (line 672) | typedef struct {
type Elf32_Cap (line 690) | typedef struct {
type Elf64_Cap (line 699) | typedef struct {
FILE: src/Backends/AMDDriverBackend.cs
class AMDDriverResultSet (line 10) | class AMDDriverResultSet : IResultSet
method AMDDriverResultSet (line 19) | public AMDDriverResultSet( IDXShaderReflection reflection )
method Add (line 33) | public void Add( IAMDShader sh )
class AMDDriverBackendOptions (line 39) | class AMDDriverBackendOptions : IBackendOptions
method AMDDriverBackendOptions (line 43) | public AMDDriverBackendOptions(List<string> requestedAsics)
class AMDDriverBackend (line 51) | class AMDDriverBackend : IBackend
method AMDDriverBackend (line 60) | public AMDDriverBackend( IAMDDriver driver, ID3DCompiler fxc )
method CompileForAsic (line 74) | private bool CompileForAsic(List<string> asics, string asic)
method Compile (line 82) | public IResultSet Compile(IShader shaderObj, IBackendOptions options)
FILE: src/Backends/AMDDriverResultsPanel.Designer.cs
class AMDDriverResultsPanel (line 3) | partial class AMDDriverResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/AMDDriverResultsPanel.cs
class AMDDriverResultsPanel (line 13) | public partial class AMDDriverResultsPanel : UserControl
method AMDDriverResultsPanel (line 22) | public AMDDriverResultsPanel( IDXShaderReflection shader )
method AddResult (line 31) | public void AddResult(IAMDShader shader)
method HexDump (line 39) | private string HexDump( IAMDShader sh )
method cmbAsic_SelectedIndexChanged (line 70) | private void cmbAsic_SelectedIndexChanged(object sender, EventArgs e)
method btnScrutinize_Click (line 87) | private void btnScrutinize_Click(object sender, EventArgs e)
FILE: src/Backends/CodeXLAnalysisPanel.Designer.cs
class CodeXLAnalysisPanel (line 3) | partial class CodeXLAnalysisPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/CodeXLAnalysisPanel.cs
class CodeXLAnalysisPanel (line 13) | public partial class CodeXLAnalysisPanel : UserControl
method CodeXLAnalysisPanel (line 17) | public CodeXLAnalysisPanel()
method AddResult (line 22) | public void AddResult(string asic, Dictionary<string, string> vals)
method SetAsic (line 33) | public void SetAsic(string asic)
method PopulateListView (line 41) | private void PopulateListView(List<KeyValuePair<string, string>> items)
FILE: src/Backends/CodeXLBackend.cs
class CodeXLResultSet (line 11) | class CodeXLResultSet : IResultSet
method CodeXLResultSet (line 16) | public CodeXLResultSet()
method AddCompileResult (line 32) | public void AddCompileResult( string asic, string il, string isa )
method AddAnalysisResult (line 37) | public void AddAnalysisResult( string asic, Dictionary<string,string> ...
method DisplayAsic (line 42) | public void DisplayAsic(string asic)
class CodeXLBackendOptions (line 49) | class CodeXLBackendOptions : IBackendOptions
method CodeXLBackendOptions (line 53) | public CodeXLBackendOptions(List<string> requestedAsics)
class CodeXLBackend (line 61) | class CodeXLBackend : IBackend
method GetSupportedAsics (line 71) | public static List<String> GetSupportedAsics( string CodeXLPath, strin...
method CodeXLBackend (line 112) | public CodeXLBackend( string CodeXLPath, string D3DCompilerPath, strin...
method CompileForAsic (line 121) | private bool CompileForAsic( List<string> asics, string asic )
method Compile (line 129) | public IResultSet Compile(IShader shader, IBackendOptions options)
FILE: src/Backends/CodeXLResultsPanel.Designer.cs
class AMDResultsPanel (line 3) | partial class AMDResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/CodeXLResultsPanel.cs
class AMDResultsPanel (line 11) | public partial class AMDResultsPanel : UserControl
method AMDResultsPanel (line 16) | public AMDResultsPanel()
method SetToolOutput (line 25) | public void SetToolOutput( string output )
method AddResult (line 29) | public void AddResult(string Asic, string IL, string ISA)
method AddResult (line 39) | public void AddResult(string Asic, string IL, string ISA, string LiveReg)
method SetAsic (line 50) | public void SetAsic(string name)
method cmbAsic_SelectedIndexChanged (line 66) | private void cmbAsic_SelectedIndexChanged(object sender, EventArgs e)
FILE: src/Backends/FXCBackend.cs
class FXCResultSet (line 9) | class FXCResultSet : IResultSet
method FXCResultSet (line 13) | public FXCResultSet(HLSLShader shader)
class D3DCompilerBackend (line 23) | class D3DCompilerBackend : IBackend
method D3DCompilerBackend (line 30) | public D3DCompilerBackend( ID3DCompiler comp, IDXILCompiler dxil )
method Compile (line 36) | public IResultSet Compile(IShader shader, IBackendOptions options)
FILE: src/Backends/FXCResultsPanel.Designer.cs
class FXCResultsPanel (line 3) | partial class FXCResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/FXCResultsPanel.cs
class FXCResultsPanel (line 16) | public partial class FXCResultsPanel : UserControl
method HexBumpBlob (line 21) | private static void HexBumpBlob( StringBuilder str, byte[] bytes )
method FXCResultsPanel (line 58) | public FXCResultsPanel( HLSLShader shader )
method btnExportBytecode_Click (line 143) | private void btnExportBytecode_Click(object sender, EventArgs e)
method btnExportRootSig_Click (line 155) | private void btnExportRootSig_Click(object sender, EventArgs e)
method DeclareByteArray (line 168) | private static void DeclareByteArray(StringBuilder str, byte[] bytes, ...
method btnExportCPP_Click (line 189) | private void btnExportCPP_Click(object sender, EventArgs e)
FILE: src/Backends/GLSLOptimizerBackend.cs
class GLSLOptimizerResultSet (line 7) | class GLSLOptimizerResultSet : IResultSet
method GLSLOptimizerResultSet (line 12) | public GLSLOptimizerResultSet(GLSLOptimizer.IShader shader)
class GLSLOptimizerBackend (line 72) | class GLSLOptimizerBackend : IBackend
method GLSLOptimizerBackend (line 79) | public GLSLOptimizerBackend(IWrapper wrapper)
method Compile (line 85) | public IResultSet Compile(IShader shader, IBackendOptions options)
FILE: src/Backends/GLSlangBackend.cs
class GLSlangBackend (line 7) | class GLSlangBackend : IBackend
class GLSLangResultSet (line 14) | private class GLSLangResultSet : IResultSet
method GLSLangResultSet (line 21) | public GLSLangResultSet(GLSlang.IShader shader)
method GLSlangBackend (line 30) | public GLSlangBackend( IWrapper wrapper, IIncludeHandler handler )
method Compile (line 36) | public IResultSet Compile(IShader shader, IBackendOptions options)
FILE: src/Backends/GLSlangResultsPanel.Designer.cs
class GLSlangResultsPanel (line 3) | partial class GLSlangResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/GLSlangResultsPanel.cs
class GLSlangResultsPanel (line 13) | public partial class GLSlangResultsPanel : UserControl
method GLSlangResultsPanel (line 17) | public GLSlangResultsPanel(GLSlang.IShader shader, SPIRV.IProgram spirv)
method button1_Click (line 35) | private void button1_Click(object sender, EventArgs e)
FILE: src/Backends/IBackend.cs
type IResultSet (line 7) | public interface IResultSet
type IBackendOptions (line 14) | public interface IBackendOptions
type IBackend (line 19) | public interface IBackend
method Compile (line 22) | IResultSet Compile(IShader shader, IBackendOptions options);
FILE: src/Backends/IntelShaderAnalyzerBackend.cs
class IntelShaderAnalyzerResultSet (line 12) | class IntelShaderAnalyzerResultSet : IResultSet
method IntelShaderAnalyzerResultSet (line 20) | public IntelShaderAnalyzerResultSet(IntelShaderAnalyzerResultsPanel pa...
class IntelShaderAnalyzerBackend (line 31) | public class IntelShaderAnalyzerBackend : IBackend
method IntelShaderAnalyzerBackend (line 36) | public IntelShaderAnalyzerBackend(Options PyramidOpts)
method GetAsicList (line 44) | public List<string> GetAsicList()
method Compile (line 91) | public IResultSet Compile(IShader shader, IBackendOptions options)
method CompileHLSL (line 99) | private IResultSet CompileHLSL(HLSLShader shader, IBackendOptions opts)
FILE: src/Backends/IntelShaderAnalyzerResultsPanel.Designer.cs
class IntelShaderAnalyzerResultsPanel (line 3) | partial class IntelShaderAnalyzerResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/IntelShaderAnalyzerResultsPanel.cs
class IntelShaderAnalyzerResultsPanel (line 14) | public partial class IntelShaderAnalyzerResultsPanel : UserControl
method IntelShaderAnalyzerResultsPanel (line 16) | public IntelShaderAnalyzerResultsPanel( string stdout, List<string> as...
method AddResults (line 30) | public void AddResults( string api, List<string> files )
method RefreshAsm (line 53) | private void RefreshAsm()
method tabPage1_Click (line 70) | private void tabPage1_Click(object sender, EventArgs e)
method cmbAPI_SelectedIndexChanged (line 75) | private void cmbAPI_SelectedIndexChanged(object sender, EventArgs e)
method cmbOutputFile_SelectedIndexChanged (line 80) | private void cmbOutputFile_SelectedIndexChanged(object sender, EventAr...
FILE: src/Backends/MaliSCBackend.cs
class MaliSCResultSet (line 10) | public class MaliSCResultSet : IResultSet
method MaliSCResultSet (line 16) | public MaliSCResultSet()
method Add (line 21) | public void Add(string core, string output)
class MaliSCBackend (line 28) | public class MaliSCBackend : IBackend
method MaliSCBackend (line 34) | public MaliSCBackend(string MaliRoot, string TempPath)
method Compile (line 83) | public IResultSet Compile(IShader sh, IBackendOptions options)
FILE: src/Backends/MaliSCResultsPanel.Designer.cs
class MaliSCResultsPanel (line 3) | partial class MaliSCResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/MaliSCResultsPanel.cs
class MaliSCResultsPanel (line 13) | public partial class MaliSCResultsPanel : UserControl
method MaliSCResultsPanel (line 18) | public MaliSCResultsPanel()
method AddResult (line 23) | public void AddResult(string core, string output)
method cmbCore_SelectedIndexChanged (line 32) | private void cmbCore_SelectedIndexChanged(object sender, EventArgs e)
FILE: src/Backends/PVRResultsPanel.Designer.cs
class PVRResultsPanel (line 3) | partial class PVRResultsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Backends/PVRResultsPanel.cs
class PVRResultsPanel (line 9) | public partial class PVRResultsPanel : UserControl
method PVRResultsPanel (line 14) | public PVRResultsPanel()
method AddResult (line 19) | public void AddResult( string compiler, string output, string asm )
method cmbCompiler_SelectedIndexChanged (line 28) | private void cmbCompiler_SelectedIndexChanged(object sender, EventArgs e)
FILE: src/Backends/PowerVRBackend.cs
class PVRResultSet (line 10) | class PVRResultSet : IResultSet
class PowerVRBackend (line 21) | class PowerVRBackend : IBackend
method PowerVRBackend (line 28) | public PowerVRBackend( string CompilerDir, string tempDir )
method Compile (line 75) | public IResultSet Compile(IShader sh, IBackendOptions options)
FILE: src/Backends/RGABackend.cs
class RGAResult (line 10) | class RGAResult
method RGAResult (line 18) | public RGAResult( string asic, string path )
class GenericTextResultSet (line 52) | class GenericTextResultSet : IResultSet
method GenericTextResultSet (line 54) | public GenericTextResultSet(string name, string text)
class RGAResultSet (line 73) | class RGAResultSet : IResultSet
method RGAResultSet (line 79) | public RGAResultSet( string name, string toolOutput )
method AddCompileResult (line 102) | public void AddCompileResult( RGAResult result )
method DisplayAsic (line 108) | public void DisplayAsic(string asic)
class RGABackendOptions (line 115) | class RGABackendOptions : IBackendOptions
method RGABackendOptions (line 119) | public RGABackendOptions( Options opts )
method ShouldCompileForAsic (line 125) | public bool ShouldCompileForAsic( string asic)
class RGABackend (line 132) | class RGABackend : IBackend
method GetAsicList (line 143) | public static List<string> GetAsicList( string RGAPath )
method RGABackend (line 194) | public RGABackend(string RGAPath, string TempPath, IWrapper wrapper, I...
method GetRGAShaderType (line 204) | private string GetRGAShaderType(GLSLShaderType eShaderType)
method CompileShader (line 221) | GLSlang.IShader CompileShader( IShader shader )
method Compile (line 240) | public IResultSet Compile(IShader shader, IBackendOptions options)
FILE: src/GLSLOptimizer.cs
type Target (line 8) | public enum Target
type ShaderType (line 15) | public enum ShaderType
type IOptions (line 21) | public interface IOptions
type IShader (line 28) | public interface IShader
type IOptimizer (line 40) | public interface IOptimizer
method Optimize (line 42) | IShader Optimize(string text, IOptions opts);
FILE: src/GLSLTypes.cs
type GLSLShaderType (line 9) | public enum GLSLShaderType
type IGLSLOptions (line 19) | public interface IGLSLOptions : ICompileOptions
class GLSLShader (line 26) | public class GLSLShader : IShader
method GLSLShader (line 28) | public GLSLShader(string code, IGLSLOptions opts, string path )
FILE: src/GLSlang.cs
type IShader (line 9) | public interface IShader
method CompileSPIRV (line 15) | SPIRV.IProgram CompileSPIRV();
type IConfig (line 18) | public interface IConfig
type ICompiler (line 22) | public interface ICompiler
method CreateConfig (line 24) | IConfig CreateConfig(string text);
method CreateDefaultConfig (line 25) | IConfig CreateDefaultConfig();
method Compile (line 26) | IShader Compile(string text, GLSLShaderType eType, IConfig config, str...
method CompileHLSL (line 27) | IShader CompileHLSL(string text, IHLSLOptions opts, IConfig config, st...
FILE: src/HLSLTypes.cs
type HLSLTarget (line 8) | public enum HLSLTarget
type RootSignatureTarget (line 57) | public enum RootSignatureTarget
type HLSLOptimizationLevel (line 63) | public enum HLSLOptimizationLevel
type HLSLShaderType (line 72) | public enum HLSLShaderType
type IHLSLOptions (line 82) | public interface IHLSLOptions : ICompileOptions
method GetFXCCommandLine (line 92) | string GetFXCCommandLine(string shaderFile);
method GetD3DCompileFlagBits (line 93) | uint GetD3DCompileFlagBits();
type IDXShaderReflection (line 96) | public interface IDXShaderReflection
method GetShaderType (line 98) | HLSLShaderType GetShaderType();
method GetThreadsPerGroup (line 99) | uint GetThreadsPerGroup();
type IDXBlob (line 102) | public interface IDXBlob
method ReadBytes (line 104) | byte[] ReadBytes();
type IDXShaderBlob (line 107) | public interface IDXShaderBlob : IDXBlob
method Disassemble (line 109) | string Disassemble();
method ExtractRootSignature (line 110) | IDXBlob ExtractRootSignature();
type IDXILShaderBlob (line 113) | public interface IDXILShaderBlob : IDXShaderBlob
type IDXBCShaderBlob (line 117) | public interface IDXBCShaderBlob : IDXShaderBlob
method GetSignatureBlob (line 119) | IDXBCShaderBlob GetSignatureBlob();
method GetExecutableBlob (line 120) | IDXBCShaderBlob GetExecutableBlob();
method Strip (line 121) | IDXBCShaderBlob Strip();
method Reflect (line 122) | IDXShaderReflection Reflect();
class HLSLShader (line 126) | public class HLSLShader : IShader
method HLSLShader (line 128) | public HLSLShader(string code, IHLSLOptions opts ,string path)
method CompileRootSignature (line 146) | public bool CompileRootSignature( IDXILCompiler compiler )
method Compile (line 164) | public bool Compile( ID3DCompiler compiler, IDXILCompiler dxil )
type ID3DCompiler (line 217) | public interface ID3DCompiler
method CompileRootSignature (line 219) | bool CompileRootSignature(string text,
method Compile (line 225) | bool Compile(string text,
type IDXILCompiler (line 232) | public interface IDXILCompiler
method CompileRootSignature (line 234) | bool CompileRootSignature(string text,
method Compile (line 240) | bool Compile(string text,
FILE: src/IAMDDriver.cs
type IAMDAsic (line 9) | public interface IAMDAsic
type IAMDShader (line 15) | public interface IAMDShader
method ReadISABytes (line 18) | byte[] ReadISABytes();
method Disassemble (line 19) | string Disassemble();
method ListEncodings (line 20) | string ListEncodings();
method PrintStats (line 21) | string PrintStats( );
method CreateScrutinizer (line 22) | Scrutinizer.IScrutinizer CreateScrutinizer( );
type IAMDDriver (line 25) | public interface IAMDDriver
method CompileDXBlob (line 34) | IAMDShader CompileDXBlob(IAMDAsic asic, byte[] blob, IDXShaderReflecti...
FILE: src/ICSharpCode.TextEditor/Project/GlobalAssemblyInfo.cs
class RevisionClass (line 25) | internal static class RevisionClass
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/BookmarkActions.cs
class ToggleBookmark (line 13) | public class ToggleBookmark : AbstractEditAction
method Execute (line 15) | public override void Execute(TextArea textArea)
class GotoPrevBookmark (line 24) | public class GotoPrevBookmark : AbstractEditAction
method GotoPrevBookmark (line 28) | public GotoPrevBookmark(Predicate<Bookmark> predicate)
method Execute (line 33) | public override void Execute(TextArea textArea)
class GotoNextBookmark (line 44) | public class GotoNextBookmark : AbstractEditAction
method GotoNextBookmark (line 48) | public GotoNextBookmark(Predicate<Bookmark> predicate)
method Execute (line 53) | public override void Execute(TextArea textArea)
class ClearAllBookmarks (line 64) | public class ClearAllBookmarks : AbstractEditAction
method ClearAllBookmarks (line 68) | public ClearAllBookmarks(Predicate<Bookmark> predicate)
method Execute (line 73) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/CaretActions.cs
class CaretLeft (line 16) | public class CaretLeft : AbstractEditAction
method Execute (line 18) | public override void Execute(TextArea textArea)
class CaretRight (line 47) | public class CaretRight : AbstractEditAction
method Execute (line 49) | public override void Execute(TextArea textArea)
class CaretUp (line 77) | public class CaretUp : AbstractEditAction
method Execute (line 79) | public override void Execute(TextArea textArea)
class CaretDown (line 96) | public class CaretDown : AbstractEditAction
method Execute (line 98) | public override void Execute(TextArea textArea)
class WordRight (line 117) | public class WordRight : CaretRight
method Execute (line 119) | public override void Execute(TextArea textArea)
class WordLeft (line 149) | public class WordLeft : CaretLeft
method Execute (line 151) | public override void Execute(TextArea textArea)
class ScrollLineUp (line 183) | public class ScrollLineUp : AbstractEditAction
method Execute (line 185) | public override void Execute(TextArea textArea)
class ScrollLineDown (line 194) | public class ScrollLineDown : AbstractEditAction
method Execute (line 196) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/ClipBoardActions.cs
class Cut (line 12) | public class Cut : AbstractEditAction
method Execute (line 14) | public override void Execute(TextArea textArea)
class Copy (line 23) | public class Copy : AbstractEditAction
method Execute (line 25) | public override void Execute(TextArea textArea)
class Paste (line 32) | public class Paste : AbstractEditAction
method Execute (line 34) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/FindReplaceAction.cs
class FindReplaceAction (line 8) | public class FindReplaceAction : AbstractEditAction
method Execute (line 10) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/FoldActions.cs
class ToggleFolding (line 14) | public class ToggleFolding : AbstractEditAction
method Execute (line 16) | public override void Execute(TextArea textArea)
class ToggleAllFoldings (line 40) | public class ToggleAllFoldings : AbstractEditAction
method Execute (line 42) | public override void Execute(TextArea textArea)
class ShowDefinitionsOnly (line 58) | public class ShowDefinitionsOnly : AbstractEditAction
method Execute (line 60) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/FormatActions.cs
class AbstractLineFormatAction (line 14) | public abstract class AbstractLineFormatAction : AbstractEditAction
method Convert (line 17) | abstract protected void Convert(IDocument document, int startLine, int...
method Execute (line 19) | public override void Execute(TextArea textArea)
class AbstractSelectionFormatAction (line 38) | public abstract class AbstractSelectionFormatAction : AbstractEditAction
method Convert (line 41) | abstract protected void Convert(IDocument document, int offset, int le...
method Execute (line 43) | public override void Execute(TextArea textArea)
class RemoveLeadingWS (line 60) | public class RemoveLeadingWS : AbstractLineFormatAction
method Convert (line 62) | protected override void Convert(IDocument document, int y1, int y2)
class RemoveTrailingWS (line 77) | public class RemoveTrailingWS : AbstractLineFormatAction
method Convert (line 79) | protected override void Convert(IDocument document, int y1, int y2)
class ToUpperCase (line 95) | public class ToUpperCase : AbstractSelectionFormatAction
method Convert (line 97) | protected override void Convert(IDocument document, int startOffset, i...
class ToLowerCase (line 104) | public class ToLowerCase : AbstractSelectionFormatAction
method Convert (line 106) | protected override void Convert(IDocument document, int startOffset, i...
class InvertCaseAction (line 113) | public class InvertCaseAction : AbstractSelectionFormatAction
method Convert (line 115) | protected override void Convert(IDocument document, int startOffset, i...
class CapitalizeAction (line 127) | public class CapitalizeAction : AbstractSelectionFormatAction
method Convert (line 129) | protected override void Convert(IDocument document, int startOffset, i...
class ConvertTabsToSpaces (line 143) | public class ConvertTabsToSpaces : AbstractSelectionFormatAction
method Convert (line 145) | protected override void Convert(IDocument document, int startOffset, i...
class ConvertSpacesToTabs (line 153) | public class ConvertSpacesToTabs : AbstractSelectionFormatAction
method Convert (line 155) | protected override void Convert(IDocument document, int startOffset, i...
class ConvertLeadingTabsToSpaces (line 163) | public class ConvertLeadingTabsToSpaces : AbstractLineFormatAction
method Convert (line 165) | protected override void Convert(IDocument document, int y1, int y2)
class ConvertLeadingSpacesToTabs (line 186) | public class ConvertLeadingSpacesToTabs : AbstractLineFormatAction
method Convert (line 188) | protected override void Convert(IDocument document, int y1, int y2)
class FormatBuffer (line 206) | public class FormatBuffer : AbstractLineFormatAction
method Convert (line 208) | protected override void Convert(IDocument document, int startLine, int...
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/HomeEndActions.cs
class Home (line 16) | public class Home : AbstractEditAction
method Execute (line 18) | public override void Execute(TextArea textArea)
class End (line 61) | public class End : AbstractEditAction
method Execute (line 63) | public override void Execute(TextArea textArea)
class MoveToStart (line 91) | public class MoveToStart : AbstractEditAction
method Execute (line 93) | public override void Execute(TextArea textArea)
class MoveToEnd (line 103) | public class MoveToEnd : AbstractEditAction
method Execute (line 105) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/IEditAction.cs
type IEditAction (line 17) | public interface IEditAction
method Execute (line 30) | void Execute(TextArea textArea);
class AbstractEditAction (line 37) | public abstract class AbstractEditAction : IEditAction
method Execute (line 56) | public abstract void Execute(TextArea textArea);
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/MiscActions.cs
class Tab (line 17) | public class Tab : AbstractEditAction
method GetIndentationString (line 19) | public static string GetIndentationString(IDocument document)
method GetIndentationString (line 24) | public static string GetIndentationString(IDocument document, TextArea...
method InsertTabs (line 42) | void InsertTabs(IDocument document, ISelection selection, int y1, int y2)
method InsertTabAtCaretPosition (line 60) | void InsertTabAtCaretPosition(TextArea textArea)
method Execute (line 80) | public override void Execute(TextArea textArea)
class ShiftTab (line 110) | public class ShiftTab : AbstractEditAction
method RemoveTabs (line 112) | void RemoveTabs(IDocument document, ISelection selection, int y1, int y2)
method Execute (line 179) | public override void Execute(TextArea textArea)
class ToggleComment (line 212) | public class ToggleComment : AbstractEditAction
method Execute (line 218) | public override void Execute(TextArea textArea)
class ToggleLineComment (line 233) | public class ToggleLineComment : AbstractEditAction
method RemoveCommentAt (line 238) | void RemoveCommentAt(IDocument document, string comment, ISelection se...
method SetCommentAt (line 257) | void SetCommentAt(IDocument document, string comment, ISelection selec...
method ShouldComment (line 274) | bool ShouldComment(IDocument document, string comment, ISelection sele...
method Execute (line 294) | public override void Execute(TextArea textArea)
class ToggleBlockComment (line 348) | public class ToggleBlockComment : AbstractEditAction
method Execute (line 354) | public override void Execute(TextArea textArea)
method FindSelectedCommentRegion (line 399) | public static BlockCommentRegion FindSelectedCommentRegion(IDocument d...
method SetCommentAt (line 470) | void SetCommentAt(IDocument document, int offsetStart, int offsetEnd, ...
method RemoveComment (line 476) | void RemoveComment(IDocument document, BlockCommentRegion commentRegion)
class BlockCommentRegion (line 483) | public class BlockCommentRegion
method BlockCommentRegion (line 493) | public BlockCommentRegion(string commentStart, string commentEnd, int ...
method GetHashCode (line 525) | public override int GetHashCode()
method Equals (line 537) | public override bool Equals(object obj)
class IndentSelection (line 545) | public class IndentSelection : AbstractEditAction
method Execute (line 551) | public override void Execute(TextArea textArea)
class Backspace (line 569) | public class Backspace : AbstractEditAction
method Execute (line 575) | public override void Execute(TextArea textArea)
class Delete (line 606) | public class Delete : AbstractEditAction
method DeleteSelection (line 608) | internal static void DeleteSelection(TextArea textArea)
method Execute (line 624) | public override void Execute(TextArea textArea)
class MovePageDown (line 655) | public class MovePageDown : AbstractEditAction
method Execute (line 661) | public override void Execute(TextArea textArea)
class MovePageUp (line 673) | public class MovePageUp : AbstractEditAction
method Execute (line 679) | public override void Execute(TextArea textArea)
class Return (line 690) | public class Return : AbstractEditAction
method Execute (line 696) | public override void Execute(TextArea textArea)
class ToggleEditMode (line 722) | public class ToggleEditMode : AbstractEditAction
method Execute (line 728) | public override void Execute(TextArea textArea)
class Undo (line 744) | public class Undo : AbstractEditAction
method Execute (line 750) | public override void Execute(TextArea textArea)
class Redo (line 756) | public class Redo : AbstractEditAction
method Execute (line 762) | public override void Execute(TextArea textArea)
class WordBackspace (line 774) | public class WordBackspace : AbstractEditAction
method Execute (line 780) | public override void Execute(TextArea textArea)
class DeleteWord (line 832) | public class DeleteWord : Delete
method Execute (line 838) | public override void Execute(TextArea textArea)
class DeleteLine (line 869) | public class DeleteLine : AbstractEditAction
method Execute (line 871) | public override void Execute(TextArea textArea)
class DeleteToLineEnd (line 886) | public class DeleteToLineEnd : AbstractEditAction
method Execute (line 888) | public override void Execute(TextArea textArea)
class GotoMatchingBrace (line 902) | public class GotoMatchingBrace : AbstractEditAction
method Execute (line 904) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Actions/SelectionActions.cs
class ShiftCaretRight (line 14) | public class ShiftCaretRight : CaretRight
method Execute (line 16) | public override void Execute(TextArea textArea)
class ShiftCaretLeft (line 25) | public class ShiftCaretLeft : CaretLeft
method Execute (line 27) | public override void Execute(TextArea textArea)
class ShiftCaretUp (line 36) | public class ShiftCaretUp : CaretUp
method Execute (line 38) | public override void Execute(TextArea textArea)
class ShiftCaretDown (line 47) | public class ShiftCaretDown : CaretDown
method Execute (line 49) | public override void Execute(TextArea textArea)
class ShiftWordRight (line 58) | public class ShiftWordRight : WordRight
method Execute (line 60) | public override void Execute(TextArea textArea)
class ShiftWordLeft (line 69) | public class ShiftWordLeft : WordLeft
method Execute (line 71) | public override void Execute(TextArea textArea)
class ShiftHome (line 80) | public class ShiftHome : Home
method Execute (line 82) | public override void Execute(TextArea textArea)
class ShiftEnd (line 91) | public class ShiftEnd : End
method Execute (line 93) | public override void Execute(TextArea textArea)
class ShiftMoveToStart (line 102) | public class ShiftMoveToStart : MoveToStart
method Execute (line 104) | public override void Execute(TextArea textArea)
class ShiftMoveToEnd (line 113) | public class ShiftMoveToEnd : MoveToEnd
method Execute (line 115) | public override void Execute(TextArea textArea)
class ShiftMovePageUp (line 124) | public class ShiftMovePageUp : MovePageUp
method Execute (line 126) | public override void Execute(TextArea textArea)
class ShiftMovePageDown (line 135) | public class ShiftMovePageDown : MovePageDown
method Execute (line 137) | public override void Execute(TextArea textArea)
class SelectWholeDocument (line 146) | public class SelectWholeDocument : AbstractEditAction
method Execute (line 148) | public override void Execute(TextArea textArea)
class ClearAllSelections (line 169) | public class ClearAllSelections : AbstractEditAction
method Execute (line 171) | public override void Execute(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/AbstractSegment.cs
class AbstractSegment (line 15) | public class AbstractSegment : ISegment
method ToString (line 43) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/Bookmark.cs
class Bookmark (line 17) | public class Bookmark
method CreateAnchor (line 41) | void CreateAnchor()
method AnchorDeleted (line 52) | void AnchorDeleted(object sender, EventArgs e)
method OnDocumentChanged (line 80) | protected virtual void OnDocumentChanged(EventArgs e)
method OnIsEnabledChanged (line 105) | protected virtual void OnIsEnabledChanged(EventArgs e)
method Bookmark (line 139) | public Bookmark(IDocument document, TextLocation location) : this(docu...
method Bookmark (line 143) | public Bookmark(IDocument document, TextLocation location, bool isEnab...
method Click (line 150) | public virtual bool Click(SWF.Control parent, SWF.MouseEventArgs e)
method Draw (line 159) | public virtual void Draw(IconBarMargin margin, Graphics g, Point p)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/BookmarkEventHandler.cs
class BookmarkEventArgs (line 17) | public class BookmarkEventArgs : EventArgs
method BookmarkEventArgs (line 27) | public BookmarkEventArgs(Bookmark bookmark)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/BookmarkManager.cs
type IBookmarkFactory (line 15) | public interface IBookmarkFactory
method CreateBookmark (line 17) | Bookmark CreateBookmark(IDocument document, TextLocation location);
class BookmarkManager (line 23) | public class BookmarkManager
method BookmarkManager (line 50) | internal BookmarkManager(IDocument document, LineManager lineTracker)
method ToggleMarkAt (line 64) | public void ToggleMarkAt(TextLocation location)
method AddMark (line 89) | public void AddMark(Bookmark mark)
method RemoveMark (line 95) | public void RemoveMark(Bookmark mark)
method RemoveMarks (line 101) | public void RemoveMarks(Predicate<Bookmark> predicate)
method IsMarked (line 115) | public bool IsMarked(int lineNr)
method Clear (line 128) | public void Clear()
method GetFirstMark (line 139) | public Bookmark GetFirstMark(Predicate<Bookmark> predicate)
method GetLastMark (line 156) | public Bookmark GetLastMark(Predicate<Bookmark> predicate)
method AcceptAnyMarkPredicate (line 169) | bool AcceptAnyMarkPredicate(Bookmark mark)
method GetNextMark (line 173) | public Bookmark GetNextMark(int curLineNr)
method GetNextMark (line 184) | public Bookmark GetNextMark(int curLineNr, Predicate<Bookmark> predicate)
method GetPrevMark (line 201) | public Bookmark GetPrevMark(int curLineNr)
method GetPrevMark (line 211) | public Bookmark GetPrevMark(int curLineNr, Predicate<Bookmark> predicate)
method OnRemoved (line 229) | protected virtual void OnRemoved(BookmarkEventArgs e)
method OnAdded (line 236) | protected virtual void OnAdded(BookmarkEventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/BookmarkManagerMemento.cs
class BookmarkManagerMemento (line 17) | public class BookmarkManagerMemento
method CheckMemento (line 37) | public void CheckMemento(IDocument document)
method BookmarkManagerMemento (line 51) | public BookmarkManagerMemento()
method BookmarkManagerMemento (line 58) | public BookmarkManagerMemento(XmlElement element)
method BookmarkManagerMemento (line 68) | public BookmarkManagerMemento(List<int> bookmarks)
method FromXmlElement (line 76) | public object FromXmlElement(XmlElement element)
method ToXmlElement (line 84) | public XmlElement ToXmlElement(XmlDocument doc)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs
type LineViewerStyle (line 20) | public enum LineViewerStyle {
type IndentStyle (line 35) | public enum IndentStyle {
type BracketHighlightingStyle (line 56) | public enum BracketHighlightingStyle {
type DocumentSelectionMode (line 77) | public enum DocumentSelectionMode {
class DefaultDocument (line 93) | internal sealed class DefaultDocument : IDocument
method Insert (line 228) | public void Insert(int offset, string text)
method Remove (line 243) | public void Remove(int offset, int length)
method Replace (line 257) | public void Replace(int offset, int length, string text)
method GetCharAt (line 271) | public char GetCharAt(int offset)
method GetText (line 276) | public string GetText(int offset, int length)
method GetText (line 283) | public string GetText(ISegment segment)
method GetLineNumberForOffset (line 294) | public int GetLineNumberForOffset(int offset)
method GetLineSegmentForOffset (line 299) | public LineSegment GetLineSegmentForOffset(int offset)
method GetLineSegment (line 304) | public LineSegment GetLineSegment(int line)
method GetFirstLogicalLine (line 309) | public int GetFirstLogicalLine(int lineNumber)
method GetLastLogicalLine (line 314) | public int GetLastLogicalLine(int lineNumber)
method GetVisibleLine (line 319) | public int GetVisibleLine(int lineNumber)
method GetNextVisibleLineAbove (line 329) | public int GetNextVisibleLineAbove(int lineNumber, int lineCount)
method GetNextVisibleLineBelow (line 334) | public int GetNextVisibleLineBelow(int lineNumber, int lineCount)
method OffsetToPosition (line 339) | public TextLocation OffsetToPosition(int offset)
method PositionToOffset (line 346) | public int PositionToOffset(TextLocation p)
method UpdateSegmentListOnDocumentChange (line 355) | public void UpdateSegmentListOnDocumentChange<T>(List<T> list, Documen...
method OnDocumentAboutToBeChanged (line 395) | void OnDocumentAboutToBeChanged(DocumentEventArgs e)
method OnDocumentChanged (line 402) | void OnDocumentChanged(DocumentEventArgs e)
method RequestUpdate (line 421) | public void RequestUpdate(TextAreaUpdate update)
method CommitUpdate (line 434) | public void CommitUpdate()
method OnTextContentChanged (line 441) | void OnTextContentChanged(EventArgs e)
method ValidatePosition (line 451) | [Conditional("DEBUG")]
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/DefaultTextEditorProperties.cs
type BracketMatchingStyle (line 14) | public enum BracketMatchingStyle {
class DefaultTextEditorProperties (line 19) | public class DefaultTextEditorProperties : ITextEditorProperties
method DefaultTextEditorProperties (line 30) | public DefaultTextEditorProperties()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/DocumentEventArgs.cs
class DocumentEventArgs (line 20) | public class DocumentEventArgs : EventArgs
method DocumentEventArgs (line 66) | public DocumentEventArgs(IDocument document) : this(document, -1, -1, ...
method DocumentEventArgs (line 73) | public DocumentEventArgs(IDocument document, int offset) : this(docume...
method DocumentEventArgs (line 80) | public DocumentEventArgs(IDocument document, int offset, int length) :...
method DocumentEventArgs (line 87) | public DocumentEventArgs(IDocument document, int offset, int length, s...
method ToString (line 94) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/DocumentFactory.cs
class DocumentFactory (line 17) | public class DocumentFactory
method CreateDocument (line 23) | public IDocument CreateDocument()
method CreateFromTextBuffer (line 39) | public IDocument CreateFromTextBuffer(ITextBufferStrategy textBuffer)
method CreateFromFile (line 50) | public IDocument CreateFromFile(string fileName)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/FoldMarker.cs
type FoldType (line 12) | public enum FoldType {
class FoldMarker (line 19) | public class FoldMarker : AbstractSegment, IComparable
method GetPointForOffset (line 27) | static void GetPointForOffset(IDocument document, int offset, out int ...
method FoldMarker (line 118) | public FoldMarker(IDocument document, int offset, int length, string f...
method FoldMarker (line 127) | public FoldMarker(IDocument document, int startLine, int startColumn, ...
method FoldMarker (line 131) | public FoldMarker(IDocument document, int startLine, int startColumn, ...
method FoldMarker (line 135) | public FoldMarker(IDocument document, int startLine, int startColumn, ...
method FoldMarker (line 139) | public FoldMarker(IDocument document, int startLine, int startColumn, ...
method CompareTo (line 161) | public int CompareTo(object o)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/FoldingManager.cs
class FoldingManager (line 15) | public class FoldingManager
method FoldingManager (line 37) | internal FoldingManager(IDocument document, LineManager lineTracker)
method DocumentChanged (line 60) | void DocumentChanged(object sender, DocumentEventArgs e)
method GetFoldingsFromPosition (line 69) | public List<FoldMarker> GetFoldingsFromPosition(int line, int column)
class StartComparer (line 85) | class StartComparer : IComparer<FoldMarker>
method Compare (line 89) | public int Compare(FoldMarker x, FoldMarker y)
class EndComparer (line 100) | class EndComparer : IComparer<FoldMarker>
method Compare (line 104) | public int Compare(FoldMarker x, FoldMarker y)
method GetFoldingsByStartAfterColumn (line 115) | List<FoldMarker> GetFoldingsByStartAfterColumn(int lineNumber, int col...
method GetFoldingsWithStart (line 138) | public List<FoldMarker> GetFoldingsWithStart(int lineNumber)
method GetFoldedFoldingsWithStart (line 143) | public List<FoldMarker> GetFoldedFoldingsWithStart(int lineNumber)
method GetFoldedFoldingsWithStartAfterColumn (line 148) | public List<FoldMarker> GetFoldedFoldingsWithStartAfterColumn(int line...
method GetFoldingsByEndAfterColumn (line 153) | List<FoldMarker> GetFoldingsByEndAfterColumn(int lineNumber, int colum...
method GetFoldingsWithEnd (line 176) | public List<FoldMarker> GetFoldingsWithEnd(int lineNumber)
method GetFoldedFoldingsWithEnd (line 181) | public List<FoldMarker> GetFoldedFoldingsWithEnd(int lineNumber)
method IsFoldStart (line 186) | public bool IsFoldStart(int lineNumber)
method IsFoldEnd (line 191) | public bool IsFoldEnd(int lineNumber)
method GetFoldingsContainsLineNumber (line 196) | public List<FoldMarker> GetFoldingsContainsLineNumber(int lineNumber)
method IsBetweenFolding (line 209) | public bool IsBetweenFolding(int lineNumber)
method IsLineVisible (line 214) | public bool IsLineVisible(int lineNumber)
method GetTopLevelFoldedFoldings (line 223) | public List<FoldMarker> GetTopLevelFoldedFoldings()
method UpdateFoldings (line 238) | public void UpdateFoldings(string fileName, object parseInfo)
method UpdateFoldings (line 243) | public void UpdateFoldings(List<FoldMarker> newFoldings)
method SerializeToString (line 283) | public string SerializeToString()
method DeserializeFromString (line 295) | public void DeserializeFromString(string str)
method NotifyFoldingsChanged (line 323) | public void NotifyFoldingsChanged(EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/IFoldingStrategy.cs
type IFoldingStrategy (line 17) | public interface IFoldingStrategy
method GenerateFoldMarkers (line 22) | List<FoldMarker> GenerateFoldMarkers(IDocument document, string fileNa...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/IndentFoldingStrategy.cs
class IndentFoldingStrategy (line 17) | public class IndentFoldingStrategy : IFoldingStrategy
method GenerateFoldMarkers (line 19) | public List<FoldMarker> GenerateFoldMarkers(IDocument document, string...
method GetLevel (line 31) | int GetLevel(IDocument document, int offset)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/FormattingStrategy/DefaultFormattingStrategy.cs
class DefaultFormattingStrategy (line 17) | public class DefaultFormattingStrategy : IFormattingStrategy
method DefaultFormattingStrategy (line 22) | public DefaultFormattingStrategy()
method GetIndentation (line 30) | protected string GetIndentation(TextArea textArea, int lineNumber)
method AutoIndentLine (line 52) | protected virtual int AutoIndentLine(TextArea textArea, int lineNumber)
method SmartReplaceLine (line 70) | public static void SmartReplaceLine(IDocument document, LineSegment li...
method SmartIndentLine (line 112) | protected virtual int SmartIndentLine(TextArea textArea, int line)
method FormatLine (line 125) | public virtual void FormatLine(TextArea textArea, int line, int cursor...
method IndentLine (line 138) | public int IndentLine(TextArea textArea, int line)
method IndentLines (line 162) | public virtual void IndentLines(TextArea textArea, int begin, int end)
method SearchBracketBackward (line 171) | public virtual int SearchBracketBackward(IDocument document, int offse...
method SearchBracketForward (line 194) | public virtual int SearchBracketForward(IDocument document, int offset...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/FormattingStrategy/IFormattingStrategy.cs
type IFormattingStrategy (line 17) | public interface IFormattingStrategy
method FormatLine (line 22) | void FormatLine(TextArea textArea, int line, int caretOffset, char cha...
method IndentLine (line 30) | int IndentLine(TextArea textArea, int line);
method IndentLines (line 35) | void IndentLines(TextArea textArea, int begin, int end);
method SearchBracketBackward (line 46) | int SearchBracketBackward(IDocument document, int offset, char openBra...
method SearchBracketForward (line 57) | int SearchBracketForward(IDocument document, int offset, char openBrac...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs
class DefaultHighlightingStrategy (line 16) | public class DefaultHighlightingStrategy : IHighlightingStrategyUsingRul...
method ImportSettingsFrom (line 43) | protected void ImportSettingsFrom(DefaultHighlightingStrategy source)
method DefaultHighlightingStrategy (line 57) | public DefaultHighlightingStrategy() : this("Default")
method DefaultHighlightingStrategy (line 61) | public DefaultHighlightingStrategy(string name)
method FindHighlightRuleSet (line 114) | public HighlightRuleSet FindHighlightRuleSet(string name)
method AddRuleSet (line 124) | public void AddRuleSet(HighlightRuleSet aRuleSet)
method ResolveReferences (line 134) | public void ResolveReferences()
method ResolveRuleSetReferences (line 142) | void ResolveRuleSetReferences()
method ResolveExternalReferences (line 174) | void ResolveExternalReferences()
method SetColorFor (line 205) | public void SetColorFor(string name, HighlightColor color)
method GetColorFor (line 212) | public HighlightColor GetColorFor(string name)
method GetColor (line 221) | public HighlightColor GetColor(IDocument document, LineSegment current...
method GetColor (line 226) | protected virtual HighlightColor GetColor(HighlightRuleSet ruleSet, ID...
method GetRuleSet (line 238) | public HighlightRuleSet GetRuleSet(Span aSpan)
method MarkTokens (line 263) | public virtual void MarkTokens(IDocument document)
method MarkTokensInLine (line 309) | bool MarkTokensInLine(IDocument document, int lineNumber, ref bool spa...
method MarkTokens (line 408) | public virtual void MarkTokens(IDocument document, List<LineSegment> i...
method UpdateSpanStateVariables (line 461) | void UpdateSpanStateVariables()
method ParseLine (line 468) | List<TextWord> ParseLine(IDocument document)
method OnParsedLine (line 691) | protected virtual void OnParsedLine(IDocument document, LineSegment cu...
method OverrideSpan (line 695) | protected virtual bool OverrideSpan(string spanBegin, IDocument docume...
method PushCurWord (line 704) | void PushCurWord(IDocument document, ref HighlightColor markNext, List...
method GetRegString (line 777) | static string GetRegString(LineSegment lineSegment, char[] expr, int i...
method MatchExpr (line 816) | static bool MatchExpr(LineSegment lineSegment, char[] expr, int index,...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/FontContainer.cs
class FontContainer (line 17) | public class FontContainer
method ParseFont (line 92) | public static Font ParseFont(string font)
method FontContainer (line 98) | public FontContainer(Font defaultFont)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightBackground.cs
class HighlightBackground (line 17) | public class HighlightBackground : HighlightColor
method HighlightBackground (line 33) | public HighlightBackground(XmlElement el) : base(el)
method HighlightBackground (line 43) | public HighlightBackground(Color color, Color backgroundcolor, bool bo...
method HighlightBackground (line 47) | public HighlightBackground(string systemColor, string systemBackground...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightColor.cs
class HighlightColor (line 20) | public class HighlightColor
method GetFont (line 94) | public Font GetFont(FontContainer fontContainer)
method ParseColorString (line 102) | Color ParseColorString(string colorName)
method HighlightColor (line 122) | public HighlightColor(XmlElement el)
method HighlightColor (line 165) | public HighlightColor(XmlElement el, HighlightColor defaultColor)
method HighlightColor (line 214) | public HighlightColor(Color color, bool bold, bool italic)
method HighlightColor (line 225) | public HighlightColor(Color color, Color backgroundcolor, bool bold, b...
method HighlightColor (line 239) | public HighlightColor(string systemColor, string systemBackgroundColor...
method ParseColor (line 254) | static Color ParseColor(string c)
method ToString (line 272) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightInfo.cs
class HighlightInfo (line 12) | public class HighlightInfo
method HighlightInfo (line 18) | public HighlightInfo(Span curSpan, bool span, bool blockSpanOn)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightRuleSet.cs
class HighlightRuleSet (line 16) | public class HighlightRuleSet
method HighlightRuleSet (line 90) | public HighlightRuleSet()
method HighlightRuleSet (line 97) | public HighlightRuleSet(XmlElement el)
method MergeFrom (line 168) | public void MergeFrom(HighlightRuleSet ruleSet)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingColorNotFoundException.cs
class HighlightingColorNotFoundException (line 13) | [Serializable()]
method HighlightingColorNotFoundException (line 16) | public HighlightingColorNotFoundException() : base()
method HighlightingColorNotFoundException (line 20) | public HighlightingColorNotFoundException(string message) : base(message)
method HighlightingColorNotFoundException (line 24) | public HighlightingColorNotFoundException(string message, Exception in...
method HighlightingColorNotFoundException (line 28) | protected HighlightingColorNotFoundException(SerializationInfo info, S...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingDefinitionInvalidException.cs
class HighlightingDefinitionInvalidException (line 18) | [Serializable()]
method HighlightingDefinitionInvalidException (line 21) | public HighlightingDefinitionInvalidException() : base()
method HighlightingDefinitionInvalidException (line 25) | public HighlightingDefinitionInvalidException(string message) : base(m...
method HighlightingDefinitionInvalidException (line 29) | public HighlightingDefinitionInvalidException(string message, Exceptio...
method HighlightingDefinitionInvalidException (line 33) | protected HighlightingDefinitionInvalidException(SerializationInfo inf...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingDefinitionParser.cs
class HighlightingDefinitionParser (line 18) | public static class HighlightingDefinitionParser
method Parse (line 20) | public static DefaultHighlightingStrategy Parse(SyntaxMode syntaxMode,...
method Parse (line 25) | public static DefaultHighlightingStrategy Parse(DefaultHighlightingStr...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingManager.cs
class HighlightingManager (line 16) | public class HighlightingManager
method HighlightingManager (line 39) | static HighlightingManager()
method HighlightingManager (line 45) | public HighlightingManager()
method AddSyntaxModeFileProvider (line 50) | public void AddSyntaxModeFileProvider(ISyntaxModeFileProvider syntaxMo...
method AddHighlightingStrategy (line 63) | public void AddHighlightingStrategy(IHighlightingStrategy highlighting...
method ReloadSyntaxModes (line 72) | public void ReloadSyntaxModes()
method CreateDefaultHighlightingStrategy (line 84) | void CreateDefaultHighlightingStrategy()
method LoadDefinition (line 92) | IHighlightingStrategy LoadDefinition(DictionaryEntry entry)
method FindHighlighterEntry (line 122) | internal KeyValuePair<SyntaxMode, ISyntaxModeFileProvider> FindHighlig...
method FindHighlighter (line 134) | public IHighlightingStrategy FindHighlighter(string name)
method FindHighlighterForFile (line 143) | public IHighlightingStrategy FindHighlighterForFile(string fileName)
method OnReloadSyntaxHighlighting (line 157) | protected virtual void OnReloadSyntaxHighlighting(EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingStrategyFactory.cs
class HighlightingStrategyFactory (line 12) | public class HighlightingStrategyFactory
method CreateHighlightingStrategy (line 14) | public static IHighlightingStrategy CreateHighlightingStrategy()
method CreateHighlightingStrategy (line 19) | public static IHighlightingStrategy CreateHighlightingStrategy(string ...
method CreateHighlightingStrategyForFile (line 29) | public static IHighlightingStrategy CreateHighlightingStrategyForFile(...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/IHighlightingStrategy.cs
type IHighlightingStrategy (line 16) | public interface IHighlightingStrategy
method GetColorFor (line 42) | HighlightColor GetColorFor(string name);
method MarkTokens (line 47) | void MarkTokens(IDocument document, List<LineSegment> lines);
method MarkTokens (line 52) | void MarkTokens(IDocument document);
type IHighlightingStrategyUsingRuleSets (line 55) | public interface IHighlightingStrategyUsingRuleSets : IHighlightingStrategy
method GetRuleSet (line 60) | HighlightRuleSet GetRuleSet(Span span);
method GetColor (line 65) | HighlightColor GetColor(IDocument document, LineSegment keyWord, int i...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/NextMarker.cs
class NextMarker (line 16) | public class NextMarker
method NextMarker (line 53) | public NextMarker(XmlElement mark)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/PrevMarker.cs
class PrevMarker (line 16) | public class PrevMarker
method PrevMarker (line 53) | public PrevMarker(XmlElement mark)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/Span.cs
class Span (line 13) | public sealed class Span
method Span (line 120) | public Span(XmlElement span)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SpanStack.cs
class SpanStack (line 17) | public sealed class SpanStack : ICloneable, IEnumerable<Span>
class StackNode (line 19) | internal sealed class StackNode
method StackNode (line 24) | public StackNode(StackNode previous, Span data)
method Pop (line 33) | public Span Pop()
method Peek (line 40) | public Span Peek()
method Push (line 45) | public void Push(Span s)
method Clone (line 56) | public SpanStack Clone()
method Clone (line 62) | object ICloneable.Clone()
method GetEnumerator (line 67) | public Enumerator GetEnumerator()
method GetEnumerator (line 71) | IEnumerator<Span> IEnumerable<Span>.GetEnumerator()
method GetEnumerator (line 75) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
type Enumerator (line 80) | public struct Enumerator : IEnumerator<Span>
method Enumerator (line 84) | internal Enumerator(StackNode node)
method Dispose (line 101) | public void Dispose()
method MoveNext (line 106) | public bool MoveNext()
method Reset (line 112) | public void Reset()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs
class FileSyntaxModeProvider (line 16) | public class FileSyntaxModeProvider : ISyntaxModeFileProvider
method FileSyntaxModeProvider (line 27) | public FileSyntaxModeProvider(string directory)
method UpdateSyntaxModeList (line 33) | public void UpdateSyntaxModeList()
method GetSyntaxModeFile (line 45) | public XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode)
method ScanDirectory (line 54) | List<SyntaxMode> ScanDirectory(string directory)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ISyntaxModeFileProvider.cs
type ISyntaxModeFileProvider (line 14) | public interface ISyntaxModeFileProvider
method GetSyntaxModeFile (line 20) | XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode);
method UpdateSyntaxModeList (line 21) | void UpdateSyntaxModeList();
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ResourceSyntaxModeProvider.cs
class ResourceSyntaxModeProvider (line 16) | public class ResourceSyntaxModeProvider : ISyntaxModeFileProvider
method ResourceSyntaxModeProvider (line 26) | public ResourceSyntaxModeProvider()
method GetSyntaxModeFile (line 37) | public XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode)
method UpdateSyntaxModeList (line 43) | public void UpdateSyntaxModeList()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/SyntaxMode.cs
class SyntaxMode (line 16) | public class SyntaxMode
method SyntaxMode (line 49) | public SyntaxMode(string fileName, string name, string extensions)
method SyntaxMode (line 56) | public SyntaxMode(string fileName, string name, string[] extensions)
method GetSyntaxModes (line 63) | public static List<SyntaxMode> GetSyntaxModes(Stream xmlSyntaxModeStream)
method ToString (line 91) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/TextWord.cs
type TextWordType (line 14) | public enum TextWordType {
class TextWord (line 24) | public class TextWord
class SpaceTextWord (line 33) | public sealed class SpaceTextWord : TextWord
method SpaceTextWord (line 35) | public SpaceTextWord()
method SpaceTextWord (line 40) | public SpaceTextWord(HighlightColor color)
method GetFont (line 46) | public override Font GetFont(FontContainer fontContainer)
class TabTextWord (line 63) | public sealed class TabTextWord : TextWord
method TabTextWord (line 65) | public TabTextWord()
method TabTextWord (line 69) | public TabTextWord(HighlightColor color)
method GetFont (line 75) | public override Font GetFont(FontContainer fontContainer)
method Split (line 125) | public static TextWord Split(ref TextWord word, int pos)
method GetFont (line 161) | public virtual Font GetFont(FontContainer fontContainer)
method TextWord (line 209) | protected TextWord()
method TextWord (line 214) | public TextWord(IDocument document, LineSegment line, int offset, int ...
method ToString (line 231) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/IDocument.cs
type IDocument (line 20) | public interface IDocument
method GetLineNumberForOffset (line 117) | int GetLineNumberForOffset(int offset);
method GetLineSegmentForOffset (line 130) | LineSegment GetLineSegmentForOffset(int offset);
method GetLineSegment (line 144) | LineSegment GetLineSegment(int lineNumber);
method GetFirstLogicalLine (line 152) | int GetFirstLogicalLine(int lineNumber);
method GetLastLogicalLine (line 160) | int GetLastLogicalLine(int lineNumber);
method GetVisibleLine (line 168) | int GetVisibleLine(int lineNumber);
method GetNextVisibleLineAbove (line 178) | int GetNextVisibleLineAbove(int lineNumber, int lineCount);
method GetNextVisibleLineBelow (line 183) | int GetNextVisibleLineBelow(int lineNumber, int lineCount);
method Insert (line 218) | void Insert(int offset, string text);
method Remove (line 229) | void Remove(int offset, int length);
method Replace (line 243) | void Replace(int offset, int length, string text);
method GetCharAt (line 251) | char GetCharAt(int offset);
method GetText (line 262) | string GetText(int offset, int length);
method GetText (line 264) | string GetText(ISegment segment);
method OffsetToPosition (line 270) | TextLocation OffsetToPosition(int offset);
method PositionToOffset (line 275) | int PositionToOffset(TextLocation p);
method RequestUpdate (line 287) | void RequestUpdate(TextAreaUpdate update);
method CommitUpdate (line 293) | void CommitUpdate();
method UpdateSegmentListOnDocumentChange (line 298) | void UpdateSegmentListOnDocumentChange<T>(List<T> list, DocumentEventA...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/ISegment.cs
type ISegment (line 13) | public interface ISegment
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/ITextEditorProperties.cs
type ITextEditorProperties (line 14) | public interface ITextEditorProperties
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/DeferredEventList.cs
type DeferredEventList (line 15) | struct DeferredEventList
method AddRemovedLine (line 20) | public void AddRemovedLine(LineSegment line)
method AddDeletedAnchor (line 27) | public void AddDeletedAnchor(TextAnchor anchor)
method RaiseEvents (line 34) | public void RaiseEvents()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineManager.cs
class LineManager (line 14) | internal sealed class LineManager
method LineManager (line 47) | public LineManager(IDocument document, IHighlightingStrategy highlight...
method GetLineNumberForOffset (line 53) | public int GetLineNumberForOffset(int offset)
method GetLineSegmentForOffset (line 58) | public LineSegment GetLineSegmentForOffset(int offset)
method GetLineSegment (line 63) | public LineSegment GetLineSegment(int lineNr)
method Insert (line 68) | public void Insert(int offset, string text)
method Remove (line 73) | public void Remove(int offset, int length)
method Replace (line 78) | public void Replace(int offset, int length, string text)
method RemoveInternal (line 109) | void RemoveInternal(ref DeferredEventList deferredEventList, int offse...
method InsertInternal (line 153) | void InsertInternal(int offset, string text)
method SetSegmentLength (line 188) | void SetSegmentLength(LineSegment segment, int newTotalLength)
method RunHighlighter (line 197) | void RunHighlighter(int firstLine, int lineCount)
method SetContent (line 210) | public void SetContent(string text)
method GetVisibleLine (line 218) | public int GetVisibleLine(int logicalLineNumber)
method GetFirstLogicalLine (line 244) | public int GetFirstLogicalLine(int visibleLineNumber)
method GetLastLogicalLine (line 267) | public int GetLastLogicalLine(int visibleLineNumber)
method GetNextVisibleLineAbove (line 278) | public int GetNextVisibleLineAbove(int lineNumber, int lineCount)
method GetNextVisibleLineBelow (line 294) | public int GetNextVisibleLineBelow(int lineNumber, int lineCount)
method NextDelimiter (line 313) | DelimiterSegment NextDelimiter(string text, int offset)
method OnLineCountChanged (line 335) | void OnLineCountChanged(LineCountChangeEventArgs e)
method OnLineLengthChanged (line 342) | void OnLineLengthChanged(LineLengthChangeEventArgs e)
method OnLineDeleted (line 349) | void OnLineDeleted(LineEventArgs e)
class DelimiterSegment (line 360) | sealed class DelimiterSegment
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineManagerEventArgs.cs
class LineCountChangeEventArgs (line 12) | public class LineCountChangeEventArgs : EventArgs
method LineCountChangeEventArgs (line 45) | public LineCountChangeEventArgs(IDocument document, int lineStart, int...
class LineEventArgs (line 53) | public class LineEventArgs : EventArgs
method LineEventArgs (line 66) | public LineEventArgs(IDocument document, LineSegment lineSegment)
method ToString (line 72) | public override string ToString()
class LineLengthChangeEventArgs (line 78) | public class LineLengthChangeEventArgs : LineEventArgs
method LineLengthChangeEventArgs (line 86) | public LineLengthChangeEventArgs(IDocument document, LineSegment lineS...
method ToString (line 92) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineSegment.cs
class LineSegment (line 16) | public sealed class LineSegment : ISegment
method GetWord (line 24) | public TextWord GetWord(int column)
method GetColorForPosition (line 81) | public HighlightColor GetColorForPosition(int x)
method ToString (line 107) | public override string ToString()
method CreateAnchor (line 118) | public TextAnchor CreateAnchor(int column)
method AddAnchor (line 127) | void AddAnchor(TextAnchor anchor)
method Deleted (line 140) | internal void Deleted(ref DeferredEventList deferredEventList)
method RemovedLinePart (line 155) | internal void RemovedLinePart(ref DeferredEventList deferredEventList,...
method InsertedLinePart (line 187) | internal void InsertedLinePart(int startColumn, int length)
method MergedWith (line 213) | internal void MergedWith(LineSegment deletedLine, int firstLineLength)
method SplitTo (line 230) | internal void SplitTo(LineSegment followingLine)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineSegmentTree.cs
class LineSegmentTree (line 29) | sealed class LineSegmentTree : IList<LineSegment>
type RBNode (line 31) | internal struct RBNode
method RBNode (line 37) | public RBNode(LineSegment lineSegment)
method ToString (line 44) | public override string ToString()
type MyHost (line 54) | struct MyHost : IRedBlackTreeHost<RBNode>
method Compare (line 56) | public int Compare(RBNode x, RBNode y)
method Equals (line 61) | public bool Equals(RBNode a, RBNode b)
method UpdateAfterChildrenChange (line 66) | public void UpdateAfterChildrenChange(RedBlackTreeNode<RBNode> node)
method UpdateAfterRotateLeft (line 85) | public void UpdateAfterRotateLeft(RedBlackTreeNode<RBNode> node)
method UpdateAfterRotateRight (line 91) | public void UpdateAfterRotateRight(RedBlackTreeNode<RBNode> node)
method GetNode (line 100) | RedBlackTreeNode<RBNode> GetNode(int index)
method GetIndexFromNode (line 120) | static int GetIndexFromNode(RedBlackTreeNode<RBNode> node)
method GetNodeByOffset (line 134) | RedBlackTreeNode<RBNode> GetNodeByOffset(int offset)
method GetOffsetFromNode (line 159) | static int GetOffsetFromNode(RedBlackTreeNode<RBNode> node)
method GetByOffset (line 173) | public LineSegment GetByOffset(int offset)
method SetSegmentLength (line 193) | public void SetSegmentLength(LineSegment segment, int newTotalLength)
method RemoveSegment (line 205) | public void RemoveSegment(LineSegment segment)
method InsertSegmentAfter (line 213) | public LineSegment InsertSegmentAfter(LineSegment segment, int length)
method InsertAfter (line 223) | Enumerator InsertAfter(RedBlackTreeNode<RBNode> node, LineSegment newS...
method IndexOf (line 263) | public int IndexOf(LineSegment item)
method RemoveAt (line 273) | void IList<LineSegment>.RemoveAt(int index)
method CheckProperties (line 279) | [Conditional("DATACONSISTENCYTEST")]
method CheckProperties (line 290) | void CheckProperties(RedBlackTreeNode<RBNode> node)
method GetTreeAsString (line 308) | public string GetTreeAsString()
method LineSegmentTree (line 314) | public LineSegmentTree()
method Clear (line 322) | public void Clear()
method Contains (line 338) | public bool Contains(LineSegment item)
method CopyTo (line 346) | public void CopyTo(LineSegment[] array, int arrayIndex)
method GetEnumerator (line 353) | IEnumerator<LineSegment> IEnumerable<LineSegment>.GetEnumerator()
method GetEnumerator (line 358) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
method GetEnumerator (line 363) | public Enumerator GetEnumerator()
method GetEnumeratorForIndex (line 368) | public Enumerator GetEnumeratorForIndex(int index)
method GetEnumeratorForOffset (line 373) | public Enumerator GetEnumeratorForOffset(int offset)
type Enumerator (line 378) | public struct Enumerator : IEnumerator<LineSegment>
method Enumerator (line 388) | internal Enumerator(RedBlackTreeIterator<RBNode> it)
method Dispose (line 436) | public void Dispose()
method MoveNext (line 443) | public bool MoveNext()
method MoveBack (line 451) | public bool MoveBack()
method Reset (line 456) | void System.Collections.IEnumerator.Reset()
method Insert (line 462) | void IList<LineSegment>.Insert(int index, LineSegment item)
method Add (line 467) | void ICollection<LineSegment>.Add(LineSegment item)
method Remove (line 472) | bool ICollection<LineSegment>.Remove(LineSegment item)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs
class MarkerStrategy (line 17) | public sealed class MarkerStrategy
method AddMarker (line 34) | public void AddMarker(TextMarker item)
method InsertMarker (line 40) | public void InsertMarker(int index, TextMarker item)
method RemoveMarker (line 46) | public void RemoveMarker(TextMarker item)
method RemoveAll (line 52) | public void RemoveAll(Predicate<TextMarker> match)
method MarkerStrategy (line 58) | public MarkerStrategy(IDocument document)
method GetMarkers (line 66) | public List<TextMarker> GetMarkers(int offset)
method GetMarkers (line 81) | public List<TextMarker> GetMarkers(int offset, int length)
method GetMarkers (line 103) | public List<TextMarker> GetMarkers(TextLocation position)
method DocumentChanged (line 112) | void DocumentChanged(object sender, DocumentEventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/TextMarker.cs
type TextMarkerType (line 13) | public enum TextMarkerType
class TextMarker (line 24) | public class TextMarker : AbstractSegment
method TextMarker (line 79) | public TextMarker(int offset, int length, TextMarkerType textMarkerTyp...
method TextMarker (line 83) | public TextMarker(int offset, int length, TextMarkerType textMarkerTyp...
method TextMarker (line 92) | public TextMarker(int offset, int length, TextMarkerType textMarkerTyp...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/Selection/ColumnRange.cs
class ColumnRange (line 12) | public class ColumnRange
method ColumnRange (line 38) | public ColumnRange(int startColumn, int endColumn)
method GetHashCode (line 45) | public override int GetHashCode()
method Equals (line 50) | public override bool Equals(object obj)
method ToString (line 60) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs
class DefaultSelection (line 17) | public class DefaultSelection : ISelection
method DefaultSelection (line 102) | public DefaultSelection(IDocument document, TextLocation startPosition...
method ToString (line 115) | public override string ToString()
method ContainsPosition (line 119) | public bool ContainsPosition(TextLocation position)
method ContainsOffset (line 128) | public bool ContainsOffset(int offset)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/Selection/ISelection.cs
type ISelection (line 15) | public interface ISelection
method ContainsOffset (line 60) | bool ContainsOffset(int offset);
method ContainsPosition (line 62) | bool ContainsPosition(TextLocation position);
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/Selection/SelectionManager.cs
class SelectionManager (line 18) | public class SelectionManager : IDisposable
method SelectionIsReadOnly (line 65) | internal static bool SelectionIsReadOnly(IDocument document, ISelectio...
method SelectionManager (line 99) | public SelectionManager(IDocument document)
method SelectionManager (line 108) | public SelectionManager(IDocument document, TextArea textArea)
method Dispose (line 115) | public void Dispose()
method DocumentChanged (line 123) | void DocumentChanged(object sender, DocumentEventArgs e)
method SetSelection (line 140) | public void SetSelection(ISelection selection)
method SetSelection (line 159) | public void SetSelection(TextLocation startPosition, TextLocation endP...
method GreaterEqPos (line 164) | public bool GreaterEqPos(TextLocation p1, TextLocation p2)
method ExtendSelection (line 169) | public void ExtendSelection(TextLocation oldPosition, TextLocation new...
method NextValidPosition (line 247) | public TextLocation NextValidPosition(int line)
method ClearWithoutUpdate (line 255) | void ClearWithoutUpdate()
method ClearSelection (line 267) | public void ClearSelection()
method RemoveSelectedText (line 293) | public void RemoveSelectedText()
method SelectionsOverlap (line 336) | bool SelectionsOverlap(ISelection s1, ISelection s2)
method IsSelected (line 347) | public bool IsSelected(int offset)
method GetSelectionAt (line 359) | public ISelection GetSelectionAt(int offset)
method Insert (line 372) | internal void Insert(int offset, string text)
method Remove (line 386) | internal void Remove(int offset, int length)
method Replace (line 400) | internal void Replace(int offset, int length, string text)
method GetSelectionAtLine (line 411) | public ColumnRange GetSelectionAtLine(int lineNumber)
method FireSelectionChanged (line 436) | public void FireSelectionChanged()
method OnSelectionChanged (line 440) | protected virtual void OnSelectionChanged(EventArgs e)
class SelectFrom (line 451) | internal class SelectFrom {
method SelectFrom (line 455) | public SelectFrom()
class WhereFrom (line 461) | internal class WhereFrom {
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/TextAnchor.cs
type AnchorMovementType (line 12) | public enum AnchorMovementType
class TextAnchor (line 29) | public sealed class TextAnchor
method AnchorDeletedError (line 31) | static Exception AnchorDeletedError()
method Delete (line 90) | internal void Delete(ref DeferredEventList deferredEventList)
method RaiseDeleted (line 98) | internal void RaiseDeleted()
method TextAnchor (line 104) | internal TextAnchor(LineSegment lineSegment, int columnNumber)
method ToString (line 110) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/TextBufferStrategy/GapTextBufferStrategy.cs
class GapTextBufferStrategy (line 13) | public class GapTextBufferStrategy : ITextBufferStrategy
method CheckThread (line 18) | void CheckThread()
method SetContent (line 40) | public void SetContent(string text)
method GetCharAt (line 49) | public char GetCharAt(int offset)
method GetText (line 62) | public string GetText(int offset, int length)
method Insert (line 94) | public void Insert(int offset, string text)
method Remove (line 99) | public void Remove(int offset, int length)
method Replace (line 104) | public void Replace(int offset, int length, string text)
method PlaceGap (line 133) | void PlaceGap(int newGapOffset, int minRequiredGapLength)
method MakeNewBuffer (line 148) | void MakeNewBuffer(int newGapOffset, int newGapLength)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/TextBufferStrategy/ITextBufferStrategy.cs
type ITextBufferStrategy (line 13) | public interface ITextBufferStrategy
method Insert (line 31) | void Insert(int offset, string text);
method Remove (line 42) | void Remove(int offset, int length);
method Replace (line 56) | void Replace(int offset, int length, string text);
method GetText (line 67) | string GetText(int offset, int length);
method GetCharAt (line 75) | char GetCharAt(int offset);
method SetContent (line 83) | void SetContent(string text);
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/TextBufferStrategy/StringTextBufferStrategy.cs
class StringTextBufferStrategy (line 19) | public class StringTextBufferStrategy : ITextBufferStrategy
method Insert (line 29) | public void Insert(int offset, string text)
method Remove (line 36) | public void Remove(int offset, int length)
method Replace (line 41) | public void Replace(int offset, int length, string text)
method GetText (line 47) | public string GetText(int offset, int length)
method GetCharAt (line 58) | public char GetCharAt(int offset)
method SetContent (line 66) | public void SetContent(string text)
method StringTextBufferStrategy (line 71) | public StringTextBufferStrategy()
method CreateTextBufferFromFile (line 75) | public static ITextBufferStrategy CreateTextBufferFromFile(string file...
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/TextLocation.cs
type TextLocation (line 16) | public struct TextLocation : IComparable<TextLocation>, IEquatable<TextL...
method TextLocation (line 23) | public TextLocation(int column, int line)
method ToString (line 57) | public override string ToString()
method GetHashCode (line 62) | public override int GetHashCode()
method Equals (line 67) | public override bool Equals(object obj)
method Equals (line 73) | public bool Equals(TextLocation other)
method CompareTo (line 118) | public int CompareTo(TextLocation other)
FILE: src/ICSharpCode.TextEditor/Project/Src/Document/TextUtilities.cs
class TextUtilities (line 15) | public sealed class TextUtilities
method LeadingWhiteSpaceToTabs (line 27) | public static string LeadingWhiteSpaceToTabs(string line, int tabInden...
method IsLetterDigitOrUnderscore (line 56) | public static bool IsLetterDigitOrUnderscore(char c)
type CharacterType (line 64) | public enum CharacterType {
method GetExpressionBeforeOffset (line 75) | public static string GetExpressionBeforeOffset(TextArea textArea, int ...
method GetCharacterType (line 163) | public static CharacterType GetCharacterType(char c)
method GetFirstNonWSChar (line 172) | public static int GetFirstNonWSChar(IDocument document, int offset)
method FindWordEnd (line 180) | public static int FindWordEnd(IDocument document, int offset)
method FindWordStart (line 191) | public static int FindWordStart(IDocument document, int offset)
method FindNextWordStart (line 207) | public static int FindNextWordStart(IDocument document, int offset)
method FindPrevWordStart (line 229) | public static int FindPrevWordStart(IDocument document, int offset)
method GetLineAsString (line 251) | public static string GetLineAsString(IDocument document, int lineNumber)
method SearchBracketBackward (line 257) | public static int SearchBracketBackward(IDocument document, int offset...
method SearchBracketForward (line 262) | public static int SearchBracketForward(IDocument document, int offset,...
method IsEmptyLine (line 270) | public static bool IsEmptyLine(IDocument document, int lineNumber)
method IsEmptyLine (line 278) | public static bool IsEmptyLine(IDocument document, LineSegment line)
method IsWordPart (line 289) | static bool IsWordPart(char ch)
method GetWordAt (line 294) | public static string GetWordAt(IDocument document, int offset)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/AbstractMargin.cs
class AbstractMargin (line 22) | public abstract class AbstractMargin
method AbstractMargin (line 79) | protected AbstractMargin(TextArea textArea)
method HandleMouseDown (line 84) | public virtual void HandleMouseDown(Point mousepos, MouseButtons mouse...
method HandleMouseMove (line 90) | public virtual void HandleMouseMove(Point mousepos, MouseButtons mouse...
method HandleMouseLeave (line 96) | public virtual void HandleMouseLeave(EventArgs e)
method Paint (line 103) | public virtual void Paint(Graphics g, Rectangle rect)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/BracketHighlighter.cs
class BracketHighlight (line 14) | public class BracketHighlight
method BracketHighlight (line 19) | public BracketHighlight(TextLocation openBrace, TextLocation closeBrace)
class BracketHighlightingSheme (line 26) | public class BracketHighlightingSheme
method BracketHighlightingSheme (line 49) | public BracketHighlightingSheme(char opentag, char closingtag)
method GetHighlight (line 55) | public BracketHighlight GetHighlight(IDocument document, int offset)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/BrushRegistry.cs
class BrushRegistry (line 19) | public class BrushRegistry
method GetBrush (line 25) | public static Brush GetBrush(Color color)
method GetPen (line 35) | public static Pen GetPen(Color color)
method GetDotPen (line 45) | public static Pen GetDotPen(Color bgColor, Color fgColor)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/Caret.cs
type CaretMode (line 21) | public enum CaretMode {
class Caret (line 36) | public class Caret : System.IDisposable
method Caret (line 119) | public Caret(TextArea textArea)
method Dispose (line 130) | public void Dispose()
method ValidatePosition (line 138) | public TextLocation ValidatePosition(TextLocation pos)
method ValidateCaretPos (line 154) | public void ValidateCaretPos()
method CreateCaret (line 165) | void CreateCaret()
method RecreateCaret (line 185) | public void RecreateCaret()
method DisposeCaret (line 194) | void DisposeCaret()
method GotFocus (line 203) | void GotFocus(object sender, EventArgs e)
method LostFocus (line 213) | void LostFocus(object sender, EventArgs e)
method OnEndUpdate (line 232) | internal void OnEndUpdate()
method UpdateCaretPosition (line 238) | public void UpdateCaretPosition()
method Log (line 290) | [Conditional("DEBUG")]
method PaintCaret (line 297) | internal void PaintCaret(Graphics g)
class CaretImplementation (line 302) | abstract class CaretImplementation : IDisposable
method Create (line 306) | public abstract bool Create(int width, int height);
method Hide (line 307) | public abstract void Hide();
method Show (line 308) | public abstract void Show();
method SetPosition (line 309) | public abstract bool SetPosition(int x, int y);
method PaintCaret (line 310) | public abstract void PaintCaret(Graphics g);
method Destroy (line 311) | public abstract void Destroy();
method Dispose (line 313) | public virtual void Dispose()
class ManagedCaret (line 319) | class ManagedCaret : CaretImplementation
method ManagedCaret (line 328) | public ManagedCaret(Caret caret)
method CaretTimerTick (line 336) | void CaretTimerTick(object sender, EventArgs e)
method Create (line 343) | public override bool Create(int width, int height)
method Hide (line 351) | public override void Hide()
method Show (line 355) | public override void Show()
method SetPosition (line 359) | public override bool SetPosition(int x, int y)
method PaintCaret (line 365) | public override void PaintCaret(Graphics g)
method Destroy (line 370) | public override void Destroy()
method Dispose (line 375) | public override void Dispose()
class Win32Caret (line 382) | class Win32Caret : CaretImplementation
method CreateCaret (line 384) | [DllImport("User32.dll")]
method SetCaretPos (line 387) | [DllImport("User32.dll")]
method DestroyCaret (line 390) | [DllImport("User32.dll")]
method ShowCaret (line 393) | [DllImport("User32.dll")]
method HideCaret (line 396) | [DllImport("User32.dll")]
method Win32Caret (line 401) | public Win32Caret(Caret caret)
method Create (line 406) | public override bool Create(int width, int height)
method Hide (line 410) | public override void Hide()
method Show (line 414) | public override void Show()
method SetPosition (line 418) | public override bool SetPosition(int x, int y)
method PaintCaret (line 422) | public override void PaintCaret(Graphics g)
method Destroy (line 425) | public override void Destroy()
method FirePositionChangedAfterUpdateEnd (line 434) | void FirePositionChangedAfterUpdateEnd(object sender, EventArgs e)
method OnPositionChanged (line 439) | protected virtual void OnPositionChanged(EventArgs e)
method OnCaretModeChanged (line 469) | protected virtual void OnCaretModeChanged(EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/AbstractCompletionWindow.cs
class AbstractCompletionWindow (line 17) | public abstract class AbstractCompletionWindow : System.Windows.Forms.Form
method AbstractCompletionWindow (line 24) | protected AbstractCompletionWindow(Form parentForm, TextEditorControl ...
method SetLocation (line 39) | protected virtual void SetLocation()
method AddShadowToWindow (line 88) | public static void AddShadowToWindow(CreateParams createParams)
method ShowCompletionWindow (line 111) | protected void ShowCompletionWindow()
method ParentFormLocationChanged (line 135) | void ParentFormLocationChanged(object sender, EventArgs e)
method ProcessKeyEvent (line 140) | public virtual bool ProcessKeyEvent(char ch)
method ProcessTextAreaKey (line 145) | protected virtual bool ProcessTextAreaKey(Keys keyData)
method CaretOffsetChanged (line 158) | protected virtual void CaretOffsetChanged(object sender, EventArgs e)
method TextEditorLostFocus (line 162) | protected void TextEditorLostFocus(object sender, EventArgs e)
method OnClosed (line 169) | protected override void OnClosed(EventArgs e)
method OnMouseMove (line 194) | protected override void OnMouseMove(MouseEventArgs e)
method ControlMouseMove (line 209) | protected void ControlMouseMove(object sender, MouseEventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionListView.cs
class CodeCompletionListView (line 17) | public class CodeCompletionListView : System.Windows.Forms.UserControl
method CodeCompletionListView (line 66) | public CodeCompletionListView(ICompletionData[] completionData)
method Close (line 77) | public void Close()
method SelectIndex (line 85) | public void SelectIndex(int index)
method CenterViewOn (line 110) | public void CenterViewOn(int index)
method ClearSelection (line 125) | public void ClearSelection()
method PageDown (line 136) | public void PageDown()
method PageUp (line 141) | public void PageUp()
method SelectNextItem (line 146) | public void SelectNextItem()
method SelectPrevItem (line 151) | public void SelectPrevItem()
method SelectItemWithStart (line 156) | public void SelectItemWithStart(string startText)
method OnPaint (line 215) | protected override void OnPaint(PaintEventArgs pe)
method OnMouseDown (line 255) | protected override void OnMouseDown(System.Windows.Forms.MouseEventArg...
method OnPaintBackground (line 272) | protected override void OnPaintBackground(PaintEventArgs pe)
method OnSelectedItemChanged (line 276) | protected virtual void OnSelectedItemChanged(EventArgs e)
method OnFirstItemChanged (line 283) | protected virtual void OnFirstItemChanged(EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionWindow.cs
class CodeCompletionWindow (line 16) | public class CodeCompletionWindow : AbstractCompletionWindow
method ShowCompletionWindow (line 33) | public static CodeCompletionWindow ShowCompletionWindow(Form parent, T...
method ShowCompletionWindow (line 38) | public static CodeCompletionWindow ShowCompletionWindow(Form parent, T...
method CodeCompletionWindow (line 50) | CodeCompletionWindow(ICompletionDataProvider completionDataProvider, I...
method CodeCompletionListViewFirstItemChanged (line 110) | void CodeCompletionListViewFirstItemChanged(object sender, EventArgs e)
method VScrollBarValueChanged (line 118) | void VScrollBarValueChanged(object sender, EventArgs e)
method SetDeclarationViewLocation (line 128) | void SetDeclarationViewLocation()
method SetLocation (line 145) | protected override void SetLocation()
method HandleMouseWheel (line 155) | public void HandleMouseWheel(MouseEventArgs e)
method CodeCompletionListViewSelectedItemChanged (line 166) | void CodeCompletionListViewSelectedItemChanged(object sender, EventArg...
method ProcessKeyEvent (line 177) | public override bool ProcessKeyEvent(char ch)
method DocumentAboutToBeChanged (line 195) | void DocumentAboutToBeChanged(object sender, DocumentEventArgs e)
method CaretOffsetChanged (line 216) | protected override void CaretOffsetChanged(object sender, EventArgs e)
method ProcessTextAreaKey (line 231) | protected override bool ProcessTextAreaKey(Keys keyData)
method CodeCompletionListViewDoubleClick (line 266) | void CodeCompletionListViewDoubleClick(object sender, EventArgs e)
method CodeCompletionListViewClick (line 271) | void CodeCompletionListViewClick(object sender, EventArgs e)
method Dispose (line 276) | protected override void Dispose(bool disposing)
method InsertSelectedItem (line 292) | bool InsertSelectedItem(char ch)
method GetListViewSize (line 314) | Size GetListViewSize()
method GetListViewWidth (line 333) | int GetListViewWidth(int defaultWidth, int height)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/DeclarationViewWindow.cs
type IDeclarationViewWindow (line 16) | public interface IDeclarationViewWindow
method ShowDeclarationViewWindow (line 22) | void ShowDeclarationViewWindow();
method CloseDeclarationViewWindow (line 23) | void CloseDeclarationViewWindow();
class DeclarationViewWindow (line 26) | public class DeclarationViewWindow : Form, IDeclarationViewWindow
method DeclarationViewWindow (line 47) | public DeclarationViewWindow(Form parent)
method OnClick (line 72) | protected override void OnClick(EventArgs e)
method ShowDeclarationViewWindow (line 78) | public void ShowDeclarationViewWindow()
method CloseDeclarationViewWindow (line 83) | public void CloseDeclarationViewWindow()
method OnPaint (line 89) | protected override void OnPaint(PaintEventArgs pe)
method OnPaintBackground (line 96) | protected override void OnPaintBackground(PaintEventArgs pe)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs
type ICompletionData (line 12) | public interface ICompletionData
method InsertAction (line 45) | bool InsertAction(TextArea textArea, char ch);
class DefaultCompletionData (line 48) | public class DefaultCompletionData : ICompletionData
method InsertAction (line 86) | public virtual bool InsertAction(TextArea textArea, char ch)
method DefaultCompletionData (line 92) | public DefaultCompletionData(string text, string description, int imag...
method Compare (line 99) | public static int Compare(ICompletionData a, ICompletionData b)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionDataProvider.cs
type ICompletionDataProvider (line 13) | public interface ICompletionDataProvider
method ProcessKey (line 31) | CompletionDataProviderKeyResult ProcessKey(char key);
method InsertAction (line 37) | bool InsertAction(ICompletionData data, TextArea textArea, int inserti...
method GenerateCompletionData (line 42) | ICompletionData[] GenerateCompletionData(string fileName, TextArea tex...
type CompletionDataProviderKeyResult (line 45) | public enum CompletionDataProviderKeyResult
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/DrawableLine.cs
class DrawableLine (line 19) | public class DrawableLine
class SimpleTextWord (line 28) | private class SimpleTextWord {
method SimpleTextWord (line 34) | public SimpleTextWord(TextWordType Type, string Word, bool Bold, Col...
method DrawableLine (line 46) | public DrawableLine(IDocument document, LineSegment line, Font monospa...
method SetBold (line 75) | public void SetBold(int startIndex, int endIndex, bool bold)
method DrawDocumentWord (line 114) | public static float DrawDocumentWord(Graphics g, string word, PointF p...
method GetSpaceSize (line 129) | public SizeF GetSpaceSize(Graphics g)
method DrawLine (line 137) | public void DrawLine(Graphics g, ref float xPos, float xOffset, float ...
method DrawLine (line 162) | public void DrawLine(Graphics g, ref float xPos, float xOffset, float ...
method MeasureWidth (line 167) | public float MeasureWidth(Graphics g, float xPos)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/FindReplaceForm/FindAndReplaceForm.Designer.cs
class FindAndReplaceForm (line 3) | partial class FindAndReplaceForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/FindReplaceForm/FindAndReplaceForm.cs
class FindAndReplaceForm (line 20) | public partial class FindAndReplaceForm : Form
method FindAndReplaceForm (line 23) | public FindAndReplaceForm()
method UpdateTitleBar (line 40) | private void UpdateTitleBar()
method ShowFor (line 50) | public void ShowFor(TextEditorControl editor, bool replaceMode)
method btnFindPrevious_Click (line 91) | private void btnFindPrevious_Click(object sender, EventArgs e)
method btnFindNext_Click (line 95) | private void btnFindNext_Click(object sender, EventArgs e)
method FindNext (line 103) | public TextRange FindNext(bool viaF3, bool searchBackward, string mess...
method SelectResult (line 132) | private void SelectResult(TextRange range)
method btnHighlightAll_Click (line 146) | private void btnHighlightAll_Click(object sender, EventArgs e)
method FindAndReplaceForm_FormClosing (line 183) | private void FindAndReplaceForm_FormClosing(object sender, FormClosing...
method btnCancel_Click (line 201) | private void btnCancel_Click(object sender, EventArgs e)
method btnReplace_Click (line 206) | private void btnReplace_Click(object sender, EventArgs e)
method btnReplaceAll_Click (line 214) | private void btnReplaceAll_Click(object sender, EventArgs e)
method InsertText (line 246) | private void InsertText(string text)
class TextRange (line 264) | public class TextRange : AbstractSegment
method TextRange (line 267) | public TextRange(IDocument document, int offset, int length)
class TextEditorSearcher (line 277) | public class TextEditorSearcher : IDisposable
method SetScanRegion (line 303) | public void SetScanRegion(ISelection sel)
method SetScanRegion (line 309) | public void SetScanRegion(int offset, int length)
method ClearScanRegion (line 320) | public void ClearScanRegion()
method Dispose (line 328) | public void Dispose() { ClearScanRegion(); GC.SuppressFinalize(this); }
method FindNext (line 369) | public TextRange FindNext(int beginAtOffset, bool searchBackward, out ...
method FindNextIn (line 396) | private TextRange FindNextIn(int offset1, int offset2, bool searchBack...
method IsWholeWordMatch (line 431) | private bool IsWholeWordMatch(int offset)
method IsWordBoundary (line 438) | private bool IsWordBoundary(int offset)
method IsAlphaNumeric (line 443) | private bool IsAlphaNumeric(int offset)
method IsPartWordMatch (line 448) | private bool IsPartWordMatch(int offset)
class HighlightGroup (line 459) | public class HighlightGroup : IDisposable
method HighlightGroup (line 464) | public HighlightGroup(TextEditorControl editor)
method AddMarker (line 469) | public void AddMarker(TextMarker marker)
method ClearMarkers (line 474) | public void ClearMarkers()
method Dispose (line 481) | public void Dispose() { ClearMarkers(); GC.SuppressFinalize(this); }
class FIndAndReplaceHelpers (line 488) | public static class FIndAndReplaceHelpers
method InRange (line 490) | public static int InRange(this int x, int lo, int hi)
method IsInRange (line 495) | public static bool IsInRange(this int x, int lo, int hi)
method HalfMix (line 499) | public static Color HalfMix(this Color one, Color two)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/FoldMargin.cs
class FoldMargin (line 20) | public class FoldMargin : AbstractMargin
method FoldMargin (line 37) | public FoldMargin(TextArea textArea) : base(textArea)
method Paint (line 41) | public override void Paint(Graphics g, Rectangle rect)
method SelectedFoldingFrom (line 79) | bool SelectedFoldingFrom(List<FoldMarker> list)
method PaintFoldMarker (line 91) | void PaintFoldMarker(Graphics g, int lineNumber, Rectangle drawingRect...
method HandleMouseMove (line 195) | public override void HandleMouseMove(Point mousepos, MouseButtons mous...
method HandleMouseDown (line 217) | public override void HandleMouseDown(Point mousepos, MouseButtons mous...
method HandleMouseLeave (line 237) | public override void HandleMouseLeave(EventArgs e)
method DrawFoldMarker (line 246) | void DrawFoldMarker(Graphics g, RectangleF rectangle, bool isOpened, b...
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/GutterMargin.cs
class GutterMargin (line 21) | public class GutterMargin : AbstractMargin, IDisposable
method GutterMargin (line 27) | static GutterMargin()
method Dispose (line 35) | public void Dispose()
method GutterMargin (line 60) | public GutterMargin(TextArea textArea) : base(textArea)
method Paint (line 67) | public override void Paint(Graphics g, Rectangle rect)
method HandleMouseDown (line 94) | public override void HandleMouseDown(Point mousepos, MouseButtons mous...
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/HRuler.cs
class HRuler (line 17) | public class HRuler : Control
method HRuler (line 21) | public HRuler(TextArea textArea)
method OnPaint (line 26) | protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
method OnPaintBackground (line 45) | protected override void OnPaintBackground(System.Windows.Forms.PaintEv...
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/IconBarMargin.cs
class IconBarMargin (line 21) | public class IconBarMargin : AbstractMargin
method IconBarMargin (line 40) | public IconBarMargin(TextArea textArea) : base(textArea)
method Paint (line 44) | public override void Paint(Graphics g, Rectangle rect)
method HandleMouseDown (line 69) | public override void HandleMouseDown(Point mousePos, MouseButtons mous...
method DrawBreakpoint (line 101) | public void DrawBreakpoint(Graphics g, int y, bool isEnabled, bool isH...
method DrawBookmark (line 130) | public void DrawBookmark(Graphics g, int y, bool isEnabled)
method DrawArrow (line 155) | public void DrawArrow(Graphics g, int y)
method CreateArrowGraphicsPath (line 176) | GraphicsPath CreateArrowGraphicsPath(Rectangle r)
method CreateRoundRectGraphicsPath (line 192) | GraphicsPath CreateRoundRectGraphicsPath(Rectangle r)
method DrawRoundRect (line 212) | void DrawRoundRect(Graphics g, Pen p , Rectangle r)
method FillRoundRect (line 219) | void FillRoundRect(Graphics g, Brush b , Rectangle r)
method DrawArrow (line 226) | void DrawArrow(Graphics g, Pen p , Rectangle r)
method FillArrow (line 233) | void FillArrow(Graphics g, Brush b , Rectangle r)
method IsLineInsideRegion (line 242) | static bool IsLineInsideRegion(int top, int bottom, int regionTop, int...
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/Ime.cs
class Ime (line 18) | internal class Ime
method Ime (line 20) | public Ime(IntPtr hWnd, Font font)
method ImmGetDefaultIMEWnd (line 60) | [ DllImport("imm32.dll") ]
method SendMessage (line 63) | [ DllImport("user32.dll") ]
method SendMessage (line 65) | [ DllImport("user32.dll") ]
class COMPOSITIONFORM (line 68) | [ StructLayout(LayoutKind.Sequential) ]
class POINT (line 76) | [ StructLayout(LayoutKind.Sequential) ]
class RECT (line 83) | [ StructLayout(LayoutKind.Sequential) ]
class LOGFONT (line 99) | [ StructLayout(LayoutKind.Sequential) ]
method SetIMEWindowFont (line 121) | private void SetIMEWindowFont(Font f)
method SetIMEWindowLocation (line 143) | public void SetIMEWindowLocation(int x, int y)
method Handle (line 168) | void Handle(Exception ex)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/IInsightDataProvider.cs
type IInsightDataProvider (line 12) | public interface IInsightDataProvider
method SetupDataProvider (line 19) | void SetupDataProvider(string fileName, TextArea textArea);
method CaretOffsetChanged (line 27) | bool CaretOffsetChanged();
method GetInsightData (line 36) | string GetInsightData(int number);
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/InsightWindow.cs
class InsightWindow (line 18) | public class InsightWindow : AbstractCompletionWindow
method InsightWindow (line 20) | public InsightWindow(Form parentForm, TextEditorControl control) : bas...
method ShowInsightWindow (line 26) | public void ShowInsightWindow()
method ProcessTextAreaKey (line 38) | protected override bool ProcessTextAreaKey(Keys keyData)
method CaretOffsetChanged (line 60) | protected override void CaretOffsetChanged(object sender, EventArgs e)
method OnMouseDown (line 83) | protected override void OnMouseDown(MouseEventArgs e)
method HandleMouseWheel (line 101) | public void HandleMouseWheel(MouseEventArgs e)
method OnPaint (line 117) | protected override void OnPaint(PaintEventArgs pe)
method OnPaintBackground (line 141) | protected override void OnPaintBackground(PaintEventArgs pe)
method AddInsightDataProvider (line 168) | public void AddInsightDataProvider(IInsightDataProvider provider, stri...
method CloseCurrentDataProvider (line 176) | void CloseCurrentDataProvider()
class InsightDataProviderStackElement (line 186) | class InsightDataProviderStackElement
method InsightDataProviderStackElement (line 191) | public InsightDataProviderStackElement(IInsightDataProvider dataProv...
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs
class TextArea (line 29) | [ToolboxItem(false)]
method InsertLeftMargin (line 69) | public void InsertLeftMargin(int index, AbstractMargin margin)
method TextArea (line 178) | public TextArea(TextEditorControl motherTextEditorControl, TextAreaCon...
method UpdateMatchingBracket (line 218) | public void UpdateMatchingBracket()
method TextContentChanged (line 223) | void TextContentChanged(object sender, EventArgs e)
method SearchMatchingBracket (line 228) | void SearchMatchingBracket(object sender, EventArgs e)
method FindMatchingBracketHighlight (line 256) | public BracketHighlight FindMatchingBracketHighlight()
method SetDesiredColumn (line 269) | public void SetDesiredColumn()
method SetCaretToDesiredColumn (line 274) | public void SetCaretToDesiredColumn()
method OptionsChanged (line 280) | public void OptionsChanged()
method OnMouseLeave (line 291) | protected override void OnMouseLeave(System.EventArgs e)
method OnMouseDown (line 302) | protected override void OnMouseDown(System.Windows.Forms.MouseEventArg...
method ShowHiddenCursor (line 324) | internal void ShowHiddenCursor(bool forceShow)
method SetToolTip (line 340) | void SetToolTip(string text, int lineNumber)
method OnToolTipRequest (line 366) | protected virtual void OnToolTipRequest(ToolTipRequestEventArgs e)
method CloseToolTip (line 381) | void CloseToolTip()
method OnMouseHover (line 391) | protected override void OnMouseHover(EventArgs e)
method RequestToolTip (line 402) | protected void RequestToolTip(Point mousePos)
method RaiseMouseMove (line 430) | internal void RaiseMouseMove(MouseEventArgs e)
method OnMouseMove (line 435) | protected override void OnMouseMove(MouseEventArgs e)
method Refresh (line 475) | public void Refresh(AbstractMargin margin)
method OnPaintBackground (line 483) | protected override void OnPaintBackground(System.Windows.Forms.PaintEv...
method OnPaint (line 487) | protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
method DocumentFoldingsChanged (line 553) | void DocumentFoldingsChanged(object sender, EventArgs e)
method HandleKeyPress (line 569) | protected internal virtual bool HandleKeyPress(char ch)
method IsInputChar (line 578) | protected override bool IsInputChar(char charCode)
method IsReadOnly (line 583) | internal bool IsReadOnly(int offset)
method IsReadOnly (line 595) | internal bool IsReadOnly(int offset, int length)
method SimulateKeyPress (line 607) | public void SimulateKeyPress(char ch)
method OnKeyPress (line 673) | protected override void OnKeyPress(KeyPressEventArgs e)
method ExecuteDialogKey (line 683) | public bool ExecuteDialogKey(Keys keyData)
method ProcessDialogKey (line 713) | protected override bool ProcessDialogKey(Keys keyData)
method ScrollToCaret (line 719) | public void ScrollToCaret()
method ScrollTo (line 724) | public void ScrollTo(int line)
method BeginUpdate (line 729) | public void BeginUpdate()
method EndUpdate (line 734) | public void EndUpdate()
method GenerateWhitespaceString (line 750) | string GenerateWhitespaceString(int length)
method InsertChar (line 757) | public void InsertChar(char ch)
method InsertString (line 799) | public void InsertString(string str)
method ReplaceChar (line 840) | public void ReplaceChar(char ch)
method Dispose (line 867) | protected override void Dispose(bool disposing)
method UpdateLine (line 894) | internal void UpdateLine(int line)
method UpdateLines (line 899) | internal void UpdateLines(int lineBegin, int lineEnd)
method UpdateToEnd (line 904) | internal void UpdateToEnd(int lineBegin)
method UpdateLineToEnd (line 920) | internal void UpdateLineToEnd(int lineNr, int xStart)
method UpdateLine (line 925) | internal void UpdateLine(int line, int begin, int end)
method UpdateLines (line 934) | internal void UpdateLines(int xPos, int lineBegin, int lineEnd)
method InvalidateLines (line 943) | void InvalidateLines(int xPos, int lineBegin, int lineEnd)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaClipboardHandler.cs
class TextAreaClipboardHandler (line 19) | public class TextAreaClipboardHandler
method TextAreaClipboardHandler (line 59) | public TextAreaClipboardHandler(TextArea textArea)
method DocumentSelectionChanged (line 65) | void DocumentSelectionChanged(object sender, EventArgs e)
method CopyTextToClipboard (line 72) | bool CopyTextToClipboard(string stringToCopy, bool asLine)
method SafeSetClipboard (line 98) | static void SafeSetClipboard(object dataObject)
method CopyTextToClipboard (line 121) | bool CopyTextToClipboard(string stringToCopy)
method Cut (line 126) | public void Cut(object sender, EventArgs e)
method Copy (line 157) | public void Copy(object sender, EventArgs e)
method Paste (line 168) | public void Paste(object sender, EventArgs e)
method Delete (line 212) | public void Delete(object sender, EventArgs e)
method SelectAll (line 217) | public void SelectAll(object sender, EventArgs e)
method OnCopyText (line 222) | protected virtual void OnCopyText(CopyTextEventArgs e)
class CopyTextEventArgs (line 233) | public class CopyTextEventArgs : EventArgs
method CopyTextEventArgs (line 243) | public CopyTextEventArgs(string text)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs
class TextAreaControl (line 20) | [ToolboxItem(false)]
method TextAreaControl (line 89) | public TextAreaControl(TextEditorControl motherTextEditorControl)
method Dispose (line 108) | protected override void Dispose(bool disposing)
method DocumentTextContentChanged (line 134) | void DocumentTextContentChanged(object sender, EventArgs e)
method OnResize (line 142) | protected override void OnResize(System.EventArgs e)
method ResizeTextArea (line 148) | public void ResizeTextArea()
method SetScrollBarBounds (line 168) | public void SetScrollBarBounds()
method AdjustScrollBarsOnDocumentChange (line 180) | void AdjustScrollBarsOnDocumentChange(object sender, DocumentEventArgs e)
method DocumentUpdateCommitted (line 190) | void DocumentUpdateCommitted(object sender, EventArgs e)
method AdjustScrollBarsClearCache (line 209) | void AdjustScrollBarsClearCache()
method AdjustScrollBars (line 220) | public void AdjustScrollBars()
method OptionsChanged (line 259) | public void OptionsChanged()
method VScrollBarValueChanged (line 283) | void VScrollBarValueChanged(object sender, EventArgs e)
method HScrollBarValueChanged (line 290) | void HScrollBarValueChanged(object sender, EventArgs e)
method HandleMouseWheel (line 298) | public void HandleMouseWheel(MouseEventArgs e)
method OnMouseWheel (line 319) | protected override void OnMouseWheel(MouseEventArgs e)
method ScrollToCaret (line 327) | public void ScrollToCaret()
method ScrollTo (line 332) | public void ScrollTo(int line, int column)
method ScrollTo (line 366) | public void ScrollTo(int line)
method CenterViewOn (line 399) | public void CenterViewOn(int line, int treshold)
method JumpTo (line 418) | public void JumpTo(int line)
method JumpTo (line 425) | public void JumpTo(int line, int column)
method WndProc (line 436) | protected override void WndProc(ref Message m)
method OnEnter (line 455) | protected override void OnEnter(EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaDragDropHandler.cs
class TextAreaDragDropHandler (line 16) | public class TextAreaDragDropHandler
method Attach (line 22) | public void Attach(TextArea textArea)
method MakeDragEventHandler (line 36) | static DragEventHandler MakeDragEventHandler(DragEventHandler h)
method GetDragDropEffect (line 47) | static DragDropEffects GetDragDropEffect(DragEventArgs e)
method OnDragEnter (line 60) | protected void OnDragEnter(object sender, DragEventArgs e)
method InsertString (line 73) | void InsertString(int offset, string str)
method OnDragDrop (line 84) | protected void OnDragDrop(object sender, DragEventArgs e)
method OnDragOver (line 129) | protected void OnDragOver(object sender, DragEventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaMouseHandler.cs
class TextAreaMouseHandler (line 21) | public class TextAreaMouseHandler
method TextAreaMouseHandler (line 36) | public TextAreaMouseHandler(TextArea ttextArea)
method Attach (line 41) | public void Attach()
method OnToolTipRequest (line 54) | void OnToolTipRequest(object sender, ToolTipRequestEventArgs e)
method ShowHiddenCursorIfMovedOrLeft (line 92) | void ShowHiddenCursorIfMovedOrLeft()
method TextAreaLostFocus (line 98) | void TextAreaLostFocus(object sender, EventArgs e)
method OnMouseLeave (line 109) | void OnMouseLeave(object sender, EventArgs e)
method OnMouseUp (line 116) | void OnMouseUp(object sender, MouseEventArgs e)
method TextAreaClick (line 123) | void TextAreaClick(object sender, EventArgs e)
method TextAreaMouseMove (line 146) | void TextAreaMouseMove(object sender, MouseEventArgs e)
method ExtendSelectionToMouse (line 200) | void ExtendSelectionToMouse()
method DoubleClickSelectionExtend (line 251) | void DoubleClickSelectionExtend()
method OnMouseDown (line 309) | void OnMouseDown(object sender, MouseEventArgs e)
method FindNext (line 414) | int FindNext(IDocument document, int offset, char ch)
method IsSelectableChar (line 425) | bool IsSelectableChar(char ch)
method FindWordStart (line 430) | int FindWordStart(IDocument document, int offset)
method FindWordEnd (line 450) | int FindWordEnd(IDocument document, int offset)
method OnDoubleClick (line 475) | void OnDoubleClick(object sender, System.EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaUpdate.cs
type TextAreaUpdateType (line 16) | public enum TextAreaUpdateType {
class TextAreaUpdate (line 28) | public class TextAreaUpdate
method TextAreaUpdate (line 48) | public TextAreaUpdate(TextAreaUpdateType type)
method TextAreaUpdate (line 56) | public TextAreaUpdate(TextAreaUpdateType type, TextLocation position)
method TextAreaUpdate (line 65) | public TextAreaUpdate(TextAreaUpdateType type, int startLine, int endL...
method TextAreaUpdate (line 74) | public TextAreaUpdate(TextAreaUpdateType type, int singleLine)
method ToString (line 80) | public override string ToString()
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControl.cs
class TextEditorControl (line 21) | [ToolboxBitmap("ICSharpCode.TextEditor.Resources.TextEditorControl.bmp")]
method SetActiveTextAreaControl (line 52) | protected void SetActiveTextAreaControl(TextAreaControl value)
method DispatchDragDrop (line 68) | internal void DispatchDragDrop(DragEventArgs drgevent)
method DispatchDragEnter (line 72) | internal void DispatchDragEnter(DragEventArgs drgevent)
method DispatchDragOver (line 76) | internal void DispatchDragOver(DragEventArgs drgevent)
method TextEditorControl (line 82) | public TextEditorControl()
method InitializeTextAreaControl (line 105) | protected virtual void InitializeTextAreaControl(TextAreaControl newCo...
method OptionsChanged (line 109) | public override void OptionsChanged()
method Split (line 117) | public void Split()
method Undo (line 163) | public void Undo()
method Redo (line 181) | public void Redo()
method SetHighlighting (line 199) | public void SetHighlighting(string name)
method Dispose (line 204) | protected override void Dispose(bool disposing)
method EndUpdate (line 232) | public override void EndUpdate()
method CommitUpdateRequested (line 241) | void CommitUpdateRequested(object sender, EventArgs e)
method BeginPrint (line 294) | void BeginPrint(object sender, PrintEventArgs ev)
method Advance (line 308) | void Advance(ref float x, ref float y, float maxWidth, float size, flo...
method MeasurePrintingHeight (line 319) | float MeasurePrintingHeight(Graphics g, LineSegment line, float maxWidth)
method DrawLine (line 354) | void DrawLine(Graphics g, LineSegment line, float yPos, RectangleF mar...
method PrintPage (line 389) | void PrintPage(object sender, PrintPageEventArgs ev)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs
class TextEditorControlBase (line 26) | [ToolboxItem(false)]
method OnDocumentChanged (line 108) | void OnDocumentChanged(object sender, EventArgs e)
method ParseFont (line 132) | static Font ParseFont(string font)
method TextEditorControlBase (line 493) | protected TextEditorControlBase()
method OnReloadHighlighting (line 499) | protected virtual void OnReloadHighlighting(object sender, EventArgs e)
method IsEditAction (line 511) | public bool IsEditAction(Keys keyData)
method GetEditAction (line 516) | internal IEditAction GetEditAction(Keys keyData)
method GenerateDefaultActions (line 524) | void GenerateDefaultActions()
method BeginUpdate (line 593) | public virtual void BeginUpdate()
method EndUpdate (line 603) | public virtual void EndUpdate()
method LoadFile (line 609) | public void LoadFile(string fileName)
method LoadFile (line 620) | public void LoadFile(string fileName, bool autoLoadHighlighting, bool ...
method LoadFile (line 635) | public void LoadFile(string fileName, Stream stream, bool autoLoadHigh...
method CanSaveWithCurrentEncoding (line 673) | public bool CanSaveWithCurrentEncoding()
method SaveFile (line 685) | public void SaveFile(string fileName)
method SaveFile (line 697) | public void SaveFile(Stream stream)
method OptionsChanged (line 716) | public abstract void OptionsChanged();
method GetRangeDescription (line 721) | public virtual string GetRangeDescription(int selectedItem, int itemCo...
method Refresh (line 733) | public override void Refresh()
method Dispose (line 741) | protected override void Dispose(bool disposing)
method OnFileNameChanged (line 751) | protected virtual void OnFileNameChanged(EventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs
class TextView (line 21) | public class TextView : AbstractMargin, IDisposable
method Dispose (line 29) | public void Dispose()
method TextView (line 91) | public TextView(TextArea textArea) : base(textArea)
method GetFontHeight (line 97) | static int GetFontHeight(Font font)
method OptionsChanged (line 130) | public void OptionsChanged()
method Paint (line 142) | public override void Paint(Graphics g, Rectangle rect)
method PaintDocumentLine (line 180) | void PaintDocumentLine(Graphics g, int lineNumber, Rectangle lineRecta...
method DrawLineMarkerAtLine (line 266) | bool DrawLineMarkerAtLine(int lineNumber)
method GetBgColorBrush (line 271) | Brush GetBgColorBrush(int lineNumber)
method PaintFoldingText (line 284) | int PaintFoldingText(Graphics g, int lineNumber, int physicalXPos, Rec...
type MarkerToDraw (line 309) | struct MarkerToDraw {
method MarkerToDraw (line 313) | public MarkerToDraw(TextMarker marker, RectangleF drawingRect)
method DrawMarker (line 322) | void DrawMarker(Graphics g, TextMarker marker, RectangleF drawingRect)
method DrawMarkerDraw (line 328) | void DrawMarkerDraw(Graphics g)
method GetMarkerBrushAt (line 362) | Brush GetMarkerBrushAt(int offset, int length, ref Color foreColor, ou...
method PaintLinePart (line 376) | int PaintLinePart(Graphics g, int lineNumber, int startColumn, int end...
method DrawDocumentWord (line 561) | int DrawDocumentWord(Graphics g, string word, Point position, Font fon...
type WordFontPair (line 595) | struct WordFontPair {
method WordFontPair (line 598) | public WordFontPair(string word, Font font) {
method Equals (line 602) | public override bool Equals(object obj) {
method GetHashCode (line 608) | public override int GetHashCode() {
method MeasureStringWidth (line 620) | int MeasureStringWidth(Graphics g, string word, Font font)
method GetWidth (line 664) | public int GetWidth(char ch, Font font)
method GetWidth (line 677) | public int GetWidth(Graphics g, char ch, Font font)
method GetVisualColumn (line 689) | public int GetVisualColumn(int logicalLine, int logicalColumn)
method GetVisualColumnFast (line 698) | public int GetVisualColumnFast(LineSegment line, int logicalColumn)
method GetLogicalPosition (line 726) | public TextLocation GetLogicalPosition(Point mousePosition)
method GetLogicalPosition (line 735) | public TextLocation GetLogicalPosition(int visualPosX, int visualPosY)
method GetFoldMarkerFromPosition (line 744) | public FoldMarker GetFoldMarkerFromPosition(int visualPosX, int visual...
method GetLogicalLine (line 754) | public int GetLogicalLine(int visualPosY)
method GetLogicalColumn (line 760) | internal TextLocation GetLogicalColumn(int lineNumber, int visualPosX,...
method GetLogicalColumnInternal (line 801) | int GetLogicalColumnInternal(Graphics g, LineSegment line, int start, ...
method IsNearerToAThanB (line 874) | static bool IsNearerToAThanB(int num, int a, int b)
method FindNextFoldedFoldingOnLineAfterColumn (line 879) | FoldMarker FindNextFoldedFoldingOnLineAfterColumn(int lineNumber, int ...
method CountColumns (line 890) | float CountColumns(ref int column, int start, int end, int logicalLine...
method GetDrawingXPos (line 964) | public int GetDrawingXPos(int logicalLine, int logicalColumn)
method DrawBracketHighlight (line 1031) | void DrawBracketHighlight(Graphics g, Rectangle rect)
method DrawString (line 1037) | void DrawString(Graphics g, string text, Font font, Color color, int x...
method DrawInvalidLineMarker (line 1042) | void DrawInvalidLineMarker(Graphics g, int x, int y)
method DrawSpaceMarker (line 1048) | void DrawSpaceMarker(Graphics g, Color color, int x, int y)
method DrawTabMarker (line 1054) | void DrawTabMarker(Graphics g, Color color, int x, int y)
method DrawEOLMarker (line 1060) | int DrawEOLMarker(Graphics g, Color color, Brush backBrush, int x, int y)
method DrawVerticalRuler (line 1072) | void DrawVerticalRuler(Graphics g, Rectangle lineRectangle)
FILE: src/ICSharpCode.TextEditor/Project/Src/Gui/ToolTipRequestEventArgs.cs
class ToolTipRequestEventArgs (line 15) | public class ToolTipRequestEventArgs
method ShowToolTip (line 50) | public void ShowToolTip(string text)
method ToolTipRequestEventArgs (line 55) | public ToolTipRequestEventArgs(Point mousePosition, TextLocation logic...
FILE: src/ICSharpCode.TextEditor/Project/Src/Undo/IUndoableOperation.cs
type IUndoableOperation (line 14) | public interface IUndoableOperation
method Undo (line 19) | void Undo();
method Redo (line 24) | void Redo();
FILE: src/ICSharpCode.TextEditor/Project/Src/Undo/UndoQueue.cs
class UndoQueue (line 18) | internal sealed class UndoQueue : IUndoableOperation
method UndoQueue (line 24) | public UndoQueue(Stack<IUndoableOperation> stack, int numops)
method Undo (line 39) | public void Undo()
method Redo (line 46) | public void Redo()
FILE: src/ICSharpCode.TextEditor/Project/Src/Undo/UndoStack.cs
class UndoStack (line 17) | public class UndoStack
method StartUndoGroup (line 76) | public void StartUndoGroup()
method EndUndoGroup (line 85) | public void EndUndoGroup()
method AssertNoUndoGroupOpen (line 96) | public void AssertNoUndoGroupOpen()
method Undo (line 107) | public void Undo()
method Redo (line 121) | public void Redo()
method Push (line 136) | public void Push(IUndoableOperation operation)
method ClearRedoStack (line 158) | public void ClearRedoStack()
method ClearAll (line 166) | public void ClearAll()
method OnActionUndone (line 176) | protected void OnActionUndone()
method OnActionRedone (line 185) | protected void OnActionRedone()
class UndoableSetCaretPosition (line 192) | class UndoableSetCaretPosition : IUndoableOperation
method UndoableSetCaretPosition (line 198) | public UndoableSetCaretPosition(UndoStack stack, TextLocation pos)
method Undo (line 204) | public void Undo()
method Redo (line 210) | public void Redo()
FILE: src/ICSharpCode.TextEditor/Project/Src/Undo/UndoableDelete.cs
class UndoableDelete (line 17) | public class UndoableDelete : IUndoableOperation
method UndoableDelete (line 27) | public UndoableDelete(IDocument document, int offset, string text)
method Undo (line 46) | public void Undo()
method Redo (line 60) | public void Redo()
FILE: src/ICSharpCode.TextEditor/Project/Src/Undo/UndoableInsert.cs
class UndoableInsert (line 17) | public class UndoableInsert : IUndoableOperation
method UndoableInsert (line 27) | public UndoableInsert(IDocument document, int offset, string text)
method Undo (line 46) | public void Undo()
method Redo (line 61) | public void Redo()
FILE: src/ICSharpCode.TextEditor/Project/Src/Undo/UndoableReplace.cs
class UndoableReplace (line 17) | public class UndoableReplace : IUndoableOperation
method UndoableReplace (line 28) | public UndoableReplace(IDocument document, int offset, string origText...
method Undo (line 48) | public void Undo()
method Redo (line 63) | public void Redo()
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/AugmentableRedBlackTree.cs
class RedBlackTreeNode (line 15) | internal sealed class RedBlackTreeNode<T>
method RedBlackTreeNode (line 21) | internal RedBlackTreeNode(T val)
type IRedBlackTreeHost (line 45) | internal interface IRedBlackTreeHost<T> : IComparer<T>
method Equals (line 47) | bool Equals(T a, T b);
method UpdateAfterChildrenChange (line 49) | void UpdateAfterChildrenChange(RedBlackTreeNode<T> node);
method UpdateAfterRotateLeft (line 50) | void UpdateAfterRotateLeft(RedBlackTreeNode<T> node);
method UpdateAfterRotateRight (line 51) | void UpdateAfterRotateRight(RedBlackTreeNode<T> node);
class AugmentableRedBlackTree (line 57) | internal sealed class AugmentableRedBlackTree<T, Host> : ICollection<T> ...
method AugmentableRedBlackTree (line 63) | public AugmentableRedBlackTree(Host host)
method Clear (line 73) | public void Clear()
method CheckProperties (line 84) | [Conditional("DATACONSISTENCYTEST")]
method CheckNodeProperties (line 104) | void CheckNodeProperties(RedBlackTreeNode<T> node, RedBlackTreeNode<T>...
method GetTreeAsString (line 127) | public string GetTreeAsString()
method AppendTreeToString (line 134) | static void AppendTreeToString(RedBlackTreeNode<T> node, StringBuilder...
method Add (line 157) | public void Add(T item)
method AddInternal (line 165) | void AddInternal(RedBlackTreeNode<T> newNode)
method InsertAsLeft (line 192) | internal void InsertAsLeft(RedBlackTreeNode<T> parentNode, RedBlackTre...
method InsertAsRight (line 203) | internal void InsertAsRight(RedBlackTreeNode<T> parentNode, RedBlackTr...
method FixTreeOnInsert (line 214) | void FixTreeOnInsert(RedBlackTreeNode<T> node)
method ReplaceNode (line 273) | void ReplaceNode(RedBlackTreeNode<T> replacedNode, RedBlackTreeNode<T>...
method RotateLeft (line 290) | void RotateLeft(RedBlackTreeNode<T> p)
method RotateRight (line 308) | void RotateRight(RedBlackTreeNode<T> p)
method Sibling (line 326) | RedBlackTreeNode<T> Sibling(RedBlackTreeNode<T> node)
method RemoveAt (line 336) | public void RemoveAt(RedBlackTreeIterator<T> iterator)
method RemoveNode (line 351) | internal void RemoveNode(RedBlackTreeNode<T> removedNode)
method Sibling (line 389) | static RedBlackTreeNode<T> Sibling(RedBlackTreeNode<T> node, RedBlackT...
method GetColor (line 401) | static bool GetColor(RedBlackTreeNode<T> node)
method FixTreeOnDelete (line 406) | void FixTreeOnDelete(RedBlackTreeNode<T> node, RedBlackTreeNode<T> par...
method Find (line 488) | public RedBlackTreeIterator<T> Find(T item)
method LowerBound (line 502) | public RedBlackTreeIterator<T> LowerBound(T item)
method UpperBound (line 520) | public RedBlackTreeIterator<T> UpperBound(T item)
method Begin (line 532) | public RedBlackTreeIterator<T> Begin()
method GetEnumerator (line 541) | public RedBlackTreeIterator<T> GetEnumerator()
method Contains (line 551) | public bool Contains(T item)
method Remove (line 556) | public bool Remove(T item)
method GetEnumerator (line 567) | IEnumerator<T> IEnumerable<T>.GetEnumerator()
method GetEnumerator (line 572) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
method CopyTo (line 581) | public void CopyTo(T[] array, int arrayIndex)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/CheckedList.cs
class CheckedList (line 18) | sealed class CheckedList<T> : IList<T>
method CheckedList (line 24) | public CheckedList() : this(new List<T>()) {}
method CheckedList (line 26) | public CheckedList(IList<T> baseList)
method CheckRead (line 34) | void CheckRead()
method CheckWrite (line 40) | void CheckWrite()
method IndexOf (line 73) | public int IndexOf(T item)
method Insert (line 79) | public void Insert(int index, T item)
method RemoveAt (line 85) | public void RemoveAt(int index)
method Add (line 91) | public void Add(T item)
method Clear (line 97) | public void Clear()
method Contains (line 103) | public bool Contains(T item)
method CopyTo (line 109) | public void CopyTo(T[] array, int arrayIndex)
method Remove (line 115) | public bool Remove(T item)
method GetEnumerator (line 121) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 127) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
method Enumerate (line 133) | IEnumerator<T> Enumerate()
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/FileReader.cs
class FileReader (line 17) | public static class FileReader
method IsUnicode (line 19) | public static bool IsUnicode(Encoding encoding)
method ReadFileContent (line 26) | public static string ReadFileContent(Stream fs, ref Encoding encoding)
method ReadFileContent (line 35) | public static string ReadFileContent(string fileName, Encoding encoding)
method OpenStream (line 42) | public static StreamReader OpenStream(Stream fs, Encoding defaultEncod...
method AutoDetect (line 72) | static StreamReader AutoDetect(Stream fs, byte firstByte, byte secondB...
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/LoggingService.cs
class LoggingService (line 15) | static class LoggingService
method Debug (line 17) | public static void Debug(string text)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/LookupTable.cs
class LookupTable (line 17) | public class LookupTable
method LookupTable (line 121) | public LookupTable(bool casesensitive)
class Node (line 126) | class Node
method Node (line 128) | public Node(object color, string word)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/MouseWheelHandler.cs
class MouseWheelHandler (line 16) | class MouseWheelHandler
method GetScrollAmount (line 24) | public int GetScrollAmount(MouseEventArgs e)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/RedBlackTreeIterator.cs
type RedBlackTreeIterator (line 14) | internal struct RedBlackTreeIterator<T> : IEnumerator<T>
method RedBlackTreeIterator (line 18) | internal RedBlackTreeIterator(RedBlackTreeNode<T> node)
method Dispose (line 42) | void IDisposable.Dispose()
method Reset (line 46) | void System.Collections.IEnumerator.Reset()
method MoveNext (line 51) | public bool MoveNext()
method MoveBack (line 68) | public bool MoveBack()
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/RtfWriter.cs
class RtfWriter (line 17) | public class RtfWriter
method GenerateRtf (line 23) | public static string GenerateRtf(TextArea textArea)
method BuildColorTable (line 45) | static void BuildColorTable(IDocument doc, StringBuilder rtf)
method BuildFontTable (line 52) | static void BuildFontTable(IDocument doc, StringBuilder rtf)
method BuildFileContent (line 59) | static string BuildFileContent(TextArea textArea)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TextUtility.cs
class TextUtility (line 14) | public class TextUtility
method RegionMatches (line 17) | public static bool RegionMatches(IDocument document, int offset, int l...
method RegionMatches (line 31) | public static bool RegionMatches(IDocument document, bool casesensitiv...
method RegionMatches (line 49) | public static bool RegionMatches(IDocument document, int offset, int l...
method RegionMatches (line 63) | public static bool RegionMatches(IDocument document, bool casesensitiv...
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TipPainter.cs
class TipPainter (line 14) | static class TipPainter
method GetTipSize (line 22) | public static Size GetTipSize(Control control, Graphics graphics, Font...
method GetTipSize (line 27) | public static Size GetTipSize(Control control, Graphics graphics, TipS...
method DrawTip (line 66) | public static Size DrawTip(Control control, Graphics graphics, Font fo...
method DrawTip (line 71) | public static Size DrawTip(Control control, Graphics graphics, TipSect...
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TipPainterTools.cs
class TipPainterTools (line 14) | class TipPainterTools
method TipPainterTools (line 18) | private TipPainterTools()
method GetDrawingSizeHelpTipFromCombinedDescription (line 22) | public static Size GetDrawingSizeHelpTipFromCombinedDescription(Contro...
method DrawHelpTipFromCombinedDescription (line 46) | public static Size DrawHelpTipFromCombinedDescription(Control control,
method GetDrawingSizeDrawHelpTip (line 76) | public static Size GetDrawingSizeDrawHelpTip(Control control,
method DrawHelpTip (line 119) | public static Size DrawHelpTip(Control control,
method IsVisibleText (line 163) | static bool IsVisibleText(string text)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TipSection.cs
class TipSection (line 14) | abstract class TipSection
method TipSection (line 21) | protected TipSection(Graphics graphics)
method Draw (line 26) | public abstract void Draw(PointF location);
method GetRequiredSize (line 28) | public SizeF GetRequiredSize()
method SetAllocatedSize (line 33) | public void SetAllocatedSize(SizeF allocatedSize)
method SetMaximumSize (line 41) | public void SetMaximumSize(SizeF maximumSize)
method OnAllocatedSizeChanged (line 46) | protected virtual void OnAllocatedSizeChanged()
method OnMaximumSizeChanged (line 51) | protected virtual void OnMaximumSizeChanged()
method SetRequiredSize (line 56) | protected void SetRequiredSize(SizeF requiredSize)
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TipSpacer.cs
class TipSpacer (line 13) | class TipSpacer: TipSection
method TipSpacer (line 17) | public TipSpacer(Graphics graphics, SizeF size): base(graphics)
method Draw (line 22) | public override void Draw(PointF location)
method OnMaximumSizeChanged (line 27) | protected override void OnMaximumSizeChanged()
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TipSplitter.cs
class TipSplitter (line 14) | class TipSplitter: TipSection
method TipSplitter (line 20) | public TipSplitter(Graphics graphics, bool horizontal, params TipSecti...
method Draw (line 29) | public override void Draw(PointF location)
method OnMaximumSizeChanged (line 44) | protected override void OnMaximumSizeChanged()
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/TipText.cs
class CountTipText (line 13) | class CountTipText: TipText
method CountTipText (line 18) | public CountTipText(Graphics graphics, Font font, string text) : base(...
method DrawTriangle (line 22) | void DrawTriangle(float x, float y, bool flipped)
method Draw (line 48) | public override void Draw(PointF location)
method OnMaximumSizeChanged (line 65) | protected override void OnMaximumSizeChanged()
class TipText (line 80) | class TipText: TipSection
method TipText (line 89) | public TipText(Graphics graphics, Font font, string text):
method Draw (line 101) | public override void Draw(PointF location)
method GetInternalStringFormat (line 113) | protected StringFormat GetInternalStringFormat()
method OnMaximumSizeChanged (line 122) | protected override void OnMaximumSizeChanged()
method CreateTipStringFormat (line 137) | static StringFormat CreateTipStringFormat(StringAlignment horizontalAl...
method IsTextVisible (line 149) | protected bool IsTextVisible()
FILE: src/ICSharpCode.TextEditor/Project/Src/Util/WeakCollection.cs
class WeakCollection (line 27) | public class WeakCollection<T> : IEnumerable<T> where T : class
method Add (line 34) | public void Add(T item)
method Clear (line 47) | public void Clear()
method Contains (line 56) | public bool Contains(T item)
method Remove (line 73) | public bool Remove(T item)
method RemoveAt (line 92) | void RemoveAt(int i)
method CheckNoEnumerator (line 101) | void CheckNoEnumerator()
method GetEnumerator (line 111) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 131) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: src/IIncludeHandler.cs
type IIncludeResult (line 5) | public interface IIncludeResult
type IncludeType (line 11) | public enum IncludeType
type IIncludeHandler (line 17) | public interface IIncludeHandler
method OpenInclude (line 19) | IIncludeResult OpenInclude(IncludeType eType, string targetPath, strin...
FILE: src/IWrapper.cs
type IWrapper (line 7) | public interface IWrapper
method CreateD3DCompiler (line 15) | ID3DCompiler CreateD3DCompiler(string DLLPath, IIncludeHandler handler );
method CreateDXILCompiler (line 17) | IDXILCompiler CreateDXILCompiler(string DLLPath, IIncludeHandler handl...
method CreateGLSLOptimizer (line 23) | GLSLOptimizer.IOptimizer CreateGLSLOptimizer( GLSLOptimizer.Target eTa...
method CreateGLSlangCompiler (line 25) | GLSlang.ICompiler CreateGLSlangCompiler( IIncludeHandler handler );
method CreateAMDDriver (line 27) | IAMDDriver CreateAMDDriver( string DLLPath );
FILE: src/IncludeHandler.cs
class IncludeResult (line 10) | class IncludeResult : IIncludeResult
method IncludeResult (line 12) | public IncludeResult( string path )
class IncludeHandler (line 21) | class IncludeHandler : IIncludeHandler
method IncludeHandler (line 25) | public IncludeHandler( IEnumerable<string> IncludePaths )
method DoPath (line 31) | IIncludeResult DoPath(string searchPath, string includePath )
method OpenInclude (line 41) | public IIncludeResult OpenInclude(IncludeType eType, string path, stri...
FILE: src/LanguageTypes.cs
type Languages (line 3) | public enum Languages
type ICompileOptions (line 9) | public interface ICompileOptions
type IShader (line 14) | public interface IShader
FILE: src/Languages/GLSLLanguage.cs
class GLSLLanguage (line 7) | public class GLSLLanguage : ILanguage
FILE: src/Languages/GLSLOptionsPanel.Designer.cs
class GLSLOptionsPanel (line 3) | partial class GLSLOptionsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Languages/GLSLOptionsPanel.cs
class GLSLOptionsPanel (line 12) | public partial class GLSLOptionsPanel : UserControl, ICompileOptionsPanel
class GLSLOptimizerOptions (line 14) | class GLSLOptimizerOptions : GLSLOptimizer.IOptions
class GLSLOptions (line 20) | class GLSLOptions : IGLSLOptions
method GLSLOptionsPanel (line 28) | public GLSLOptionsPanel()
method ReadOptions (line 43) | public ICompileOptions ReadOptions()
FILE: src/Languages/HLSLLanguage.cs
class HLSLLanguage (line 5) | public class HLSLLanguage : ILanguage
FILE: src/Languages/HLSLOptionsPanel.Designer.cs
class HLSLOptionsPanel (line 3) | partial class HLSLOptionsPanel
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Languages/HLSLOptionsPanel.cs
class HLSLOptionsPanel (line 11) | public partial class HLSLOptionsPanel : UserControl, ICompileOptionsPanel
class HLSLOptions (line 13) | private class HLSLOptions : IHLSLOptions
method GetD3DCompileFlagBits (line 80) | public uint GetD3DCompileFlagBits()
method GetFXCCommandLine (line 107) | public string GetFXCCommandLine(string shaderFile)
method HLSLOptionsPanel (line 131) | public HLSLOptionsPanel()
method ReadOptions (line 157) | public ICompileOptions ReadOptions()
method HLSLOptionsPanel_Load (line 170) | private void HLSLOptionsPanel_Load(object sender, EventArgs e)
FILE: src/Languages/ICompileOptionsPanel.cs
type ICompileOptionsPanel (line 9) | public interface ICompileOptionsPanel
method ReadOptions (line 12) | ICompileOptions ReadOptions();
FILE: src/Languages/ILanguage.cs
type ILanguage (line 5) | public interface ILanguage
FILE: src/MainUI/AboutBox.Designer.cs
class AboutBox (line 3) | partial class AboutBox
method Dispose (line 13) | protected override void Dispose(bool disposing)
method InitializeComponent (line 28) | private void InitializeComponent()
FILE: src/MainUI/AboutBox.cs
class AboutBox (line 10) | partial class AboutBox : Form
method AboutBox (line 12) | public AboutBox()
FILE: src/MainUI/MainForm.Designer.cs
class MainForm (line 4) | partial class MainForm
method Dispose (line 15) | protected override void Dispose(bool disposing)
method InitializeComponent (line 30) | private void InitializeComponent()
FILE: src/MainUI/MainForm.cs
class MainForm (line 12) | public partial class MainForm : Form
method CreateBackends (line 24) | private void CreateBackends( Options opts )
method MainForm (line 65) | public MainForm( Options options, IWrapper wrapper )
method ClearResults (line 106) | private void ClearResults()
method btnCompile_Click (line 113) | private void btnCompile_Click(object sender, EventArgs e)
method cmbLanguage_SelectedIndexChanged (line 201) | private void cmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
method cmbBackend_SelectedIndexChanged (line 226) | private void cmbBackend_SelectedIndexChanged(object sender, EventArgs e)
method optionsToolStripMenuItem_Click (line 249) | private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
method newToolStripMenuItem_Click (line 260) | private void newToolStripMenuItem_Click(object sender, EventArgs e)
method OpenFile (line 269) | private void OpenFile( string path )
method openToolStripMenuItem_Click (line 285) | private void openToolStripMenuItem_Click(object sender, EventArgs e)
method saveToolStripMenuItem_Click (line 294) | private void saveToolStripMenuItem_Click(object sender, EventArgs e)
method saveAsToolStripMenuItem_Click (line 302) | private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
method exitToolStripMenuItem_Click (line 307) | private void exitToolStripMenuItem_Click(object sender, EventArgs e)
method SaveAs (line 312) | private void SaveAs()
method Save (line 323) | private void Save( string As )
method aboutToolStripMenuItem_Click (line 335) | private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
method ScaleControl (line 348) | protected override void ScaleControl(SizeF factor, BoundsSpecified spe...
method FixSplitter (line 355) | private void FixSplitter(Control c)
method FixSplitter (line 373) | private void FixSplitter(SplitContainer sp)
method MainForm_Shown (line 389) | private void MainForm_Shown(object sender, EventArgs e)
FILE: src/MainUI/OptionsScreen.Designer.cs
class OptionsScreen (line 3) | partial class OptionsScreen
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/MainUI/OptionsScreen.cs
class OptionsScreen (line 11) | public partial class OptionsScreen : Form
method OptionsScreen (line 18) | public OptionsScreen( Options opts, List<IBackend> backends )
method PopulateGUIFromOptions (line 68) | private void PopulateGUIFromOptions(Options opts)
method BrowseFile (line 88) | private string BrowseFile( string initial )
method BrowseFolder (line 98) | private string BrowseFolder(string initial)
method btnD3DCompiler_Click (line 110) | private void btnD3DCompiler_Click(object sender, EventArgs e)
method btnCodeXL_Click (line 115) | private void btnCodeXL_Click(object sender, EventArgs e)
method btnTemp_Click (line 120) | private void btnTemp_Click(object sender, EventArgs e)
method OptionsScreen_FormClosing (line 125) | private void OptionsScreen_FormClosing(object sender, FormClosingEvent...
method btnPowerVR_Click (line 179) | private void btnPowerVR_Click(object sender, EventArgs e)
method btnDefaults_Click (line 184) | private void btnDefaults_Click(object sender, EventArgs e)
method btnDXX_Click (line 193) | private void btnDXX_Click(object sender, EventArgs e)
method btnMali_Click (line 198) | private void btnMali_Click(object sender, EventArgs e)
method btnRGA_Click (line 204) | private void btnRGA_Click(object sender, EventArgs e)
method btnAddInclude_Click (line 209) | private void btnAddInclude_Click(object sender, EventArgs e)
method btnDeleteInclude_Click (line 226) | private void btnDeleteInclude_Click(object sender, EventArgs e)
method numericUpDown1_ValueChanged (line 234) | private void numericUpDown1_ValueChanged(object sender, EventArgs e)
method btnDXIL_Click (line 269) | private void btnDXIL_Click(object sender, EventArgs e)
method btnIntelShaderAnalyzer_Click (line 274) | private void btnIntelShaderAnalyzer_Click(object sender, EventArgs e)
method label15_Click (line 279) | private void label15_Click(object sender, EventArgs e)
FILE: src/Options.cs
class Options (line 8) | public class Options
method DisableBackend (line 31) | public void DisableBackend(string name)
method IsBackendDisabled (line 35) | public bool IsBackendDisabled(string name)
method DisableRGAAsic (line 40) | public void DisableRGAAsic(string name)
method IsRGAAsicDisabled (line 44) | public bool IsRGAAsicDisabled(string name)
method DisableAMDAsic (line 50) | public void DisableAMDAsic(string name)
method IsAMDAsicDisabled (line 54) | public bool IsAMDAsicDisabled(string name)
method DisableCodeXLAsic (line 59) | public void DisableCodeXLAsic(string name)
method IsCodeXLAsicDisabled (line 63) | public bool IsCodeXLAsicDisabled(string name)
method AddInclude (line 68) | public void AddInclude(string include)
method RemoveInclude (line 73) | public void RemoveInclude( string include )
method GetDefaults (line 78) | public static Options GetDefaults()
method Get (line 96) | public static Options Get()
method Write (line 197) | public void Write()
FILE: src/Program.cs
class Program (line 8) | static class Program
method Main (line 13) | [STAThread]
FILE: src/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: src/Properties/Settings.Designer.cs
class Settings (line 14) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: src/SPIRV.cs
type IProgram (line 7) | public interface IProgram
method Disassemble (line 9) | string Disassemble();
method GetTokens (line 10) | uint[] GetTokens();
method GetBytes (line 11) | byte[] GetBytes();
FILE: src/Scrutinizer/Analysis/Algorithms.cs
class Algorithms (line 8) | public static class Algorithms
method IsCFGReducible (line 10) | public static bool IsCFGReducible( List<BasicBlock> Blocks )
method BuildBasicBlocks (line 79) | public static List<BasicBlock> BuildBasicBlocks(List<IInstruction> ops)
method Dominates (line 174) | public static bool Dominates<T>( T a, T b, Dictionary<T,T> IDOM ) wher...
method FindDominators (line 194) | public static Dictionary<T,T> FindDominators<T>( T[] nodes, T[][] pred...
method FindDominators (line 299) | public static void FindDominators(List<BasicBlock> Blocks)
method FindLoops (line 323) | public static List<Loop> FindLoops( List<BasicBlock> blocks )
method ClassifyBranches (line 491) | static public void ClassifyBranches( List<IInstruction> ops )
method AssignLabels (line 575) | public static void AssignLabels(List<IInstruction> ops)
method DoTrace (line 592) | public static List<IInstruction> DoTrace(List<IInstruction> ops, List<...
FILE: src/Scrutinizer/UI/CFGWidget.Designer.cs
class CFGWidget (line 3) | partial class CFGWidget
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Scrutinizer/UI/CFGWidget.cs
class CFGWidget (line 18) | public partial class CFGWidget : UserControl
method CFGWidget (line 20) | public CFGWidget()
class Node (line 25) | private class Node
class LoopNode (line 30) | private class LoopNode : Node
method LoopNode (line 32) | public LoopNode(Graph sub, Loop loop)
class LeafNode (line 44) | private class LeafNode : Node
method LeafNode (line 46) | public LeafNode( BasicBlock bl )
class BranchNode (line 54) | private class BranchNode : Node
method BranchNode (line 63) | public BranchNode( LeafNode test )
class SkipNode (line 78) | private class SkipNode : Node
method SkipNode (line 83) | public SkipNode(LeafNode test, Graph gr)
class Graph (line 91) | private class Graph
method AddNode (line 96) | public void AddNode(Node n)
method AddNodes (line 102) | public void AddNodes(IEnumerable<Node> nodes)
method RemoveNodes (line 111) | public void RemoveNodes(IEnumerable<Node> nodes)
method ContainsNode (line 120) | public bool ContainsNode( Node n )
method AddEdge (line 125) | public void AddEdge( Node from, Node to )
method Dominators (line 131) | public Dictionary<Node,Node> Dominators( List<Node> nodes )
method PostDominators (line 141) | public Dictionary<Node, Node> PostDominators(List<Node> nodes)
method TransferEdgesToSubgraph (line 151) | public void TransferEdgesToSubgraph( Graph g )
method CombineNodes (line 161) | public void CombineNodes( IEnumerable<Node> loopNodes, Node superNod...
method ChildrenOf (line 215) | public IEnumerable<Node> ChildrenOf( Node n )
method ReversePostOrder (line 222) | public List<Node> ReversePostOrder()
method BuildTree (line 271) | private void BuildTree( TreeNode parent, Graph g)
method BuildBranchNodes (line 312) | private void BuildBranchNodes(Graph g)
method SetProgram (line 437) | public void SetProgram(List<Loop> loops, List<BasicBlock> blocks)
method treeView1_AfterSelect (line 501) | private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
method treeView1_Leave (line 571) | private void treeView1_Leave(object sender, EventArgs e)
FILE: src/Scrutinizer/UI/InstructionWidget.Designer.cs
class InstructionWidget (line 3) | partial class InstructionWidget
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Scrutinizer/UI/InstructionWidget.cs
class InstructionWidget (line 13) | public partial class InstructionWidget : UserControl
method CreateFilterBox (line 26) | private ComboBox CreateFilterBox( IInstruction op )
method CreateFormatBox (line 49) | private ComboBox CreateFormatBox( IInstruction op )
method InstructionWidget (line 73) | public InstructionWidget( IInstruction op )
method RefreshInstruction (line 109) | public void RefreshInstruction()
method InstructionWidget_Paint (line 117) | private void InstructionWidget_Paint(object sender, PaintEventArgs e)
method InstructionWidget_MouseDown (line 144) | private void InstructionWidget_MouseDown(object sender, MouseEventArgs e)
FILE: src/Scrutinizer/UI/ParameterWidget.Designer.cs
class ParameterWidget (line 3) | partial class ParameterWidget
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Scrutinizer/UI/ParameterWidget.cs
class ParameterWidget (line 13) | public partial class ParameterWidget : UserControl
method ParameterWidget (line 20) | public ParameterWidget()
type IParameterGUI (line 25) | interface IParameterGUI
method Assign (line 27) | bool Assign();
class ParameterGUI_Int (line 31) | class ParameterGUI_Int : IParameterGUI
method ParameterGUI_Int (line 39) | public ParameterGUI_Int(SimulationParameterInt p)
method Assign (line 61) | public bool Assign( )
class ParameterGUI_Double (line 87) | class ParameterGUI_Double : IParameterGUI
method ParameterGUI_Double (line 96) | public ParameterGUI_Double( SimulationParameterDouble p)
method Assign (line 116) | public bool Assign()
method UpdateParameters (line 146) | public bool UpdateParameters( )
method BuildUI (line 156) | public void BuildUI( IEnumerable<Scrutinizer.ISimulationParameter> Par...
FILE: src/Scrutinizer/UI/ScrutinizerForm.Designer.cs
class ScrutinizerForm (line 3) | partial class ScrutinizerForm
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: src/Scrutinizer/UI/ScrutinizerForm.cs
class ScrutinizerForm (line 13) | public partial class ScrutinizerForm : Form
method ClearSelectedInstructions (line 28) | private void ClearSelectedInstructions()
method SelectInstruction (line 39) | private void SelectInstruction( IInstruction op )
method OnInstructionClick (line 47) | private void OnInstructionClick( InstructionWidget w, MouseEventArgs e )
method AddInstructionToPanel (line 89) | public void AddInstructionToPanel( InstructionWidget widget, IInstruct...
method ScrutinizerForm (line 134) | public ScrutinizerForm( List<IInstruction> FetchShader, List<IInstruct...
method SelectDominatedInstructions (line 227) | private void SelectDominatedInstructions( BasicBlock dominator )
method cfgWidget1_BlockSelected (line 236) | private void cfgWidget1_BlockSelected(object sender, BasicBlock Select...
method cfgWidget1_BranchTargetSelected (line 249) | private void cfgWidget1_BranchTargetSelected(object sender, BasicBlock...
method cfgWidget1_LoopSelected (line 263) | private void cfgWidget1_LoopSelected(object sender, Loop SelectedLoop)
method cfgWidget1_SelectionCleared (line 276) | private void cfgWidget1_SelectionCleared(object sender)
method cfgWidget1_BranchSelected (line 287) | private void cfgWidget1_BranchSelected(object sender, BasicBlock Branc...
method panel1_MouseDown (line 308) | private void panel1_MouseDown(object sender, MouseEventArgs e)
method MarkExecutedInstructions (line 313) | private void MarkExecutedInstructions()
method txtLoopCount_TextChanged (line 327) | private void txtLoopCount_TextChanged(object sender, EventArgs e)
method btnSimulate_Click (line 342) | private void btnSimulate_Click(object sender, EventArgs e)
method chkTaken_CheckedChanged (line 376) | private void chkTaken_CheckedChanged(object sender, EventArgs e)
FILE: src/ScrutinizerTypes.cs
type BranchCategory (line 5) | public enum BranchCategory
class BasicBlock (line 16) | public class BasicBlock
method AddSuccessor (line 27) | public void AddSuccessor(BasicBlock bl) { m_Successors.Add(bl); }
method AddPredecessor (line 28) | public void AddPredecessor(BasicBlock bl) { m_Predecessors.Add(bl); }
method AddInstruction (line 29) | public void AddInstruction(IInstruction i) { m_Instructions.Add(i); }
method Dominates (line 34) | public bool Dominates( BasicBlock b )
class Loop (line 50) | public class Loop
method Loop (line 55) | public Loop( BasicBlock header, IEnumerable<BasicBlock> blocks )
method IsNestedIn (line 70) | public bool IsNestedIn( Loop p )
type IInstruction (line 83) | public interface IInstruction
method Disassemble (line 88) | string Disassemble();
type IBranchInstruction (line 91) | public interface IBranchInstruction : IInstruction
type IJumpInstruction (line 98) | public interface IJumpInstruction : IInstruction
type TexelFormat (line 103) | public enum TexelFormat
type TextureFilter (line 125) | public enum TextureFilter
type ITextureInstruction (line 138) | public interface ITextureInstruction : IInstruction
type ISamplingInstruction (line 147) | public interface ISamplingInstruction : ITextureInstruction
type ISimulationParameter (line 154) | public interface ISimulationParameter
class SimulationParameterInt (line 159) | public class SimulationParameterInt : ISimulationParameter
method SimulationParameterInt (line 161) | public SimulationParameterInt( int nMin, int nMax, int nDefault, strin...
class SimulationParameterDouble (line 176) | public class SimulationParameterDouble : ISimulationParameter
method SimulationParameterDouble (line 178) | public SimulationParameterDouble(double fMin, double fMax, double fDef...
type IScrutinizer (line 195) | public interface IScrutinizer
method BuildProgram (line 197) | List<IInstruction> BuildProgram( );
method BuildDXFetchShader (line 199) | List<IInstruction> BuildDXFetchShader(IDXShaderReflection refl);
method AnalyzeExecutionTrace (line 203) | string AnalyzeExecutionTrace(List<IInstruction> ops);
FILE: src/Wrapper/AMDAsic_Impl.cpp
function GetDeviceChipFamilyRevision (line 13) | static void GetDeviceChipFamilyRevision(
FILE: src/Wrapper/AMDAsic_Impl.h
type GDT_GfxCardInfo (line 5) | struct GDT_GfxCardInfo
function class (line 7) | class AMDAsic_Impl : Pyramid::IAMDAsic
FILE: src/Wrapper/AMDDriver_Impl.cpp
function GfxCardInfoSortPredicate (line 21) | static bool GfxCardInfoSortPredicate(const GDT_GfxCardInfo& a, const GDT...
FILE: src/Wrapper/AMDDriver_Impl.h
type PfnAmdDxGsaCompileShader (line 3) | typedef PfnAmdDxGsaCompileShader COMPILE_SHADER;
type PfnAmdDxGsaFreeCompiledShader (line 4) | typedef PfnAmdDxGsaFreeCompiledShader FREE_SHADER;
function class (line 7) | class AMDDriver_Impl : public Pyramid::IAMDDriver
FILE: src/Wrapper/AMDShader_Impl.h
type DWORD (line 5) | typedef unsigned long DWORD;
type byte (line 6) | typedef unsigned char byte;
function class (line 12) | class AMDShader_Impl : public Pyramid::IAMDShader
FILE: src/Wrapper/D3DCompiler_Impl.cpp
class PyramidD3DIncludeHandler (line 14) | class PyramidD3DIncludeHandler : public ID3DInclude
method PyramidD3DIncludeHandler (line 17) | PyramidD3DIncludeHandler( Pyramid::IIncludeHandler^ pmInclude, System:...
method HRESULT (line 25) | virtual HRESULT __stdcall Open(
method HRESULT (line 63) | virtual HRESULT __stdcall Close(LPCVOID pData) override
FILE: src/Wrapper/D3DCompiler_Impl.h
function class (line 77) | class DXBCRootSignatureBlob_Impl : Pyramid::IDXBlob
function class (line 92) | class DXBCShaderBlob_Impl : Pyramid::IDXBCShaderBlob
function class (line 112) | class D3DCompiler_Impl : Pyramid::ID3DCompiler
function class (line 144) | class DXShaderReflection_Impl : public Pyramid::IDXShaderReflection
FILE: src/Wrapper/DXILCompiler_Impl.cpp
class MyBlob (line 22) | class MyBlob : public IDxcBlob
method MyBlob (line 26) | MyBlob( void* p, size_t l ) : m_cRef( 1 ),m_pPtr( p ),m_nSize( l ) {}
method AddRef (line 31) | AddRef()
method Release (line 36) | Release()
method QueryInterface (line 47) | QueryInterface( REFIID riid, LPVOID * ppvObj )
method GetBufferPointer (line 63) | GetBufferPointer( void ) { return m_pPtr; }
method GetBufferSize (line 64) | GetBufferSize( void ) { return m_nSize; }
class PyramidDxilIncludeHandler (line 73) | class PyramidDxilIncludeHandler : public IDxcIncludeHandler
method PyramidDxilIncludeHandler (line 76) | PyramidDxilIncludeHandler( Pyramid::IIncludeHandler^ pmInclude, IDxcLi...
method LoadSource (line 82) | LoadSource(
method AddRef (line 109) | AddRef()
method Release (line 114) | Release()
method QueryInterface (line 125) | QueryInterface( REFIID riid,LPVOID * ppvObj )
function HRESULT (line 297) | static HRESULT CompileFromBlob(
FILE: src/Wrapper/DXILCompiler_Impl.h
type IDxcLibrary (line 8) | struct IDxcLibrary
type IDxcCompiler (line 9) | struct IDxcCompiler
type IDxcBlob (line 10) | struct IDxcBlob
type byte (line 13) | typedef unsigned char byte;
function class (line 17) | class DXILRootSignatureBlob_Impl : Pyramid::IDXBlob
function class (line 31) | class DXILShaderBlob_Impl : Pyramid::IDXILShaderBlob
function class (line 47) | class DXILCompiler_Impl : Pyramid::IDXILCompiler
FILE: src/Wrapper/GCN1Decoder.cpp
type GCN (line 16) | namespace GCN{
type _GCN1Decoder_INTERNAL (line 17) | namespace _GCN1Decoder_INTERNAL
type EnumLUT (line 19) | struct EnumLUT
function uint (line 25) | static uint LUTLookup( const EnumLUT* pLUT, size_t nLUTSize,uint en,...
function VectorInstructions (line 358) | static VectorInstructions Translate_VOPCOpcodes( uint n )
function VectorInstructions (line 562) | static VectorInstructions Translate_VOP3Opcodes( uint n )
function VectorInstructions (line 569) | static VectorInstructions Translate_VINTERPOpcodes( uint n )
function Dests (line 1017) | Dests Translate_SDest( uint n )
function Sources (line 1025) | Sources Translate_SSrc( uint n )
function Sources (line 1041) | Sources Translate_VSrc( uint n )
function Dests (line 1045) | Dests Translate_VDest( uint n )
class Instruction (line 1050) | class Instruction
method uint32 (line 1054) | uint32 ReadTrailingLiteral() const {
method SignExt (line 1061) | int SignExt( uint n, uint sign )
method uint (line 1066) | uint ReadBits( uint hi, uint lo ) const
method ReadBit (line 1072) | bool ReadBit( uint bit ) const
class SOP2Instruction (line 1081) | class SOP2Instruction : public Instruction
method HasLiteral (line 1084) | bool HasLiteral() const { return ((GetSrc0() == SRC_LITERAL || Get...
method uint (line 1085) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method ScalarInstructions (line 1086) | ScalarInstructions GetOpcode()const { return Translate_SOP2Opcod...
method Sources (line 1087) | Sources GetSrc0() const { return Translate_SSrc(Read...
method Sources (line 1088) | Sources GetSrc1() const { return Translate_SSrc(Read...
method Dests (line 1089) | Dests GetDest() const { return Translate_SDest(Rea...
class SOP1Instruction (line 1092) | class SOP1Instruction : public Instruction
method HasLiteral (line 1095) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL); }
method uint (line 1096) | uint GetLength() const { return 4 + 4*HasLiteral(...
method ScalarInstructions (line 1097) | ScalarInstructions GetOpcode() const { return Translate_SOP1Opc...
method Sources (line 1098) | Sources GetSrc0() const { return Translate_SSrc( R...
method Dests (line 1099) | Dests GetDest() const { return Translate_SDest(R...
class SOPKInstruction (line 1102) | class SOPKInstruction : public Instruction
method InstructionFormat (line 1105) | InstructionFormat GetFormat() const { return IF_SOPK; }
method HasLiteral (line 1106) | bool HasLiteral() const { return (GetOpcode() == S_SETREG_IMM32_B3...
method uint (line 1107) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method ScalarInstructions (line 1109) | ScalarInstructions GetOpcode() const { return Translate_SOPKOpcode...
method Dests (line 1110) | Dests GetDest() const { return Translate_SDest( ReadBits...
method ReadSIMM16 (line 1112) | int ReadSIMM16() const { return *((const int16*)this); }
method uint (line 1113) | uint ReadSIMMBits( uint hi, uint lo) const { return ReadBits(hi,lo...
method uint32 (line 1114) | uint32 ReadIMM32() const { return ReadBits(63,32); }
method uint8 (line 1116) | const uint8* GetBranchTarget() const
class SOPCInstruction (line 1127) | class SOPCInstruction : public Instruction
method InstructionFormat (line 1130) | InstructionFormat GetFormat() const { return IF_SOPC; }
method HasLiteral (line 1131) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL || GetS...
method uint (line 1132) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method ScalarInstructions (line 1134) | ScalarInstructions GetOpcode() const { return Translate_SOPCOpcod...
method Sources (line 1135) | Sources GetSrc0() const { return Translate_SSrc(ReadBit...
method Sources (line 1136) | Sources GetSrc1() const { return Translate_SSrc(ReadBit...
method Dests (line 1137) | Dests GetDest() const { return GetOpcode() == S_SETVSKIP ? DEST_VS...
class SOPPInstruction (line 1141) | class SOPPInstruction : public Instruction
method InstructionFormat (line 1144) | InstructionFormat GetFormat() const { return IF_SOPP; }
method uint (line 1145) | uint GetLength() const { return 4; }
method ReadSIMM16 (line 1147) | int ReadSIMM16() const { return *((const int16*)this); }
method uint (line 1148) | uint ReadSIMMBits( uint hi, uint lo ) const { return ReadBits(hi,l...
method ScalarInstructions (line 1150) | ScalarInstructions GetOpcode() const { return Translate_SOPPOpcode...
method uint8 (line 1151) | const uint8* GetBranchTarget() const
class SMRDInstruction (line 1181) | class SMRDInstruction : public Instruction
method InstructionFormat (line 1184) | InstructionFormat GetFormat() const { return IF_SMEM; }
method uint (line 1185) | uint GetLength() const { return 4 + 4*(!IsOffsetIMM() && Get...
method ScalarMemoryInstructions (line 1186) | ScalarMemoryInstructions GetOpcode() const { return Translate_SMR...
method Dests (line 1187) | Dests GetDest() const { return Translate_SDest(Rea...
method Dests (line 1188) | Dests GetBase() const { return Translate_SDest(2*R...
method uint (line 1189) | uint GetOffset() const { return IsOffsetIMM() ? 4*Re...
method IsOffsetIMM (line 1190) | bool IsOffsetIMM() const { return ReadBits( 8, 8 )!=0; }
class VOP2Instruction (line 1194) | class VOP2Instruction : public Instruction
method InstructionFormat (line 1198) | InstructionFormat GetFormat() const { return IF_VOP2; }
method HasLiteral (line 1199) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL || GetO...
method uint (line 1200) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method VectorInstructions (line 1202) | VectorInstructions GetOpcode() const { return Translate_VOP2Opcode...
method Sources (line 1203) | Sources GetSrc0() const { return Translate_SSrc(ReadBits...
method Sources (line 1204) | Sources GetVSrc1() const { return Translate_VSrc(ReadBits...
method Dests (line 1205) | Dests GetVDst() const { return Translate_VDest(ReadBit...
method uint (line 1207) | uint GetResultWidthInDWORDS() const { return 1; }
class VOP1Instruction (line 1210) | class VOP1Instruction : public Instruction
method InstructionFormat (line 1214) | InstructionFormat GetFormat() const { return IF_VOP1; }
method HasLiteral (line 1215) | bool HasLiteral() const {
method uint (line 1225) | uint GetLength() const
method VectorInstructions (line 1230) | VectorInstructions GetOpcode() const { return Translate_VOP1Opcode...
method Dests (line 1231) | Dests GetDst() const
method Sources (line 1242) | Sources GetSrc0() const { return Translate_SSrc(ReadBits(8...
method Instruction (line 1248) | const Instruction* GetBranchTarget() const { return 0; }
method IsBranch (line 1249) | bool IsBranch() const { return false; }
class VOPCInstruction (line 1252) | class VOPCInstruction : public Instruction
method InstructionFormat (line 1256) | InstructionFormat GetFormat() const { return IF_VOPC; }
method HasLiteral (line 1257) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL); }
method uint (line 1258) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method VectorInstructions (line 1260) | VectorInstructions GetOpcode() const { return Translate_VOPCOpcode...
method Sources (line 1261) | Sources GetSrc0() const { return Translate_SSrc(ReadBits...
method Sources (line 1262) | Sources GetVSrc1() const { return Translate_VSrc(ReadBits...
method Instruction (line 1267) | const Instruction* GetBranchTarget() const { return 0; }
method IsBranch (line 1268) | bool IsBranch() const { return false; }
class VINTERPInstruction (line 1271) | class VINTERPInstruction : public Instruction
method InstructionFormat (line 1275) | InstructionFormat GetFormat() const { return IF_VINTERP; }
method uint (line 1276) | uint GetLength() const { return 4; }
method VectorInstructions (line 1278) | VectorInstructions GetOpcode() const { return Translate_VINTERPOpc...
method uint (line 1279) | uint GetAttributeChannel() const { return ReadBits(9,8); }
method uint (line 1280) | uint GetAttributeIndex() const { return ReadBits(15,10); }
method Sources (line 1281) | Sources GetVSrc0() const { return Translate_VSrc( ReadBits(7,0) ); }
method Dests (line 1282) | Dests GetVDst() const { return Translate_VDest(ReadBits(25,18)); }
class VOP3Instruction (line 1286) | class VOP3Instruction : public Instruction
method InstructionFormat (line 1290) | InstructionFormat GetFormat() const { return IF_VOP3; }
method uint (line 1291) | uint GetLength() const { return 8; }
method VectorInstructions (line 1293) | VectorInstructions GetOpcode() const { return Translate_VOP3Opcode...
method Dests (line 1295) | Dests GetVDst() const {
method Sources (line 1301) | Sources GetSrc0() const { return Translate_SSrc(ReadBits(40,32)); }
method Sources (line 1302) | Sources GetSrc1() const { return Translate_SSrc(ReadBits(49,41)); }
method Sources (line 1303) | Sources GetSrc2() const { return Translate_SSrc(ReadBits(58,50)); }
method uint (line 1304) | uint GetSourceNegateMask() const { return ReadBits(63,61); }
method uint (line 1305) | uint GetOMod() const { return ReadBits(60,59); }
method IsCompare (line 1307) | bool IsCompare() const { return ReadBits(25,17) < 255; }
method IsVOP3bOp (line 1309) | bool IsVOP3bOp() const
method uint (line 1330) | uint GetSourceAbsMask() const { return ReadBits(10,8); }
method GetClamp (line 1331) | bool GetClamp() const { return ReadBit(11); }
method Dests (line 1334) | Dests GetSDst() const { return Translate_SDest(ReadBits(14,8)); }
class MUBUFFInstruction (line 1338) | class MUBUFFInstruction : public Instruction
method InstructionFormat (line 1342) | InstructionFormat GetFormat() const { return IF_MUBUFF; }
method BufferInstructions (line 1343) | BufferInstructions GetOpcode() const { return Translate_MUBUFFOpco...
method uint (line 1344) | uint GetLength() const { return 8; }
method uint (line 1347) | uint GetOffset() const { return ReadBits(11,0); }
method Sources (line 1348) | Sources GetVAddr() const { return Translate_VSrc(ReadBits(39,32)); }
method Sources (line 1349) | Sources GetVData() const { return Translate_VSrc(ReadBits(47,40)); }
method Sources (line 1350) | Sources GetSResource() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1351) | Sources GetSOffset() const { return Translate_SSrc(ReadBits(63,56)...
method IsOffN (line 1353) | bool IsOffN() const { return ReadBit(12); }
method IsIdxN (line 1354) | bool IsIdxN() const { return ReadBit(13); }
method IsAddr64 (line 1355) | bool IsAddr64() const { return ReadBit(15); }
method IsDirectToLDS (line 1356) | bool IsDirectToLDS() const { return ReadBit(16); }
method GetSLCBit (line 1357) | bool GetSLCBit() const { return ReadBit(54); }
method GetGLCBit (line 1358) | bool GetGLCBit() const { return ReadBit(14); }
method GetTFEBit (line 1359) | bool GetTFEBit() const { return ReadBit(55); }
class MTBUFFInstruction (line 1363) | class MTBUFFInstruction : public Instruction
method InstructionFormat (line 1367) | InstructionFormat GetFormat() const { return IF_MTBUFF; }
method BufferInstructions (line 1368) | BufferInstructions GetOpcode() const { return Translate_MTBUFFOpco...
method uint (line 1369) | uint GetLength() const { return 8; }
method TBufferNumberFormats (line 1373) | TBufferNumberFormats GetNumberFormat() const { return Translate_MT...
method TBufferDataFormats (line 1374) | TBufferDataFormats GetDataFormat() const { return Translate_MTBUFF...
method uint (line 1376) | uint GetOffset() const { return ReadBits(11,0); }
method Sources (line 1377) | Sources GetVAddr() const { return Translate_VSrc(ReadBits(39,3...
method Sources (line 1378) | Sources GetVData() const { return Translate_VSrc(ReadBits(47,4...
method Sources (line 1379) | Sources GetSResource() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1380) | Sources GetSOffset() const { return Translate_SSrc(ReadBits(63,56)...
method IsOffN (line 1382) | bool IsOffN() const { return ReadBit(12); }
method IsIdxN (line 1383) | bool IsIdxN() const { return ReadBit(13); }
method IsAddr64 (line 1384) | bool IsAddr64() const { return ReadBit(15); }
method GetSLCBit (line 1385) | bool GetSLCBit() const { return ReadBit(54); }
method GetGLCBit (line 1386) | bool GetGLCBit() const { return ReadBit(14); }
method GetTFEBit (line 1387) | bool GetTFEBit() const { return ReadBit(55); }
class MIMGInstruction (line 1393) | class MIMGInstruction : public Instruction
method InstructionFormat (line 1397) | InstructionFormat GetFormat() const { return IF_MIMG; }
method ImageInstructions (line 1398) | ImageInstructions GetOpcode() const { return Translate_MIMGOpcodes...
method uint (line 1399) | uint GetLength() const { return 8; }
method IsSLC (line 1401) | bool IsSLC() const { return ReadBit(25); }
method IsGLC (line 1402) | bool IsGLC() const { return ReadBit(13); }
method IsTFE (line 1403) | bool IsTFE() const { return ReadBit(16); }
method IsLWE (line 1404) | bool IsLWE() const { return ReadBit(17); }
method IsArray (line 1405) | bool IsArray() const { return ReadBit(14); }
method IsUnormalized (line 1406) | bool IsUnormalized() const { return ReadBit(12); }
method IsRes256 (line 1407) | bool IsRes256() const { return !ReadBit(15);}
method uint (line 1409) | uint GetDMask() const { return ReadBits(11,8); }
method Sources (line 1410) | Sources GetSSampler() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1411) | Sources GetSResource() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1412) | Sources GetVData() const { return Translate_VSrc( ReadBits(47,40) ...
method Sources (line 1413) | Sources GetVAddr() const { return Translate_VSrc( ReadBits(39,32) ...
class DSInstruction (line 1421) | class DSInstruction : public Instruction
method uint (line 1424) | uint GetOffset0() const { return ReadBits(7,0); }
method uint (line 1425) | uint GetOffset1() const { return ReadBits(15,8); }
method uint (line 1426) | uint GetOffset16() const { return ReadBits(15,0); }
method DSInstructions (line 1427) | DSInstructions GetOpcode() const { return Translate_DSOpcodes(Read...
method Dests (line 1428) | Dests GetVDest() const { return Translate_VDest(ReadBits(63,56)); }
method Sources (line 1429) | Sources GetVData0() const { return Translate_VSrc(ReadBits(47,40)); }
method Sources (line 1430) | Sources GetVData1() const { return Translate_VSrc(ReadBits(55,48)); }
method Sources (line 1431) | Sources GetVAddr() const { return Translate_VSrc(ReadBits(39,32)); }
method IsGDS (line 1432) | bool IsGDS() const { return ReadBit(17); }
class EXPInstruction (line 1435) | class EXPInstruction : public Instruction
method InstructionFormat (line 1438) | InstructionFormat GetFormat() const { return IF_EXP; }
method uint (line 1439) | uint GetLength() const { return 8; }
method GetCompressBit (line 1441) | bool GetCompressBit() const { return ReadBit(10); }
method GetDoneBit (line 1442) | bool GetDoneBit() const { return ReadBit(11); }
method GetValidMaskBit (line 1443) | bool GetValidMaskBit() const { return ReadBit(12); }
method ExportTargets (line 1445) | ExportTargets GetTarget() const { return Translate_EXPTarget(ReadB...
method uint (line 1446) | uint GetExportMask() const { return ReadBits(3,0); }
method Sources (line 1447) | Sources GetVSrc0() const { return Translate_VSrc(ReadBits(39,32)); }
method Sources (line 1448) | Sources GetVSrc1() const { return Translate_VSrc(ReadBits(47,40)); }
method Sources (line 1449) | Sources GetVSrc2() const { return Translate_VSrc(ReadBits(55,48)); }
method Sources (line 1450) | Sources GetVSrc3() const { return Translate_VSrc(ReadBits(63,56)); }
function InstructionFormat (line 1461) | InstructionFormat GCN1Decoder::ReadInstructionFormat( const uint8* pLo...
type GCN (line 1459) | namespace GCN
type _GCN1Decoder_INTERNAL (line 17) | namespace _GCN1Decoder_INTERNAL
type EnumLUT (line 19) | struct EnumLUT
function uint (line 25) | static uint LUTLookup( const EnumLUT* pLUT, size_t nLUTSize,uint en,...
function VectorInstructions (line 358) | static VectorInstructions Translate_VOPCOpcodes( uint n )
function VectorInstructions (line 562) | static VectorInstructions Translate_VOP3Opcodes( uint n )
function VectorInstructions (line 569) | static VectorInstructions Translate_VINTERPOpcodes( uint n )
function Dests (line 1017) | Dests Translate_SDest( uint n )
function Sources (line 1025) | Sources Translate_SSrc( uint n )
function Sources (line 1041) | Sources Translate_VSrc( uint n )
function Dests (line 1045) | Dests Translate_VDest( uint n )
class Instruction (line 1050) | class Instruction
method uint32 (line 1054) | uint32 ReadTrailingLiteral() const {
method SignExt (line 1061) | int SignExt( uint n, uint sign )
method uint (line 1066) | uint ReadBits( uint hi, uint lo ) const
method ReadBit (line 1072) | bool ReadBit( uint bit ) const
class SOP2Instruction (line 1081) | class SOP2Instruction : public Instruction
method HasLiteral (line 1084) | bool HasLiteral() const { return ((GetSrc0() == SRC_LITERAL || Get...
method uint (line 1085) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method ScalarInstructions (line 1086) | ScalarInstructions GetOpcode()const { return Translate_SOP2Opcod...
method Sources (line 1087) | Sources GetSrc0() const { return Translate_SSrc(Read...
method Sources (line 1088) | Sources GetSrc1() const { return Translate_SSrc(Read...
method Dests (line 1089) | Dests GetDest() const { return Translate_SDest(Rea...
class SOP1Instruction (line 1092) | class SOP1Instruction : public Instruction
method HasLiteral (line 1095) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL); }
method uint (line 1096) | uint GetLength() const { return 4 + 4*HasLiteral(...
method ScalarInstructions (line 1097) | ScalarInstructions GetOpcode() const { return Translate_SOP1Opc...
method Sources (line 1098) | Sources GetSrc0() const { return Translate_SSrc( R...
method Dests (line 1099) | Dests GetDest() const { return Translate_SDest(R...
class SOPKInstruction (line 1102) | class SOPKInstruction : public Instruction
method InstructionFormat (line 1105) | InstructionFormat GetFormat() const { return IF_SOPK; }
method HasLiteral (line 1106) | bool HasLiteral() const { return (GetOpcode() == S_SETREG_IMM32_B3...
method uint (line 1107) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method ScalarInstructions (line 1109) | ScalarInstructions GetOpcode() const { return Translate_SOPKOpcode...
method Dests (line 1110) | Dests GetDest() const { return Translate_SDest( ReadBits...
method ReadSIMM16 (line 1112) | int ReadSIMM16() const { return *((const int16*)this); }
method uint (line 1113) | uint ReadSIMMBits( uint hi, uint lo) const { return ReadBits(hi,lo...
method uint32 (line 1114) | uint32 ReadIMM32() const { return ReadBits(63,32); }
method uint8 (line 1116) | const uint8* GetBranchTarget() const
class SOPCInstruction (line 1127) | class SOPCInstruction : public Instruction
method InstructionFormat (line 1130) | InstructionFormat GetFormat() const { return IF_SOPC; }
method HasLiteral (line 1131) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL || GetS...
method uint (line 1132) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method ScalarInstructions (line 1134) | ScalarInstructions GetOpcode() const { return Translate_SOPCOpcod...
method Sources (line 1135) | Sources GetSrc0() const { return Translate_SSrc(ReadBit...
method Sources (line 1136) | Sources GetSrc1() const { return Translate_SSrc(ReadBit...
method Dests (line 1137) | Dests GetDest() const { return GetOpcode() == S_SETVSKIP ? DEST_VS...
class SOPPInstruction (line 1141) | class SOPPInstruction : public Instruction
method InstructionFormat (line 1144) | InstructionFormat GetFormat() const { return IF_SOPP; }
method uint (line 1145) | uint GetLength() const { return 4; }
method ReadSIMM16 (line 1147) | int ReadSIMM16() const { return *((const int16*)this); }
method uint (line 1148) | uint ReadSIMMBits( uint hi, uint lo ) const { return ReadBits(hi,l...
method ScalarInstructions (line 1150) | ScalarInstructions GetOpcode() const { return Translate_SOPPOpcode...
method uint8 (line 1151) | const uint8* GetBranchTarget() const
class SMRDInstruction (line 1181) | class SMRDInstruction : public Instruction
method InstructionFormat (line 1184) | InstructionFormat GetFormat() const { return IF_SMEM; }
method uint (line 1185) | uint GetLength() const { return 4 + 4*(!IsOffsetIMM() && Get...
method ScalarMemoryInstructions (line 1186) | ScalarMemoryInstructions GetOpcode() const { return Translate_SMR...
method Dests (line 1187) | Dests GetDest() const { return Translate_SDest(Rea...
method Dests (line 1188) | Dests GetBase() const { return Translate_SDest(2*R...
method uint (line 1189) | uint GetOffset() const { return IsOffsetIMM() ? 4*Re...
method IsOffsetIMM (line 1190) | bool IsOffsetIMM() const { return ReadBits( 8, 8 )!=0; }
class VOP2Instruction (line 1194) | class VOP2Instruction : public Instruction
method InstructionFormat (line 1198) | InstructionFormat GetFormat() const { return IF_VOP2; }
method HasLiteral (line 1199) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL || GetO...
method uint (line 1200) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method VectorInstructions (line 1202) | VectorInstructions GetOpcode() const { return Translate_VOP2Opcode...
method Sources (line 1203) | Sources GetSrc0() const { return Translate_SSrc(ReadBits...
method Sources (line 1204) | Sources GetVSrc1() const { return Translate_VSrc(ReadBits...
method Dests (line 1205) | Dests GetVDst() const { return Translate_VDest(ReadBit...
method uint (line 1207) | uint GetResultWidthInDWORDS() const { return 1; }
class VOP1Instruction (line 1210) | class VOP1Instruction : public Instruction
method InstructionFormat (line 1214) | InstructionFormat GetFormat() const { return IF_VOP1; }
method HasLiteral (line 1215) | bool HasLiteral() const {
method uint (line 1225) | uint GetLength() const
method VectorInstructions (line 1230) | VectorInstructions GetOpcode() const { return Translate_VOP1Opcode...
method Dests (line 1231) | Dests GetDst() const
method Sources (line 1242) | Sources GetSrc0() const { return Translate_SSrc(ReadBits(8...
method Instruction (line 1248) | const Instruction* GetBranchTarget() const { return 0; }
method IsBranch (line 1249) | bool IsBranch() const { return false; }
class VOPCInstruction (line 1252) | class VOPCInstruction : public Instruction
method InstructionFormat (line 1256) | InstructionFormat GetFormat() const { return IF_VOPC; }
method HasLiteral (line 1257) | bool HasLiteral() const { return (GetSrc0() == SRC_LITERAL); }
method uint (line 1258) | uint GetLength() const { return 4 + 4*HasLiteral(); }
method VectorInstructions (line 1260) | VectorInstructions GetOpcode() const { return Translate_VOPCOpcode...
method Sources (line 1261) | Sources GetSrc0() const { return Translate_SSrc(ReadBits...
method Sources (line 1262) | Sources GetVSrc1() const { return Translate_VSrc(ReadBits...
method Instruction (line 1267) | const Instruction* GetBranchTarget() const { return 0; }
method IsBranch (line 1268) | bool IsBranch() const { return false; }
class VINTERPInstruction (line 1271) | class VINTERPInstruction : public Instruction
method InstructionFormat (line 1275) | InstructionFormat GetFormat() const { return IF_VINTERP; }
method uint (line 1276) | uint GetLength() const { return 4; }
method VectorInstructions (line 1278) | VectorInstructions GetOpcode() const { return Translate_VINTERPOpc...
method uint (line 1279) | uint GetAttributeChannel() const { return ReadBits(9,8); }
method uint (line 1280) | uint GetAttributeIndex() const { return ReadBits(15,10); }
method Sources (line 1281) | Sources GetVSrc0() const { return Translate_VSrc( ReadBits(7,0) ); }
method Dests (line 1282) | Dests GetVDst() const { return Translate_VDest(ReadBits(25,18)); }
class VOP3Instruction (line 1286) | class VOP3Instruction : public Instruction
method InstructionFormat (line 1290) | InstructionFormat GetFormat() const { return IF_VOP3; }
method uint (line 1291) | uint GetLength() const { return 8; }
method VectorInstructions (line 1293) | VectorInstructions GetOpcode() const { return Translate_VOP3Opcode...
method Dests (line 1295) | Dests GetVDst() const {
method Sources (line 1301) | Sources GetSrc0() const { return Translate_SSrc(ReadBits(40,32)); }
method Sources (line 1302) | Sources GetSrc1() const { return Translate_SSrc(ReadBits(49,41)); }
method Sources (line 1303) | Sources GetSrc2() const { return Translate_SSrc(ReadBits(58,50)); }
method uint (line 1304) | uint GetSourceNegateMask() const { return ReadBits(63,61); }
method uint (line 1305) | uint GetOMod() const { return ReadBits(60,59); }
method IsCompare (line 1307) | bool IsCompare() const { return ReadBits(25,17) < 255; }
method IsVOP3bOp (line 1309) | bool IsVOP3bOp() const
method uint (line 1330) | uint GetSourceAbsMask() const { return ReadBits(10,8); }
method GetClamp (line 1331) | bool GetClamp() const { return ReadBit(11); }
method Dests (line 1334) | Dests GetSDst() const { return Translate_SDest(ReadBits(14,8)); }
class MUBUFFInstruction (line 1338) | class MUBUFFInstruction : public Instruction
method InstructionFormat (line 1342) | InstructionFormat GetFormat() const { return IF_MUBUFF; }
method BufferInstructions (line 1343) | BufferInstructions GetOpcode() const { return Translate_MUBUFFOpco...
method uint (line 1344) | uint GetLength() const { return 8; }
method uint (line 1347) | uint GetOffset() const { return ReadBits(11,0); }
method Sources (line 1348) | Sources GetVAddr() const { return Translate_VSrc(ReadBits(39,32)); }
method Sources (line 1349) | Sources GetVData() const { return Translate_VSrc(ReadBits(47,40)); }
method Sources (line 1350) | Sources GetSResource() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1351) | Sources GetSOffset() const { return Translate_SSrc(ReadBits(63,56)...
method IsOffN (line 1353) | bool IsOffN() const { return ReadBit(12); }
method IsIdxN (line 1354) | bool IsIdxN() const { return ReadBit(13); }
method IsAddr64 (line 1355) | bool IsAddr64() const { return ReadBit(15); }
method IsDirectToLDS (line 1356) | bool IsDirectToLDS() const { return ReadBit(16); }
method GetSLCBit (line 1357) | bool GetSLCBit() const { return ReadBit(54); }
method GetGLCBit (line 1358) | bool GetGLCBit() const { return ReadBit(14); }
method GetTFEBit (line 1359) | bool GetTFEBit() const { return ReadBit(55); }
class MTBUFFInstruction (line 1363) | class MTBUFFInstruction : public Instruction
method InstructionFormat (line 1367) | InstructionFormat GetFormat() const { return IF_MTBUFF; }
method BufferInstructions (line 1368) | BufferInstructions GetOpcode() const { return Translate_MTBUFFOpco...
method uint (line 1369) | uint GetLength() const { return 8; }
method TBufferNumberFormats (line 1373) | TBufferNumberFormats GetNumberFormat() const { return Translate_MT...
method TBufferDataFormats (line 1374) | TBufferDataFormats GetDataFormat() const { return Translate_MTBUFF...
method uint (line 1376) | uint GetOffset() const { return ReadBits(11,0); }
method Sources (line 1377) | Sources GetVAddr() const { return Translate_VSrc(ReadBits(39,3...
method Sources (line 1378) | Sources GetVData() const { return Translate_VSrc(ReadBits(47,4...
method Sources (line 1379) | Sources GetSResource() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1380) | Sources GetSOffset() const { return Translate_SSrc(ReadBits(63,56)...
method IsOffN (line 1382) | bool IsOffN() const { return ReadBit(12); }
method IsIdxN (line 1383) | bool IsIdxN() const { return ReadBit(13); }
method IsAddr64 (line 1384) | bool IsAddr64() const { return ReadBit(15); }
method GetSLCBit (line 1385) | bool GetSLCBit() const { return ReadBit(54); }
method GetGLCBit (line 1386) | bool GetGLCBit() const { return ReadBit(14); }
method GetTFEBit (line 1387) | bool GetTFEBit() const { return ReadBit(55); }
class MIMGInstruction (line 1393) | class MIMGInstruction : public Instruction
method InstructionFormat (line 1397) | InstructionFormat GetFormat() const { return IF_MIMG; }
method ImageInstructions (line 1398) | ImageInstructions GetOpcode() const { return Translate_MIMGOpcodes...
method uint (line 1399) | uint GetLength() const { return 8; }
method IsSLC (line 1401) | bool IsSLC() const { return ReadBit(25); }
method IsGLC (line 1402) | bool IsGLC() const { return ReadBit(13); }
method IsTFE (line 1403) | bool IsTFE() const { return ReadBit(16); }
method IsLWE (line 1404) | bool IsLWE() const { return ReadBit(17); }
method IsArray (line 1405) | bool IsArray() const { return ReadBit(14); }
method IsUnormalized (line 1406) | bool IsUnormalized() const { return ReadBit(12); }
method IsRes256 (line 1407) | bool IsRes256() const { return !ReadBit(15);}
method uint (line 1409) | uint GetDMask() const { return ReadBits(11,8); }
method Sources (line 1410) | Sources GetSSampler() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1411) | Sources GetSResource() const { return (Sources)(SRC_SGPR_FIRST+4*R...
method Sources (line 1412) | Sources GetVData() const { return Translate_VSrc( ReadBits(47,40) ...
method Sources (line 1413) | Sources GetVAddr() const { return Translate_VSrc( ReadBits(39,32) ...
class DSInstruction (line 1421) | class DSInstruction : public Instruction
method uint (line 1424) | uint GetOffset0() const { return ReadBits(7,0); }
method uint (line 1425) | uint GetOffset1() const { return ReadBits(15,8); }
method uint (line 1426) | uint GetOffset16() const { return ReadBits(15,0); }
method DSInstructions (line 1427) | DSInstructions GetOpcode() const { return Translate_DSOpcodes(Read...
method Dests (line 1428) | Dests GetVDest() const { return Translate_VDest(ReadBits(63,56)); }
method Sources (line 1429) | Sources GetVData0() const { return Translate_VSrc(ReadBits(47,40)); }
method Sources (line 1430) | Sources GetVData1() const { return Translate_VSrc(ReadBits(55,48)); }
method Sources (line 1431) | Sources GetVAddr() const { return Translate_VSrc(ReadBits(39,32)); }
method IsGDS (line 1432) | bool IsGDS() const { return ReadBit(17); }
class EXPInstruction (line 1435) | class EXPInstruction : public Instruction
method InstructionFormat (line 1438) | InstructionFormat GetFormat() const { return IF_EXP; }
method uint (line 1439) | uint GetLength() const { return 8; }
method GetCompressBit (line 1441) | bool GetCompressBit() const { return ReadBit(10); }
method GetDoneBit (line 1442) | bool GetDoneBit() const { return ReadBit(11); }
method GetValidMaskBit (line 1443) | bool GetValidMaskBit() const { return ReadBit(12); }
method ExportTargets (line 1445) | ExportTargets GetTarget() const { return Translate_EXPTarget(ReadB...
method uint (line 1446) | uint GetExportMask() const { return ReadBits(3,0); }
method Sources (line 1447) | Sources GetVSrc0() const { return Translate_VSrc(ReadBits(39,32)); }
method Sources (line 1448) | Sources GetVSrc1() const { return Translate_VSrc(ReadBits(47,40)); }
method Sources (line 1449) | Sources GetVSrc2() const { return Translate_VSrc(ReadBits(55,48)); }
method Sources (line 1450) | Sources GetVSrc3() const { return Translate_VSrc(ReadBits(63,56)); }
function InstructionFormat (line 1461) | InstructionFormat GCN1Decoder::ReadInstructionFormat( const uint8* pLo...
FILE: src/Wrapper/GCN1Decoder.h
function namespace (line 12) | namespace GCN
FILE: src/Wrapper/GCN3Decoder.cpp
type GCN (line 9) | namespace GCN{
type _GCN3Decoder_INTERNAL (line 10) | namespace _GCN3Decoder_INTERNAL
type EnumLUT (line 12) | struct EnumLUT
function uint (line 18) | static uint LUTLookup( const EnumLUT* pLUT, size_t nLUTSize,uint en,...
function VectorInstructions (line 383) | static VectorInstructions Translate_VOPCOpcodes( uint n )
function VectorInstructions (line 510) | static VectorInstructions Translate_VOP3Opcodes( uint n )
function VectorInstructions (line 522) | static VectorInstructions Translate_VINTERPOpcodes( uint n )
function Dests (line 979) | Dests Translate_SDest( uint n )
function Sources (lin
Condensed preview — 357 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,941K chars).
[
{
"path": ".gitattributes",
"chars": 12,
"preview": "bin/* binary"
},
{
"path": ".gitignore",
"chars": 3292,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User"
},
{
"path": ".gitmodules",
"chars": 231,
"preview": "[submodule \"src/Wrapper/glsl-optimizer\"]\n\tpath = src/Wrapper/glsl-optimizer\n\turl = https://github.com/jbarczak/glsl-opti"
},
{
"path": "Distribute.bat",
"chars": 1394,
"preview": "echo off\nmkdir Pyramid\nmkdir Pyramid\\bin\nmkdir Pyramid\\src\nmkdir Pyramid\\src\\Backends\nmkdir Pyramid\\src\\Languages\nmkdir "
},
{
"path": "LICENSE.txt",
"chars": 35147,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "README.md",
"chars": 4035,
"preview": "# Pyramid\n\nPyramid is a free, open GUI tool for offline shader validation and analysis. The UI takes HLSL or GLSL as inp"
},
{
"path": "shims/atidxx_shim/ShimDLL.cpp",
"chars": 6834,
"preview": "\n#define _CRT_SECURE_NO_DEPRECATE\n\n#include <Windows.h>\n#include <stdio.h>\n#include <stdarg.h>\n#include <malloc.h>\n#incl"
},
{
"path": "shims/atidxx_shim/ShimDLL.sln",
"chars": 963,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Express 2013 for Windows Desktop\nVisualStu"
},
{
"path": "shims/atidxx_shim/ShimDLL.vcxproj",
"chars": 3821,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"12.0\" xmlns=\"http://schemas.micros"
},
{
"path": "shims/atidxx_shim/elf.h",
"chars": 23102,
"preview": "/*\n * CDDL HEADER START\n *\n * The contents of this file are subject to the terms of the\n * Common Development and Distri"
},
{
"path": "src/App.config",
"chars": 178,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <startup> \n \n <supportedRuntime version=\"v4.0\" sku="
},
{
"path": "src/Backends/AMDDriverBackend.cs",
"chars": 4279,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "src/Backends/AMDDriverResultsPanel.Designer.cs",
"chars": 9471,
"preview": "namespace Pyramid\n{\n partial class AMDDriverResultsPanel\n {\n /// <summary> \n /// Required designer "
},
{
"path": "src/Backends/AMDDriverResultsPanel.cs",
"chars": 3428,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/AMDDriverResultsPanel.resx",
"chars": 6734,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/CodeXLAnalysisPanel.Designer.cs",
"chars": 2720,
"preview": "namespace Pyramid\n{\n partial class CodeXLAnalysisPanel\n {\n /// <summary> \n /// Required designer va"
},
{
"path": "src/Backends/CodeXLAnalysisPanel.cs",
"chars": 1581,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/CodeXLAnalysisPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/CodeXLBackend.cs",
"chars": 10214,
"preview": "\nusing System.Diagnostics;\nusing System.Collections.Generic;\nusing System.IO;\nusing System;\nusing System.Windows.Forms;"
},
{
"path": "src/Backends/CodeXLResultsPanel.Designer.cs",
"chars": 10236,
"preview": "namespace Pyramid\n{\n partial class AMDResultsPanel\n {\n /// <summary> \n /// Required designer variab"
},
{
"path": "src/Backends/CodeXLResultsPanel.cs",
"chars": 2193,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/CodeXLResultsPanel.resx",
"chars": 6390,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/FXCBackend.cs",
"chars": 1443,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\nusing System.Diagnostics;\nusing System.IO;\n"
},
{
"path": "src/Backends/FXCResultsPanel.Designer.cs",
"chars": 11633,
"preview": "namespace Pyramid\n{\n partial class FXCResultsPanel\n {\n /// <summary> \n /// Required designer variab"
},
{
"path": "src/Backends/FXCResultsPanel.cs",
"chars": 7367,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/FXCResultsPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/GLSLOptimizerBackend.cs",
"chars": 4082,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\n\nnamespace Pyramid\n{\n class GLSLOptimize"
},
{
"path": "src/Backends/GLSlangBackend.cs",
"chars": 1909,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\n\nnamespace Pyramid\n{\n class GLSlangBacke"
},
{
"path": "src/Backends/GLSlangResultsPanel.Designer.cs",
"chars": 3090,
"preview": "namespace Pyramid\n{\n partial class GLSlangResultsPanel\n {\n /// <summary> \n /// Required designer va"
},
{
"path": "src/Backends/GLSlangResultsPanel.cs",
"chars": 1447,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/GLSlangResultsPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/IBackend.cs",
"chars": 442,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\n\nnamespace Pyramid\n{\n public interface I"
},
{
"path": "src/Backends/IntelShaderAnalyzerBackend.cs",
"chars": 9255,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "src/Backends/IntelShaderAnalyzerResultsPanel.Designer.cs",
"chars": 7207,
"preview": "namespace Pyramid\n{\n partial class IntelShaderAnalyzerResultsPanel\n {\n /// <summary> \n /// Required"
},
{
"path": "src/Backends/IntelShaderAnalyzerResultsPanel.cs",
"chars": 2452,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/IntelShaderAnalyzerResultsPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/MaliSCBackend.cs",
"chars": 5352,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Diagnostics;\nusing System.Windows.Forms;\n"
},
{
"path": "src/Backends/MaliSCResultsPanel.Designer.cs",
"chars": 3473,
"preview": "namespace Pyramid\n{\n partial class MaliSCResultsPanel\n {\n /// <summary> \n /// Required designer var"
},
{
"path": "src/Backends/MaliSCResultsPanel.cs",
"chars": 954,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Backends/MaliSCResultsPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/PVRResultsPanel.Designer.cs",
"chars": 6701,
"preview": "namespace Pyramid\n{\n partial class PVRResultsPanel\n {\n /// <summary> \n /// Required designer variab"
},
{
"path": "src/Backends/PVRResultsPanel.cs",
"chars": 950,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Diagnostics;\nusing System.Text;\nusing System.Windows.Forms"
},
{
"path": "src/Backends/PVRResultsPanel.resx",
"chars": 6041,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Backends/PowerVRBackend.cs",
"chars": 5141,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Diagnostics;\nusing System.Windows.Forms;\n"
},
{
"path": "src/Backends/RGABackend.cs",
"chars": 12751,
"preview": "\nusing System.Diagnostics;\nusing System.Collections.Generic;\nusing System.IO;\nusing System;\nusing System.Windows.Forms;"
},
{
"path": "src/GLSLOptimizer.cs",
"chars": 974,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace Pyramid\n{\n namespace GLSLOptimizer\n { \n "
},
{
"path": "src/GLSLTypes.cs",
"chars": 1024,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "src/GLSlang.cs",
"chars": 759,
"preview": "using System;\nusing System.Collections.Generic;\n\n\nnamespace Pyramid\n{\n namespace GLSlang\n {\n public interf"
},
{
"path": "src/HLSLTypes.cs",
"chars": 6356,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\n\nnamespace Pyramid\n{\n public e"
},
{
"path": "src/IAMDDriver.cs",
"chars": 823,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Configuration/AssemblyInfo.cs",
"chars": 587,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/GlobalAssemblyInfo.cs",
"chars": 1602,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj",
"chars": 16723,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/ms"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Resources/CPP-Mode.xshd",
"chars": 5831,
"preview": "<?xml version=\"1.0\"?>\n<!-- syntaxdefinition for C/C++ 2001 by Andrea Paatz and Mike Krueger -->\n\n<SyntaxDefinition name "
},
{
"path": "src/ICSharpCode.TextEditor/Project/Resources/GLSL-Mode.xshd",
"chars": 16968,
"preview": "<?xml version=\"1.0\"?>\n<!-- syntaxdefinition for GLSL by Josh Barczak -->\n\n<SyntaxDefinition name = \"GLSL\" extensions = \""
},
{
"path": "src/ICSharpCode.TextEditor/Project/Resources/HLSL-Mode.xshd",
"chars": 12676,
"preview": "<?xml version=\"1.0\"?>\n<!-- syntaxdefinition for HLSL by Josh Barczak -->\n\n<SyntaxDefinition name = \"HLSL\" extensions = \""
},
{
"path": "src/ICSharpCode.TextEditor/Project/Resources/Mode.xsd",
"chars": 14742,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" >\n\t<xsd:annotation>\n\t\t<"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Resources/SyntaxModes.xml",
"chars": 377,
"preview": "<SyntaxModes version=\"1.0\">\n\n <Mode file = \"HLSL-Mode.xshd\"\n name = \"HLSL\"\n extensions "
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/BookmarkActions.cs",
"chars": 2142,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/CaretActions.cs",
"chars": 6887,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/ClipBoardActions.cs",
"chars": 894,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/FindReplaceAction.cs",
"chars": 429,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\n\nnamespace ICSharpCode.TextEditor"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/FoldActions.cs",
"chars": 2122,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/FormatActions.cs",
"chars": 6885,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/HomeEndActions.cs",
"chars": 3091,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/IEditAction.cs",
"chars": 1342,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/MiscActions.cs",
"chars": 32925,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Actions/SelectionActions.cs",
"chars": 5289,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/AbstractSegment.cs",
"chars": 1035,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/Bookmark.cs",
"chars": 3633,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/BookmarkEventHandler.cs",
"chars": 672,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/BookmarkManager.cs",
"chars": 5972,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/BookmarkManager/BookmarkManagerMemento.cs",
"chars": 2528,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/DefaultDocument.cs",
"chars": 11206,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/DefaultTextEditorProperties.cs",
"chars": 5889,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/DocumentEventArgs.cs",
"chars": 2462,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/DocumentFactory.cs",
"chars": 1889,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/FoldMarker.cs",
"chars": 4387,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/FoldingManager.cs",
"chars": 9198,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/IFoldingStrategy.cs",
"chars": 662,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/FoldingStrategy/IndentFoldingStrategy.cs",
"chars": 1223,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/FormattingStrategy/DefaultFormattingStrategy.cs",
"chars": 7066,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/FormattingStrategy/IFormattingStrategy.cs",
"chars": 2576,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs",
"chars": 29703,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/FontContainer.cs",
"chars": 2305,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightBackground.cs",
"chars": 1343,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightColor.cs",
"chars": 7720,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightInfo.cs",
"chars": 599,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightRuleSet.cs",
"chars": 3990,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingColorNotFoundException.cs",
"chars": 820,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingDefinitionInvalidException.cs",
"chars": 1095,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingDefinitionParser.cs",
"chars": 4229,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingManager.cs",
"chars": 5448,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingStrategyFactory.cs",
"chars": 1148,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/IHighlightingStrategy.cs",
"chars": 1568,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/NextMarker.cs",
"chars": 1261,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/PrevMarker.cs",
"chars": 1273,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/Span.cs",
"chars": 3335,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SpanStack.cs",
"chars": 2099,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs",
"chars": 2450,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ISyntaxModeFileProvider.cs",
"chars": 534,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ResourceSyntaxModeProvider.cs",
"chars": 1306,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/SyntaxMode.cs",
"chars": 2363,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/TextWord.cs",
"chars": 4649,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/IDocument.cs",
"chars": 8735,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/ISegment.cs",
"chars": 610,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/ITextEditorProperties.cs",
"chars": 2797,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/DeferredEventList.cs",
"chars": 1025,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineManager.cs",
"chars": 11587,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineManagerEventArgs.cs",
"chars": 2092,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineSegment.cs",
"chars": 6497,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/LineManager/LineSegmentTree.cs",
"chars": 12604,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/MarkerStrategy.cs",
"chars": 3130,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/MarkerStrategy/TextMarker.cs",
"chars": 2151,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/Selection/ColumnRange.cs",
"chars": 1325,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/Selection/DefaultSelection.cs",
"chars": 3261,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/Selection/ISelection.cs",
"chars": 1069,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/Selection/SelectionManager.cs",
"chars": 13206,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/TextAnchor.cs",
"chars": 2682,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/TextBufferStrategy/GapTextBufferStrategy.cs",
"chars": 5159,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/TextBufferStrategy/ITextBufferStrategy.cs",
"chars": 2157,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/TextBufferStrategy/StringTextBufferStrategy.cs",
"chars": 1861,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/TextLocation.cs",
"chars": 2447,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Document/TextUtilities.cs",
"chars": 9587,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/AbstractMargin.cs",
"chars": 2438,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/BracketHighlighter.cs",
"chars": 2170,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/BrushRegistry.cs",
"chars": 1638,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/Caret.cs",
"chars": 11955,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/AbstractCompletionWindow.cs",
"chars": 6657,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionListView.cs",
"chars": 7693,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/CodeCompletionWindow.cs",
"chars": 12097,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/DeclarationViewWindow.cs",
"chars": 2156,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionData.cs",
"chars": 2321,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/CompletionWindow/ICompletionDataProvider.cs",
"chars": 1760,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/DrawableLine.cs",
"chars": 5824,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/FindReplaceForm/FindAndReplaceForm.Designer.cs",
"chars": 10699,
"preview": "namespace ICSharpCode.TextEditor\n{\n\tpartial class FindAndReplaceForm\n\t{\n\t\t/// <summary>\n\t\t/// Required designer variabl"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/FindReplaceForm/FindAndReplaceForm.cs",
"chars": 15336,
"preview": "\n// code stolen from https://www.codeproject.com/Articles/30936/Using-ICSharpCode-TextEditor\n// Merged into ICSharpCode"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/FindReplaceForm/FindAndReplaceForm.resx",
"chars": 5695,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prima"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/FoldMargin.cs",
"chars": 10481,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/GutterMargin.cs",
"chars": 6712,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/HRuler.cs",
"chars": 1426,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/IconBarMargin.cs",
"chars": 8376,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/Ime.cs",
"chars": 4222,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/IInsightDataProvider.cs",
"chars": 1712,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/InsightWindow/InsightWindow.cs",
"chars": 6428,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextArea.cs",
"chars": 27584,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaClipboardHandler.cs",
"chars": 7601,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaControl.cs",
"chars": 14199,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaDragDropHandler.cs",
"chars": 5364,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaMouseHandler.cs",
"chars": 17094,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextAreaUpdate.cs",
"chars": 1920,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControl.cs",
"chars": 12522,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextEditorControlBase.cs",
"chars": 22049,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/TextView.cs",
"chars": 39637,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Gui/ToolTipRequestEventArgs.cs",
"chars": 1284,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Undo/IUndoableOperation.cs",
"chars": 621,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Undo/UndoQueue.cs",
"chars": 1259,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Undo/UndoStack.cs",
"chars": 5052,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Undo/UndoableDelete.cs",
"chars": 2092,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Undo/UndoableInsert.cs",
"chars": 2059,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Undo/UndoableReplace.cs",
"chars": 2162,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/AugmentableRedBlackTree.cs",
"chars": 16001,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/CheckedList.cs",
"chars": 2891,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <auth"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/FileReader.cs",
"chars": 4415,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/LoggingService.cs",
"chars": 486,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <auth"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/LookupTable.cs",
"chars": 3752,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/MouseWheelHandler.cs",
"chars": 969,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <auth"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/RedBlackTreeIterator.cs",
"chars": 1759,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/RtfWriter.cs",
"chars": 4687,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TextUtility.cs",
"chars": 1995,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <own"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TipPainter.cs",
"chars": 3800,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TipPainterTools.cs",
"chars": 6158,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TipSection.cs",
"chars": 1746,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TipSpacer.cs",
"chars": 755,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TipSplitter.cs",
"chars": 2623,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/TipText.cs",
"chars": 5303,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/ICSharpCode.TextEditor/Project/Src/Util/WeakCollection.cs",
"chars": 4038,
"preview": "// <file>\n// <copyright see=\"prj:///doc/copyright.txt\"/>\n// <license see=\"prj:///doc/license.txt\"/>\n// <owne"
},
{
"path": "src/IIncludeHandler.cs",
"chars": 369,
"preview": "using System;\n\nnamespace Pyramid\n{\n public interface IIncludeResult\n {\n byte[] Contents { get; }\n s"
},
{
"path": "src/IWrapper.cs",
"chars": 872,
"preview": "using System;\n\nnamespace Pyramid\n{\n \n \n public interface IWrapper\n {\n /// <summary>\n /// Constr"
},
{
"path": "src/IncludeHandler.cs",
"chars": 1765,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "src/LanguageTypes.cs",
"chars": 495,
"preview": "namespace Pyramid\n{\n public enum Languages\n {\n HLSL,\n GLSL,\n };\n\n public interface ICompileOp"
},
{
"path": "src/Languages/GLSLLanguage.cs",
"chars": 286,
"preview": "\nnamespace Pyramid\n{\n \n\n\n public class GLSLLanguage : ILanguage\n {\n private GLSLOptionsPanel m_Options ="
},
{
"path": "src/Languages/GLSLOptionsPanel.Designer.cs",
"chars": 5735,
"preview": "namespace Pyramid\n{\n partial class GLSLOptionsPanel\n {\n /// <summary> \n /// Required designer varia"
},
{
"path": "src/Languages/GLSLOptionsPanel.cs",
"chars": 2208,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Data;\nu"
},
{
"path": "src/Languages/GLSLOptionsPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Languages/HLSLLanguage.cs",
"chars": 286,
"preview": "\n\nnamespace Pyramid\n{\n public class HLSLLanguage : ILanguage\n {\n private HLSLOptionsPanel m_Options = new "
},
{
"path": "src/Languages/HLSLOptionsPanel.Designer.cs",
"chars": 9033,
"preview": "namespace Pyramid\n{\n partial class HLSLOptionsPanel\n {\n /// <summary> \n /// Required designer varia"
},
{
"path": "src/Languages/HLSLOptionsPanel.cs",
"chars": 7316,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Text;\nu"
},
{
"path": "src/Languages/HLSLOptionsPanel.resx",
"chars": 5696,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/Languages/ICompileOptionsPanel.cs",
"chars": 234,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Windows.Forms;\n\nnamespace Pyramid\n{\n\n\n public interface"
},
{
"path": "src/Languages/ILanguage.cs",
"chars": 149,
"preview": "\nnamespace Pyramid\n{\n\n public interface ILanguage\n {\n ICompileOptionsPanel OptionsPanel { get; }\n s"
},
{
"path": "src/MainUI/AboutBox.Designer.cs",
"chars": 10356,
"preview": "namespace Pyramid\n{\n partial class AboutBox\n {\n /// <summary>\n /// Required designer variable.\n "
},
{
"path": "src/MainUI/AboutBox.cs",
"chars": 304,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Drawing;\nusing System.Reflect"
},
{
"path": "src/MainUI/AboutBox.resx",
"chars": 49006,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/MainUI/MainForm.Designer.cs",
"chars": 18310,
"preview": "\nnamespace Pyramid\n{\n partial class MainForm\n {\n /// <summary>\n /// Required designer variable.\n "
},
{
"path": "src/MainUI/MainForm.cs",
"chars": 13390,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Data;\nusing System.Drawing;\nu"
},
{
"path": "src/MainUI/MainForm.resx",
"chars": 5891,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "src/MainUI/OptionsScreen.Designer.cs",
"chars": 35062,
"preview": "namespace Pyramid\n{\n partial class OptionsScreen\n {\n /// <summary>\n /// Required designer variable."
},
{
"path": "src/MainUI/OptionsScreen.cs",
"chars": 10123,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Data;\nusing System.Drawing;\nu"
},
{
"path": "src/MainUI/OptionsScreen.resx",
"chars": 6082,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
}
]
// ... and 157 more files (download for full content)
About this extraction
This page contains the full source code of the jbarczak/Pyramid GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 357 files (2.6 MB), approximately 707.5k tokens, and a symbol index with 2685 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.