Showing preview only (1,706K chars total). Download the full file or copy to clipboard to get everything.
Repository: aliakseis/FFmpegPlayer
Branch: master
Commit: a547dbec76bd
Files: 181
Total size: 1.6 MB
Directory structure:
gitextract_546ruw75/
├── .clang-format
├── .gitattributes
├── .github/
│ └── workflows/
│ └── msbuild.yml
├── .gitignore
├── .gitmodules
├── Anime4KCPPCore.vcxproj
├── Anime4KCPPCore.vcxproj.filters
├── Dlls/
│ └── Dlls.csproj
├── HttpDownload/
│ ├── HttpDownload.cpp
│ ├── HttpDownload.vcxproj
│ ├── HttpDownload.vcxproj.filters
│ ├── ReadMe.txt
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
├── LICENSE
├── Player/
│ ├── AsyncGetUrlUnderMouseCursor.cpp
│ ├── AsyncGetUrlUnderMouseCursor.h
│ ├── ByteStreamBuffer.h
│ ├── D3DFONT.CPP
│ ├── D3DFONT.H
│ ├── DialogBarPlayerControl.cpp
│ ├── DialogBarPlayerControl.h
│ ├── DialogBarRange.cpp
│ ├── DialogBarRange.h
│ ├── DialogOpenURL.cpp
│ ├── DialogOpenURL.h
│ ├── DialogVideoFilter.cpp
│ ├── DialogVideoFilter.h
│ ├── EditTime.cpp
│ ├── EditTime.h
│ ├── FrameToHglobal.cpp
│ ├── FrameToHglobal.h
│ ├── FrameTransformer.cpp
│ ├── FrameTransformer.h
│ ├── GetClipboardText.h
│ ├── HandleFilesSequence.cpp
│ ├── HandleFilesSequence.h
│ ├── I420Effect.cpp
│ ├── I420Effect.h
│ ├── I420Effect_PS.hlsl
│ ├── IEraseableArea.h
│ ├── ImageUpscale.cpp
│ ├── ImageUpscale.h
│ ├── MainFrm.cpp
│ ├── MainFrm.h
│ ├── MakeDelegate.h
│ ├── MemoryMappedFile.h
│ ├── OpenSubtitlesFile.cpp
│ ├── OpenSubtitlesFile.h
│ ├── Player.cpp
│ ├── Player.h
│ ├── Player.rc
│ ├── Player.vcxproj
│ ├── Player.vcxproj.filters
│ ├── PlayerDoc.cpp
│ ├── PlayerDoc.h
│ ├── PlayerView.cpp
│ ├── PlayerView.h
│ ├── PlayerViewD2D.cpp
│ ├── PlayerViewD2D.h
│ ├── ReadMe.txt
│ ├── SecondsToString.h
│ ├── StringDifference.cpp
│ ├── StringDifference.h
│ ├── YouTuber.cpp
│ ├── YouTuber.h
│ ├── res/
│ │ ├── Player.rc2
│ │ └── launch.mkv
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ └── update_version.cmd
├── Player.sln
├── QtPlayer/
│ ├── .gitattributes
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── customdockwidget.cpp
│ ├── customdockwidget.h
│ ├── ffmpegdecoder.cpp
│ ├── ffmpegdecoder.h
│ ├── main.cpp
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ ├── mainwindow.ui
│ ├── mousehoverbutton.cpp
│ ├── mousehoverbutton.h
│ ├── opengldisplay.cpp
│ ├── opengldisplay.h
│ ├── portaudioplayer.cpp
│ ├── portaudioplayer.h
│ ├── resources/
│ │ ├── qt.conf
│ │ ├── resources.qrc
│ │ ├── style.css
│ │ ├── win7.manifest
│ │ └── winres.rc.in
│ ├── videocontrol.cpp
│ ├── videocontrol.h
│ ├── videocontrol.ui
│ ├── videodisplay.cpp
│ ├── videodisplay.h
│ ├── videoplayer.cpp
│ ├── videoplayer.h
│ ├── videoplayerwidget.cpp
│ ├── videoplayerwidget.h
│ ├── videoprogressbar.cpp
│ ├── videoprogressbar.h
│ ├── videowidget.cpp
│ ├── videowidget.h
│ ├── volumeprogressbar.cpp
│ ├── volumeprogressbar.h
│ ├── widgetdisplay.cpp
│ └── widgetdisplay.h
├── README.md
├── Setup/
│ └── Setup.vdproj
├── ThirdParty/
│ └── include/
│ ├── cmdline/
│ │ └── cmdline.hpp
│ ├── ini17/
│ │ └── ini17.hpp
│ └── opencl/
│ └── CL/
│ └── opencl.hpp
├── ToUTF8/
│ ├── ToUTF8.cpp
│ ├── ToUTF8.vcxproj
│ └── ToUTF8.vcxproj.filters
├── audio/
│ ├── AudioPitchDecorator.cpp
│ ├── AudioPitchDecorator.h
│ ├── AudioPlayerImpl.cpp
│ ├── AudioPlayerImpl.h
│ ├── AudioPlayerWasapi.cpp
│ ├── AudioPlayerWasapi.h
│ ├── ReadMe.txt
│ ├── audio.vcxproj
│ ├── audio.vcxproj.filters
│ ├── smbPitchShift.cpp
│ └── smbPitchShift.h
├── core/
│ └── ac_export.h
├── edit_git_subst_cfg.cmd
├── ffmpeg-3.3.3-experimental-patch/
│ ├── common.before.h
│ ├── common.h
│ ├── hevcdsp_template.before.c
│ └── hevcdsp_template.c
├── ffmpeg-4.3.2-experimental-patch/
│ ├── common.before.h
│ ├── common.h
│ ├── hevcdsp_template.before.c
│ └── hevcdsp_template.c
├── getYoutubeCombined.py
├── networking/
│ ├── ReadMe.txt
│ ├── crypt.h
│ ├── http_download.cpp
│ ├── http_download.h
│ ├── http_get.cpp
│ ├── http_get.h
│ ├── httpioapi.cpp
│ ├── httprequest_h.h
│ ├── ioapi.h
│ ├── networking.vcxproj
│ ├── networking.vcxproj.filters
│ ├── unzip.c
│ └── unzip.h
├── remove_pytube.cmd
├── remove_youtube_transcript_api.cmd
└── video/
├── audioparserunnable.cpp
├── audioplayer.h
├── decoderinterface.h
├── decoderiocontext.cpp
├── decoderiocontext.h
├── displayrunnable.cpp
├── ffmpeg_dxva2.cpp
├── ffmpeg_dxva2.h
├── ffmpegdecoder.cpp
├── ffmpegdecoder.h
├── fqueue.h
├── interlockedadd.h
├── makeguard.h
├── ordered_scoped_token.h
├── parserunnable.cpp
├── subtitles.cpp
├── subtitles.h
├── video.vcxproj
├── video.vcxproj.filters
├── videoframe.h
├── videoparserunnable.cpp
└── vqueue.h
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
BasedOnStyle: Google
UseTab: Never
IndentWidth: 4
BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
ColumnLimit: 99
IndentAccessModifiers: false
AccessModifierOffset: -4
================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
================================================
FILE: .github/workflows/msbuild.yml
================================================
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: MSBuild
on:
workflow_dispatch:
env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: ./Player.sln
# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: Release
# https://learn.microsoft.com/en-us/vcpkg/consume/binary-caching-github-actions-cache?source=recommendations
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
platform: [x86, x64]
steps:
- uses: actions/checkout@v4
with:
submodules: true # Ensure submodules are checked out
- name: Create Directory.Build.props
run: |
$content = "<Project><PropertyGroup><WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion><TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion><PlatformToolset>v143</PlatformToolset></PropertyGroup></Project>"
$filePath = "./Directory.Build.props"
Set-Content -Path $filePath -Value $content
- name: Add MSBuild to PATH
id: setup-msbuild
uses: microsoft/setup-msbuild@v2
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Install vcpkg
run: |
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
# see https://github.com/microsoft/vcpkg/issues/43802
#git checkout 62aa44929954469878eb8fc562af706a8f5615a5
./bootstrap-vcpkg.bat
./vcpkg integrate install
- name: Install dependencies
run: ./vcpkg/vcpkg install boost boost-log dtl ffmpeg[ffmpeg,x264,nonfree,gpl,vpx,webp,zlib,xml2] opencv4 python3 boost-python opencl --triplet=${{matrix.platform}}-windows
- name: Restore NuGet packages
working-directory: ${{env.GITHUB_WORKSPACE}}
run: nuget restore ${{env.SOLUTION_FILE_PATH}}
- name: Find OpenCV Header
run: |
$opencvHeader = Get-ChildItem -Path "./vcpkg/" -Recurse -Filter "opencv.hpp" | Where-Object { $_.FullName -match "opencv2\\opencv.hpp" }
if ($opencvHeader) {
Write-Output "Found OpenCV header at: $($opencvHeader.FullName)"
} else {
Write-Error "OpenCV header not found"
}
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} /p:Platform=${{matrix.platform == 'x86' && 'Win32' || matrix.platform}} "/t:Player;ToUTF8" ${{env.SOLUTION_FILE_PATH}}
- name: Complete build artifacts
run: |
$CRT_path = Get-ChildItem -Path "${{ steps.setup-msbuild.outputs.msbuildPath }}/../../../VC/Redist/MSVC/*/${{matrix.platform}}/Microsoft.VC143.CRT" | Select-Object -First 1 -ExpandProperty FullName
$MFC_path = Get-ChildItem -Path "${{ steps.setup-msbuild.outputs.msbuildPath }}/../../../VC/Redist/MSVC/*/${{matrix.platform}}/Microsoft.VC143.MFC" | Select-Object -First 1 -ExpandProperty FullName
Write-Output "CRT PATH=$CRT_path"
Write-Output "MFC PATH=$MFC_path"
./vcpkg/scripts/buildsystems/msbuild/applocal.ps1 -targetBinary "./${{matrix.platform == 'x64' && matrix.platform || ''}}/Release/Player.exe" -installedDir "$CRT_path" -OutVariable out
./vcpkg/scripts/buildsystems/msbuild/applocal.ps1 -targetBinary "./${{matrix.platform == 'x64' && matrix.platform || ''}}/Release/Player.exe" -installedDir "$MFC_path" -OutVariable out
- name: Copy FFmpeg tools
run: Copy-Item -Path "./vcpkg/installed/${{matrix.platform}}-windows/tools/ffmpeg/*" -Destination "./${{matrix.platform == 'x64' && matrix.platform || ''}}/Release/" -Recurse -Force -ErrorAction SilentlyContinue
- name: Delete .pdb files
run: Remove-Item -Path "./${{matrix.platform == 'x64' && matrix.platform || ''}}/Release/*.pdb" -Force
- name: Delete .lib files
run: Remove-Item -Path "./${{matrix.platform == 'x64' && matrix.platform || ''}}/Release/*.lib" -Force
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-${{matrix.platform}}
path: ./${{matrix.platform == 'x64' && matrix.platform || ''}}/Release
================================================
FILE: .gitignore
================================================
#################
## Eclipse
#################
*.pydevproject
.project
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/
.loadpath
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# PDT-specific
.buildpath
#################
## Visual Studio
#################
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.log
*.scc
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# 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
*.Publish.xml
*.pubxml
*.publishproj
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
#packages/
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.[Pp]ublish.xml
*.pfx
*.publishsettings
# 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
App_Data/*.mdf
App_Data/*.ldf
#############
## Windows detritus
#############
# Windows image file caches
Thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Mac crap
.DS_Store
#############
## Python
#############
*.py[cod]
# Packages
*.egg
*.egg-info
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
.tox
#Translations
*.mo
#Mr Developer
.mr.developer.cfg
ipch/
ffmpeg/
Player/I420Effect_PS.h
Player.VC.db
Player.VC.VC.opendb
*.diagsession
CMakeLists.txt.user*
.clang-tidy
.vs/
Player/version.h
build-*/
Directory.Build.props
================================================
FILE: .gitmodules
================================================
[submodule "Anime4KCPP"]
path = Anime4KCPP
url = https://github.com/TianZerL/Anime4KCPP.git
================================================
FILE: Anime4KCPPCore.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{632353E4-4856-38F9-9E74-ED41BD99D7E5}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<Platform>Win32</Platform>
<ProjectName>Anime4KCPPCore</ProjectName>
<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
<VcpkgEnabled>true</VcpkgEnabled>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="do_not_import_user.props" Condition="exists('do_not_import_user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Anime4KCPP\build\bin\Debug\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Anime4KCPPCore.dir\Debug\</IntDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Anime4KCPPCore</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Anime4KCPPCore</TargetName>
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.lib</TargetExt>
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.lib</TargetExt>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Anime4KCPP\build\bin\Release\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Anime4KCPPCore.dir\Release\</IntDir>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Anime4KCPPCore</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Anime4KCPPCore</TargetName>
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.lib</TargetExt>
<TargetExt Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.lib</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;core;ThirdParty\include\opencl;$(INTELOCLSDKROOT)\include;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
<LanguageStandard>stdcpp17</LanguageStandard>
<Optimization>Disabled</Optimization>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<SuppressStartupBanner>
</SuppressStartupBanner>
<UseFullPaths>false</UseFullPaths>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY="PPL";ANIME4KCPP_CORE_COMPILER="MSVC";ANIME4KCPP_CORE_BUILD_DATE="2021-10-01";ANIME4KCPP_CORE_VERSION="2.6.0";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS="dev";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)</ObjectFileName>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY=\"PPL\";ANIME4KCPP_CORE_COMPILER=\"MSVC\";ANIME4KCPP_CORE_BUILD_DATE=\"2021-10-01\";ANIME4KCPP_CORE_VERSION=\"2.6.0\";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS=\"dev\";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR=\"Debug\"</PreprocessorDefinitions>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Midl>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
<HeaderFileName>%(Filename).h</HeaderFileName>
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;core;ThirdParty\include\opencl;$(INTELOCLSDKROOT)\include;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
<LanguageStandard>stdcpp17</LanguageStandard>
<Optimization>Disabled</Optimization>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<SuppressStartupBanner>
</SuppressStartupBanner>
<UseFullPaths>false</UseFullPaths>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY="PPL";ANIME4KCPP_CORE_COMPILER="MSVC";ANIME4KCPP_CORE_BUILD_DATE="2021-10-01";ANIME4KCPP_CORE_VERSION="2.6.0";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS="dev";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR="Debug"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)</ObjectFileName>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_DEBUG;_WINDOWS;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY=\"PPL\";ANIME4KCPP_CORE_COMPILER=\"MSVC\";ANIME4KCPP_CORE_BUILD_DATE=\"2021-10-01\";ANIME4KCPP_CORE_VERSION=\"2.6.0\";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS=\"dev\";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR=\"Debug\"</PreprocessorDefinitions>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Midl>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
<HeaderFileName>%(Filename).h</HeaderFileName>
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
</Midl>
<Lib>
<AdditionalOptions>
</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;core;ThirdParty\include\opencl;$(INTELOCLSDKROOT)\include;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<LanguageStandard>stdcpp17</LanguageStandard>
<Optimization>MaxSpeed</Optimization>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<SuppressStartupBanner>
</SuppressStartupBanner>
<UseFullPaths>false</UseFullPaths>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY="PPL";ANIME4KCPP_CORE_COMPILER="MSVC";ANIME4KCPP_CORE_BUILD_DATE="2021-10-01";ANIME4KCPP_CORE_VERSION="2.6.0";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS="dev";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR="Release"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)</ObjectFileName>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY=\"PPL\";ANIME4KCPP_CORE_COMPILER=\"MSVC\";ANIME4KCPP_CORE_BUILD_DATE=\"2021-10-01\";ANIME4KCPP_CORE_VERSION=\"2.6.0\";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS=\"dev\";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR=\"Release\"</PreprocessorDefinitions>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Midl>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
<HeaderFileName>%(Filename).h</HeaderFileName>
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;core;ThirdParty\include\opencl;$(INTELOCLSDKROOT)\include;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>Sync</ExceptionHandling>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<LanguageStandard>stdcpp17</LanguageStandard>
<Optimization>MaxSpeed</Optimization>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
<SuppressStartupBanner>
</SuppressStartupBanner>
<UseFullPaths>false</UseFullPaths>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY="PPL";ANIME4KCPP_CORE_COMPILER="MSVC";ANIME4KCPP_CORE_BUILD_DATE="2021-10-01";ANIME4KCPP_CORE_VERSION="2.6.0";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS="dev";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR="Release"</PreprocessorDefinitions>
<ObjectFileName>$(IntDir)</ObjectFileName>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>%(PreprocessorDefinitions);WIN32;_WINDOWS;NDEBUG;ENABLE_OPENCL;ENABLE_VIDEO;ENABLE_PREVIEW_GUI;ENABLE_IMAGE_IO;ANIME4KCPP_CORE_PARALLEL_LIBRARY=\"PPL\";ANIME4KCPP_CORE_COMPILER=\"MSVC\";ANIME4KCPP_CORE_BUILD_DATE=\"2021-10-01\";ANIME4KCPP_CORE_VERSION=\"2.6.0\";ANIME4KCPP_CORE_VERSION_MAJOR=2;ANIME4KCPP_CORE_VERSION_MINOR=6;ANIME4KCPP_CORE_VERSION_PATCH=0;ANIME4KCPP_CORE_VERSION_STATUS=\"dev\";BUILT_IN_KERNEL;USE_PPL;CMAKE_INTDIR=\"Release\"</PreprocessorDefinitions>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Midl>
<AdditionalIncludeDirectories>Anime4KCPP\core\include;Anime4KCPP\build\core;Anime4KCPP\ThirdParty\include\opencl;$(VcpkgRoot)\installed\$(VcpkgTriplet)\include\opencv4;$(INTELOCLSDKROOT)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OutputDirectory>$(ProjectDir)/$(IntDir)</OutputDirectory>
<HeaderFileName>%(Filename).h</HeaderFileName>
<TypeLibraryName>%(Filename).tlb</TypeLibraryName>
<InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
<ProxyFileName>%(Filename)_p.c</ProxyFileName>
</Midl>
<Lib>
<AdditionalOptions>
</AdditionalOptions>
</Lib>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Anime4KCPP\core\include\AC.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACCPU.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACCreator.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACCuda.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACException.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACInitializer.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACManager.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACNCNN.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACNetType.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACOpenCL.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACProcessor.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ACRegister.hpp" />
<ClInclude Include="Anime4KCPP\core\include\Anime4KCPP.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CNN.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CPUACNet.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CPUACNetProcessor.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CPUAnime4K09.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CPUCNNProcessor.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CoreInfo.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CudaACNet.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CudaAnime4K09.hpp" />
<ClInclude Include="Anime4KCPP\core\include\CudaInterface.hpp" />
<ClInclude Include="Anime4KCPP\core\include\FilterProcessor.hpp" />
<ClInclude Include="Anime4KCPP\core\include\NCNNACNet.hpp" />
<ClInclude Include="Anime4KCPP\core\include\NCNNACNetID.hpp" />
<ClInclude Include="Anime4KCPP\core\include\NCNNACNetModel.hpp" />
<ClInclude Include="Anime4KCPP\core\include\OpenCLACNet.hpp" />
<ClInclude Include="Anime4KCPP\core\include\OpenCLACNetKernel.hpp" />
<ClInclude Include="Anime4KCPP\core\include\OpenCLAnime4K09.hpp" />
<ClInclude Include="Anime4KCPP\core\include\OpenCLAnime4K09Kernel.hpp" />
<ClInclude Include="Anime4KCPP\core\include\Parallel.hpp" />
<ClInclude Include="Anime4KCPP\core\include\ThreadPool.hpp" />
<ClInclude Include="Anime4KCPP\core\include\VideoCodec.hpp" />
<ClInclude Include="Anime4KCPP\core\include\VideoIO.hpp" />
<ClInclude Include="Anime4KCPP\core\include\VideoIOAsync.hpp" />
<ClInclude Include="Anime4KCPP\core\include\VideoIOSerial.hpp" />
<ClInclude Include="Anime4KCPP\core\include\VideoIOThreads.hpp" />
<ClInclude Include="Anime4KCPP\core\include\VideoProcessor.hpp" />
<ClCompile Include="Anime4KCPP\core\src\AC.cpp" />
<ClCompile Include="Anime4KCPP\core\src\ACCreator.cpp" />
<ClCompile Include="Anime4KCPP\core\src\ACCuda.cpp" />
<ClCompile Include="Anime4KCPP\core\src\ACNCNN.cpp" />
<ClCompile Include="Anime4KCPP\core\src\ACOpenCL.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CPUACNet.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CPUACNetProcessor.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CPUAnime4K09.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CPUCNNProcessor.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CoreInfo.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CudaACNet.cpp" />
<ClCompile Include="Anime4KCPP\core\src\CudaAnime4K09.cpp" />
<ClCompile Include="Anime4KCPP\core\src\FilterProcessor.cpp" />
<ClCompile Include="Anime4KCPP\core\src\NCNNACNet.cpp" />
<ClCompile Include="Anime4KCPP\core\src\OpenCLACNet.cpp" />
<ClCompile Include="Anime4KCPP\core\src\OpenCLAnime4K09.cpp" />
<ClCompile Include="Anime4KCPP\core\src\VideoIO.cpp" />
<ClCompile Include="Anime4KCPP\core\src\VideoIOAsync.cpp" />
<ClCompile Include="Anime4KCPP\core\src\VideoIOSerial.cpp" />
<ClCompile Include="Anime4KCPP\core\src\VideoIOThreads.cpp" />
<ClCompile Include="Anime4KCPP\core\src\VideoProcessor.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: Anime4KCPPCore.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="Anime4KCPP\core\src\AC.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\ACCreator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\ACCuda.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\ACNCNN.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\ACOpenCL.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CPUACNet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CPUACNetProcessor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CPUAnime4K09.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CPUCNNProcessor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CoreInfo.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CudaACNet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\CudaAnime4K09.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\FilterProcessor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\NCNNACNet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\OpenCLACNet.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\OpenCLAnime4K09.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\VideoIO.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\VideoIOAsync.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\VideoIOSerial.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\VideoIOThreads.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Anime4KCPP\core\src\VideoProcessor.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Anime4KCPP\core\include\AC.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACCPU.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACCreator.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACCuda.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACException.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACInitializer.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACManager.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACNCNN.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACNetType.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACOpenCL.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACProcessor.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ACRegister.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\Anime4KCPP.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CNN.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CPUACNet.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CPUACNetProcessor.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CPUAnime4K09.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CPUCNNProcessor.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CoreInfo.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CudaACNet.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CudaAnime4K09.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\CudaInterface.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\FilterProcessor.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\NCNNACNet.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\NCNNACNetID.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\NCNNACNetModel.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\OpenCLACNet.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\OpenCLACNetKernel.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\OpenCLAnime4K09.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\OpenCLAnime4K09Kernel.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\Parallel.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\ThreadPool.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\VideoCodec.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\VideoIO.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\VideoIOAsync.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\VideoIOSerial.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\VideoIOThreads.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Anime4KCPP\core\include\VideoProcessor.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<Filter Include="Header Files">
<UniqueIdentifier>{047624CC-513D-36E8-B51C-5F37C672EBF6}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{788BFBE6-65CD-3D66-A4BD-D9B8297F3AEF}</UniqueIdentifier>
</Filter>
</ItemGroup>
</Project>
================================================
FILE: Dlls/Dlls.csproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<ProjectGuid>{BC1BC9F1-893D-4715-818A-F37F74EB5710}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Dlls</RootNamespace>
<AssemblyName>Dlls</AssemblyName>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Content Include="..\Release\*.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
================================================
FILE: HttpDownload/HttpDownload.cpp
================================================
// HttpDownload.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "http_download.h"
#include <stdlib.h>
#include <exception>
#include <iostream>
int _tmain(int argc, TCHAR *argv[])
{
if (argc != 3)
return EXIT_FAILURE;
try
{
const bool ok = HttpDownload(argv[1], argv[2]);
return ok ? EXIT_SUCCESS : EXIT_FAILURE;
}
catch (const std::exception& ex)
{
std::cerr << ex.what() << '\n';
return EXIT_FAILURE;
}
}
================================================
FILE: HttpDownload/HttpDownload.vcxproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A4113679-4736-494B-B8D2-3C35B34E5491}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>HttpDownload</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</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>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../networking;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Winhttp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../networking;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Winhttp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../networking;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Winhttp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../networking;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Winhttp.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="HttpDownload.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\networking\networking.vcxproj">
<Project>{3de6c2d2-fdfc-4745-8282-981df7561405}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
================================================
FILE: HttpDownload/HttpDownload.vcxproj.filters
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="stdafx.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="targetver.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="HttpDownload.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
================================================
FILE: HttpDownload/ReadMe.txt
================================================
========================================================================
CONSOLE APPLICATION : HttpDownload Project Overview
========================================================================
AppWizard has created this HttpDownload application for you.
This file contains a summary of what you will find in each of the files that
make up your HttpDownload application.
HttpDownload.vcxproj
This is the main project file for VC++ projects generated using an Application Wizard.
It contains information about the version of Visual C++ that generated the file, and
information about the platforms, configurations, and project features selected with the
Application Wizard.
HttpDownload.vcxproj.filters
This is the filters file for VC++ projects generated using an Application Wizard.
It contains information about the association between the files in your project
and the filters. This association is used in the IDE to show grouping of files with
similar extensions under a specific node (for e.g. ".cpp" files are associated with the
"Source Files" filter).
HttpDownload.cpp
This is the main application source file.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named HttpDownload.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" comments to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////
================================================
FILE: HttpDownload/stdafx.cpp
================================================
// stdafx.cpp : source file that includes just the standard includes
// HttpDownload.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
================================================
FILE: HttpDownload/stdafx.h
================================================
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here
================================================
FILE: HttpDownload/targetver.h
================================================
#pragma once
// Including SDKDDKVer.h defines the highest available Windows platform.
// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
#include <SDKDDKVer.h>
================================================
FILE: LICENSE
================================================
The MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: Player/AsyncGetUrlUnderMouseCursor.cpp
================================================
#include "stdafx.h"
#include "AsyncGetUrlUnderMouseCursor.h"
namespace {
class CComUsageScope
{
bool m_bInitialized;
public:
explicit CComUsageScope(DWORD dwCoInit = COINIT_MULTITHREADED | COINIT_SPEED_OVER_MEMORY)
{
m_bInitialized = SUCCEEDED(CoInitializeEx(NULL, dwCoInit));
}
~CComUsageScope()
{
if (m_bInitialized)
CoUninitialize();
}
};
bool LinkHandled(const CComPtr<IAccessible>& pacc)
{
VARIANT v;
v.vt = VT_I4;
v.lVal = CHILDID_SELF;
CComVariant vRole;
if (SUCCEEDED(pacc->get_accRole(v, &vRole)) && vRole.vt == VT_I4 && vRole.lVal == ROLE_SYSTEM_LINK)
{
CComBSTR url;
if (SUCCEEDED(pacc->get_accValue(v, &url)) && url != NULL)
{
AfxGetApp()->PostThreadMessage(WM_ON_ASYNC_URL, (WPARAM)url.Detach(), NULL);
return true;
}
}
return false;
}
VOID CALLBACK SendAsyncProc(
HWND,
UINT,
ULONG_PTR dwData,
LRESULT lResult)
{
CComUsageScope scope;
CComPtr<IAccessible> pacc_;
if (FAILED(ObjectFromLresult(lResult, __uuidof(IAccessible), 0, (void**)&pacc_)))
return;
enum { MAX_ITER_NUM = 100 };
POINT ptScreen{ LOWORD(dwData), HIWORD(dwData) };
for (int i = 0; i < 2; ++i)
{
CComPtr<IAccessible> pacc = pacc_;
{
int iter = 0;
CComVariant vtChild;
CComQIPtr<IAccessible> paccChild;
for (; SUCCEEDED(pacc->accHitTest(ptScreen.x, ptScreen.y, &vtChild))
&& VT_DISPATCH == vtChild.vt && (paccChild = vtChild.pdispVal) != NULL;
vtChild.Clear())
{
if (LinkHandled(pacc))
return;
if (iter++ >= MAX_ITER_NUM)
return;
pacc.Attach(paccChild.Detach());
}
}
int iter = 0;
while (pacc)
{
if (LinkHandled(pacc))
return;
if (iter++ >= MAX_ITER_NUM)
return;
CComPtr<IDispatch> spDisp;
if (FAILED(pacc->get_accParent(&spDisp)))
return;
CComQIPtr<IAccessible> spParent(spDisp);
pacc.Attach(spParent.Detach());
}
if (i == 0)
{
::Sleep(100);
}
}
}
} // namespace
void AsyncGetUrlUnderMouseCursor()
{
POINT pt;
if (!GetCursorPos(&pt))
return;
HWND hWnd = WindowFromPoint(pt);
if (NULL == hWnd)
return;
TCHAR szBuffer[64];
const int classNameLength
= ::GetClassName(hWnd, szBuffer, sizeof(szBuffer) / sizeof(szBuffer[0]));
szBuffer[sizeof(szBuffer) / sizeof(szBuffer[0]) - 1] = _T('\0');
if (_tcscmp(szBuffer, _T("MozillaWindowClass")) != 0 && _tcscmp(szBuffer, _T("Chrome_RenderWidgetHostHWND")) != 0)
return;
VERIFY(SendMessageCallback(hWnd, WM_GETOBJECT, 0L, OBJID_CLIENT, SendAsyncProc, MAKELONG(pt.x, pt.y)));
}
================================================
FILE: Player/AsyncGetUrlUnderMouseCursor.h
================================================
#pragma once
enum { WM_ON_ASYNC_URL = 1234 };
void AsyncGetUrlUnderMouseCursor();
================================================
FILE: Player/ByteStreamBuffer.h
================================================
#pragma once
#include <streambuf>
class ByteStreamBuffer: public std::streambuf
{
public:
ByteStreamBuffer(char* base, size_t length)
{
setg(base, base, base + length);
}
protected:
pos_type seekoff( off_type offset,
std::ios_base::seekdir dir,
std::ios_base::openmode ) override
{
char* whence = eback();
if (dir == std::ios_base::cur)
{
whence = gptr();
}
else if (dir == std::ios_base::end)
{
whence = egptr();
}
char* to = whence + offset;
// check limits
if (to >= eback() && to <= egptr())
{
setg(eback(), to, egptr());
return gptr() - eback();
}
return -1;
}
};
================================================
FILE: Player/D3DFONT.CPP
================================================
//-----------------------------------------------------------------------------
// File: D3DFont.cpp
//
// Desc: Texture-based font class
//-----------------------------------------------------------------------------
#include "stdafx.h"
#ifndef STRICT
#define STRICT
#endif
#include <stdio.h>
#include <tchar.h>
//#include <D3DX9.h>
#include "D3DFont.h"
//#include "D3DUtil.h"
//#include "DXUtil.h"
#define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } }
//-----------------------------------------------------------------------------
// Custom vertex types for rendering text
//-----------------------------------------------------------------------------
#define MAX_NUM_VERTICES 50*6
typedef struct D3DXVECTOR3 {
FLOAT x;
FLOAT y;
FLOAT z;
} D3DXVECTOR3, *LPD3DXVECTOR3;
typedef struct D3DXVECTOR4 {
FLOAT x;
FLOAT y;
FLOAT z;
FLOAT w;
} D3DXVECTOR4, *LPD3DXVECTOR4;
struct FONT2DVERTEX { D3DXVECTOR4 p; DWORD color; FLOAT tu, tv; };
struct FONT3DVERTEX { D3DXVECTOR3 p; D3DXVECTOR3 n; FLOAT tu, tv; };
#define D3DFVF_FONT2DVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE|D3DFVF_TEX1)
#define D3DFVF_FONT3DVERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1)
inline FONT2DVERTEX InitFont2DVertex( const D3DXVECTOR4& p, D3DCOLOR color,
FLOAT tu, FLOAT tv )
{
FONT2DVERTEX v; v.p = p; v.color = color; v.tu = tu; v.tv = tv;
return v;
}
inline FONT3DVERTEX InitFont3DVertex( const D3DXVECTOR3& p, const D3DXVECTOR3& n,
FLOAT tu, FLOAT tv )
{
FONT3DVERTEX v; v.p = p; v.n = n; v.tu = tu; v.tv = tv;
return v;
}
//-----------------------------------------------------------------------------
// Name: CD3DFont()
// Desc: Font class constructor
//-----------------------------------------------------------------------------
CD3DFont::CD3DFont( const TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags )
{
_tcsncpy_s( m_strFontName, strFontName, sizeof(m_strFontName) / sizeof(TCHAR) );
m_strFontName[sizeof(m_strFontName) / sizeof(TCHAR) - 1] = _T('\0');
m_dwFontHeight = dwHeight;
m_dwFontFlags = dwFlags;
m_dwSpacing = 0;
m_pd3dDevice = NULL;
m_pTexture = NULL;
m_pVB = NULL;
m_pStateBlockSaved = NULL;
m_pStateBlockDrawText = NULL;
}
//-----------------------------------------------------------------------------
// Name: ~CD3DFont()
// Desc: Font class destructor
//-----------------------------------------------------------------------------
CD3DFont::~CD3DFont()
{
InvalidateDeviceObjects();
DeleteDeviceObjects();
}
//-----------------------------------------------------------------------------
// Name: InitDeviceObjects()
// Desc: Initializes device-dependent objects, including the vertex buffer used
// for rendering text and the texture map which stores the font image.
//-----------------------------------------------------------------------------
HRESULT CD3DFont::InitDeviceObjects( LPDIRECT3DDEVICE9 pd3dDevice )
{
HRESULT hr;
// Keep a local copy of the device
m_pd3dDevice = pd3dDevice;
// Establish the font and texture size
m_fTextScale = 1.0f; // Draw fonts into texture without scaling
// Large fonts need larger textures
if( m_dwFontHeight > 60 )
m_dwTexWidth = m_dwTexHeight = 2048;
else if( m_dwFontHeight > 30 )
m_dwTexWidth = m_dwTexHeight = 1024;
else if( m_dwFontHeight > 15 )
m_dwTexWidth = m_dwTexHeight = 512;
else
m_dwTexWidth = m_dwTexHeight = 256;
// If requested texture is too big, use a smaller texture and smaller font,
// and scale up when rendering.
D3DCAPS9 d3dCaps;
m_pd3dDevice->GetDeviceCaps( &d3dCaps );
if( m_dwTexWidth > d3dCaps.MaxTextureWidth )
{
m_fTextScale = (FLOAT)d3dCaps.MaxTextureWidth / (FLOAT)m_dwTexWidth;
m_dwTexWidth = m_dwTexHeight = d3dCaps.MaxTextureWidth;
}
// Create a new texture for the font
hr = m_pd3dDevice->CreateTexture( m_dwTexWidth, m_dwTexHeight, 1,
0, D3DFMT_A4R4G4B4,
D3DPOOL_MANAGED, &m_pTexture, NULL );
if( FAILED(hr) )
return hr;
// Prepare to create a bitmap
DWORD* pBitmapBits;
BITMAPINFO bmi;
ZeroMemory( &bmi.bmiHeader, sizeof(BITMAPINFOHEADER) );
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = (int)m_dwTexWidth;
bmi.bmiHeader.biHeight = -(int)m_dwTexHeight;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biBitCount = 32;
// Create a DC and a bitmap for the font
HDC hDC = CreateCompatibleDC( NULL );
HBITMAP hbmBitmap = CreateDIBSection( hDC, &bmi, DIB_RGB_COLORS,
(void**)&pBitmapBits, NULL, 0 );
SetMapMode( hDC, MM_TEXT );
// Create a font. By specifying ANTIALIASED_QUALITY, we might get an
// antialiased font, but this is not guaranteed.
INT nHeight = -MulDiv( m_dwFontHeight,
(INT)(GetDeviceCaps(hDC, LOGPIXELSY) * m_fTextScale), 72 );
DWORD dwBold = (m_dwFontFlags&D3DFONT_BOLD) ? FW_BOLD : FW_NORMAL;
DWORD dwItalic = (m_dwFontFlags&D3DFONT_ITALIC) ? TRUE : FALSE;
HFONT hFont = CreateFont( nHeight, 0, 0, 0, dwBold, dwItalic,
FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
VARIABLE_PITCH, m_strFontName );
if (NULL == hFont)
{
DeleteObject(hbmBitmap);
DeleteDC(hDC);
return E_FAIL;
}
HGDIOBJ hbmOld = SelectObject( hDC, hbmBitmap );
HGDIOBJ hFontOld = SelectObject( hDC, hFont );
// Set text properties
SetTextColor( hDC, RGB(255,255,255) );
SetBkColor( hDC, 0x00000000 );
SetTextAlign( hDC, TA_TOP );
// Loop through all printable character and output them to the bitmap..
// Meanwhile, keep track of the corresponding tex coords for each character.
DWORD x = 0;
DWORD y = 0;
TCHAR str[2] = _T("x");
SIZE size;
// Calculate the spacing between characters based on line height
GetTextExtentPoint32( hDC, TEXT(" "), 1, &size );
x = m_dwSpacing = (DWORD) ceil(size.cy * 0.3f);
for( TCHAR c=32; c<127; c++ )
{
str[0] = c;
GetTextExtentPoint32( hDC, str, 1, &size );
if( (DWORD)(x + size.cx + m_dwSpacing) > m_dwTexWidth )
{
x = m_dwSpacing;
y += size.cy+1;
}
ExtTextOut( hDC, x+0, y+0, ETO_OPAQUE, NULL, str, 1, NULL );
m_fTexCoords[c-32][0] = ((FLOAT)(x + 0 - m_dwSpacing))/m_dwTexWidth;
m_fTexCoords[c-32][1] = ((FLOAT)(y + 0 + 0 ))/m_dwTexHeight;
m_fTexCoords[c-32][2] = ((FLOAT)(x + size.cx + m_dwSpacing))/m_dwTexWidth;
m_fTexCoords[c-32][3] = ((FLOAT)(y + size.cy + 0 ))/m_dwTexHeight;
x += size.cx + (2 * m_dwSpacing);
}
// Lock the surface and write the alpha values for the set pixels
D3DLOCKED_RECT d3dlr;
m_pTexture->LockRect( 0, &d3dlr, 0, 0 );
BYTE* pDstRow = (BYTE*)d3dlr.pBits;
for( y=0; y < m_dwTexHeight; y++ )
{
WORD* pDst16 = (WORD*)pDstRow;
for( x=0; x < m_dwTexWidth; x++ )
{
BYTE bAlpha = (BYTE)((pBitmapBits[m_dwTexWidth*y + x] & 0xff) >> 4); // 4-bit measure of pixel intensity
if (bAlpha > 0)
{
*pDst16++ = (WORD) ((bAlpha << 12) | 0x0fff);
}
else
{
*pDst16++ = 0x0000;
}
}
pDstRow += d3dlr.Pitch;
}
// Done updating texture, so clean up used objects
m_pTexture->UnlockRect(0);
SelectObject( hDC, hbmOld );
SelectObject( hDC, hFontOld );
DeleteObject( hbmBitmap );
DeleteObject( hFont );
DeleteDC( hDC );
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: RestoreDeviceObjects()
// Desc:
//-----------------------------------------------------------------------------
HRESULT CD3DFont::RestoreDeviceObjects()
{
HRESULT hr;
// Create vertex buffer for the letters
int vertexSize = max( sizeof(FONT2DVERTEX), sizeof(FONT3DVERTEX ) );
if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer( MAX_NUM_VERTICES * vertexSize,
D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, 0,
D3DPOOL_DEFAULT, &m_pVB, NULL ) ) )
{
return hr;
}
// Create the state blocks for rendering text
for( UINT which=0; which<2; which++ )
{
m_pd3dDevice->BeginStateBlock();
m_pd3dDevice->SetTexture( 0, m_pTexture );
if ( D3DFONT_ZENABLE & m_dwFontFlags )
m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
else
m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
m_pd3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE );
m_pd3dDevice->SetRenderState( D3DRS_ALPHAREF, 0x08 );
m_pd3dDevice->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL );
m_pd3dDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID );
m_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CCW );
m_pd3dDevice->SetRenderState( D3DRS_STENCILENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_CLIPPING, TRUE );
m_pd3dDevice->SetRenderState( D3DRS_CLIPPLANEENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_VERTEXBLEND, D3DVBF_DISABLE );
m_pd3dDevice->SetRenderState( D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_FOGENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_COLORWRITEENABLE,
D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN |
D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_ALPHA );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_DISABLE );
m_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DISABLE );
m_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_NONE );
if( which==0 )
m_pd3dDevice->EndStateBlock( &m_pStateBlockSaved );
else
m_pd3dDevice->EndStateBlock( &m_pStateBlockDrawText );
}
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: InvalidateDeviceObjects()
// Desc: Destroys all device-dependent objects
//-----------------------------------------------------------------------------
HRESULT CD3DFont::InvalidateDeviceObjects()
{
SAFE_RELEASE( m_pVB );
SAFE_RELEASE( m_pStateBlockSaved );
SAFE_RELEASE( m_pStateBlockDrawText );
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: DeleteDeviceObjects()
// Desc: Destroys all device-dependent objects
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DeleteDeviceObjects()
{
SAFE_RELEASE( m_pTexture );
m_pd3dDevice = NULL;
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: GetTextExtent()
// Desc: Get the dimensions of a text string
//-----------------------------------------------------------------------------
HRESULT CD3DFont::GetTextExtent( const TCHAR* strText, SIZE* pSize )
{
if( NULL==strText || NULL==pSize )
return E_FAIL;
FLOAT fRowWidth = 0.0f;
FLOAT fRowHeight = (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight;
FLOAT fWidth = 0.0f;
FLOAT fHeight = fRowHeight;
while( *strText )
{
TCHAR c = *strText++;
if( c == _T('\n') )
{
if (*strText == _T('\0'))
break;
fRowWidth = 0.0f;
fHeight += fRowHeight;
}
if( (c-32) < 0 || (c-32) >= 128-32 )
continue;
FLOAT tx1 = m_fTexCoords[c-32][0];
FLOAT tx2 = m_fTexCoords[c-32][2];
fRowWidth += (tx2-tx1)*m_dwTexWidth - 2*m_dwSpacing;
if( fRowWidth > fWidth )
fWidth = fRowWidth;
}
pSize->cx = (int)fWidth;
pSize->cy = (int)fHeight;
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: DrawTextScaled()
// Desc: Draws scaled 2D text. Note that x and y are in viewport coordinates
// (ranging from -1 to +1). fXScale and fYScale are the size fraction
// relative to the entire viewport. For example, a fXScale of 0.25 is
// 1/8th of the screen width. This allows you to output text at a fixed
// fraction of the viewport, even if the screen or window size changes.
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DrawTextScaled( FLOAT x, FLOAT y, FLOAT z,
FLOAT fXScale, FLOAT fYScale, DWORD dwColor,
const TCHAR* strText, DWORD dwFlags )
{
if( m_pd3dDevice == NULL )
return E_FAIL;
// Set up renderstate
m_pStateBlockSaved->Capture();
m_pStateBlockDrawText->Apply();
m_pd3dDevice->SetFVF( D3DFVF_FONT2DVERTEX );
m_pd3dDevice->SetPixelShader( NULL );
m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(FONT2DVERTEX) );
// Set filter states
if( dwFlags & D3DFONT_FILTERED )
{
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
}
D3DVIEWPORT9 vp;
m_pd3dDevice->GetViewport( &vp );
FLOAT fLineHeight = ( m_fTexCoords[0][3] - m_fTexCoords[0][1] ) * m_dwTexHeight;
// Center the text block in the viewport
if( dwFlags & D3DFONT_CENTERED_X )
{
const TCHAR* strTextTmp = strText;
float xFinal = 0.0f;
while( *strTextTmp )
{
TCHAR c = *strTextTmp++;
if( c == _T('\n') )
break; // Isn't supported.
if( (c-32) < 0 || (c-32) >= 128-32 )
continue;
FLOAT tx1 = m_fTexCoords[c-32][0];
FLOAT tx2 = m_fTexCoords[c-32][2];
FLOAT w = (tx2-tx1)*m_dwTexWidth;
w *= (fXScale*vp.Height)/fLineHeight;
xFinal += w - (2 * m_dwSpacing) * (fXScale*vp.Height)/fLineHeight;
}
x = -xFinal/vp.Width;
}
if( dwFlags & D3DFONT_CENTERED_Y )
{
y = -fLineHeight/vp.Height;
}
FLOAT sx = (x+1.0f)*vp.Width/2;
FLOAT sy = (y+1.0f)*vp.Height/2;
FLOAT sz = z;
FLOAT rhw = 1.0f;
// Adjust for character spacing
sx -= m_dwSpacing * (fXScale*vp.Height)/fLineHeight;
FLOAT fStartX = sx;
// Fill vertex buffer
FONT2DVERTEX* pVertices;
DWORD dwNumTriangles = 0L;
m_pVB->Lock( 0, 0, (void**)&pVertices, D3DLOCK_DISCARD );
while( *strText )
{
TCHAR c = *strText++;
if( c == _T('\n') )
{
sx = fStartX;
sy += fYScale*vp.Height;
}
if( (c-32) < 0 || (c-32) >= 128-32 )
continue;
FLOAT tx1 = m_fTexCoords[c-32][0];
FLOAT ty1 = m_fTexCoords[c-32][1];
FLOAT tx2 = m_fTexCoords[c-32][2];
FLOAT ty2 = m_fTexCoords[c-32][3];
FLOAT w = (tx2-tx1)*m_dwTexWidth;
FLOAT h = (ty2-ty1)*m_dwTexHeight;
w *= (fXScale*vp.Height)/fLineHeight;
h *= (fYScale*vp.Height)/fLineHeight;
if( c != _T(' ') )
{
*pVertices++ = InitFont2DVertex({ sx + 0 - 0.5f, sy + h - 0.5f, sz, rhw }, dwColor, tx1, ty2);
*pVertices++ = InitFont2DVertex({ sx + 0 - 0.5f, sy + 0 - 0.5f, sz, rhw }, dwColor, tx1, ty1);
*pVertices++ = InitFont2DVertex({ sx + w - 0.5f, sy + h - 0.5f, sz, rhw }, dwColor, tx2, ty2);
*pVertices++ = InitFont2DVertex({ sx + w - 0.5f, sy + 0 - 0.5f, sz, rhw }, dwColor, tx2, ty1);
*pVertices++ = InitFont2DVertex({ sx + w - 0.5f, sy + h - 0.5f, sz, rhw }, dwColor, tx2, ty2);
*pVertices++ = InitFont2DVertex({ sx + 0 - 0.5f, sy + 0 - 0.5f, sz, rhw }, dwColor, tx1, ty1);
dwNumTriangles += 2;
if( dwNumTriangles*3 > (MAX_NUM_VERTICES-6) )
{
// Unlock, render, and relock the vertex buffer
m_pVB->Unlock();
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
m_pVB->Lock( 0, 0, (void**)&pVertices, D3DLOCK_DISCARD );
dwNumTriangles = 0L;
}
}
sx += w - (2 * m_dwSpacing) * (fXScale*vp.Height)/fLineHeight;
}
// Unlock and render the vertex buffer
m_pVB->Unlock();
if( dwNumTriangles > 0 )
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
// Restore the modified renderstates
m_pStateBlockSaved->Apply();
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: DrawText()
// Desc: Draws 2D text. Note that sx and sy are in pixels
//-----------------------------------------------------------------------------
HRESULT CD3DFont::DrawText( FLOAT sx, FLOAT sy, DWORD dwColor,
const TCHAR* strText, DWORD dwFlags )
{
if( m_pd3dDevice == NULL )
return E_FAIL;
// Setup renderstate
m_pStateBlockSaved->Capture();
m_pStateBlockDrawText->Apply();
m_pd3dDevice->SetFVF( D3DFVF_FONT2DVERTEX );
m_pd3dDevice->SetPixelShader( NULL );
m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(FONT2DVERTEX) );
// Set filter states
if( dwFlags & D3DFONT_FILTERED )
{
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
}
// Center the text block in the viewport
if( dwFlags & D3DFONT_CENTERED_X )
{
D3DVIEWPORT9 vp;
m_pd3dDevice->GetViewport( &vp );
const TCHAR* strTextTmp = strText;
float xFinal = 0.0f;
while( *strTextTmp )
{
TCHAR c = *strTextTmp++;
if( c == _T('\n') )
break; // Isn't supported.
if( (c-32) < 0 || (c-32) >= 128-32 )
continue;
FLOAT tx1 = m_fTexCoords[c-32][0];
FLOAT tx2 = m_fTexCoords[c-32][2];
FLOAT w = (tx2-tx1) * m_dwTexWidth / m_fTextScale;
xFinal += w - (2 * m_dwSpacing);
}
sx = (vp.Width-xFinal)/2.0f;
}
if( dwFlags & D3DFONT_CENTERED_Y )
{
D3DVIEWPORT9 vp;
m_pd3dDevice->GetViewport( &vp );
float fLineHeight = ((m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight);
sy = (vp.Height-fLineHeight)/2;
}
// Adjust for character spacing
sx -= m_dwSpacing;
FLOAT fStartX = sx;
// Fill vertex buffer
FONT2DVERTEX* pVertices = NULL;
DWORD dwNumTriangles = 0;
m_pVB->Lock( 0, 0, (void**)&pVertices, D3DLOCK_DISCARD );
while( *strText )
{
TCHAR c = *strText++;
if( c == _T('\n') )
{
sx = fStartX;
sy += (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight;
}
if( (c-32) < 0 || (c-32) >= 128-32 )
continue;
FLOAT tx1 = m_fTexCoords[c-32][0];
FLOAT ty1 = m_fTexCoords[c-32][1];
FLOAT tx2 = m_fTexCoords[c-32][2];
FLOAT ty2 = m_fTexCoords[c-32][3];
FLOAT w = (tx2-tx1) * m_dwTexWidth / m_fTextScale;
FLOAT h = (ty2-ty1) * m_dwTexHeight / m_fTextScale;
if( c != _T(' ') )
{
*pVertices++ = InitFont2DVertex({ sx + 0 - 0.5f, sy + h - 0.5f, 0.9f, 1.0f }, dwColor, tx1, ty2);
*pVertices++ = InitFont2DVertex({ sx + 0 - 0.5f, sy + 0 - 0.5f, 0.9f, 1.0f }, dwColor, tx1, ty1);
*pVertices++ = InitFont2DVertex({ sx + w - 0.5f, sy + h - 0.5f, 0.9f, 1.0f }, dwColor, tx2, ty2);
*pVertices++ = InitFont2DVertex({ sx + w - 0.5f, sy + 0 - 0.5f, 0.9f, 1.0f }, dwColor, tx2, ty1);
*pVertices++ = InitFont2DVertex({ sx + w - 0.5f, sy + h - 0.5f, 0.9f, 1.0f }, dwColor, tx2, ty2);
*pVertices++ = InitFont2DVertex({ sx + 0 - 0.5f, sy + 0 - 0.5f, 0.9f, 1.0f }, dwColor, tx1, ty1);
dwNumTriangles += 2;
if( dwNumTriangles*3 > (MAX_NUM_VERTICES-6) )
{
// Unlock, render, and relock the vertex buffer
m_pVB->Unlock();
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
pVertices = NULL;
m_pVB->Lock( 0, 0, (void**)&pVertices, D3DLOCK_DISCARD );
dwNumTriangles = 0L;
}
}
sx += w - (2 * m_dwSpacing);
}
// Unlock and render the vertex buffer
m_pVB->Unlock();
if( dwNumTriangles > 0 )
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
// Restore the modified renderstates
m_pStateBlockSaved->Apply();
return S_OK;
}
//-----------------------------------------------------------------------------
// Name: Render3DText()
// Desc: Renders 3D text
//-----------------------------------------------------------------------------
HRESULT CD3DFont::Render3DText( const TCHAR* strText, DWORD dwFlags )
{
if( m_pd3dDevice == NULL )
return E_FAIL;
// Setup renderstate
m_pStateBlockSaved->Capture();
m_pStateBlockDrawText->Apply();
m_pd3dDevice->SetFVF( D3DFVF_FONT3DVERTEX );
m_pd3dDevice->SetPixelShader( NULL );
m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(FONT3DVERTEX) );
// Set filter states
if( dwFlags & D3DFONT_FILTERED )
{
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
}
// Position for each text element
FLOAT x = 0.0f;
FLOAT y = 0.0f;
// Center the text block at the origin (not the viewport)
if( dwFlags & D3DFONT_CENTERED_X )
{
SIZE sz;
GetTextExtent( strText, &sz );
x = -(((FLOAT)sz.cx)/10.0f)/2.0f;
}
if( dwFlags & D3DFONT_CENTERED_Y )
{
SIZE sz;
GetTextExtent( strText, &sz );
y = -(((FLOAT)sz.cy)/10.0f)/2.0f;
}
// Turn off culling for two-sided text
if( dwFlags & D3DFONT_TWOSIDED )
m_pd3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
// Adjust for character spacing
x -= m_dwSpacing / 10.0f;
FLOAT fStartX = x;
TCHAR c;
// Fill vertex buffer
FONT3DVERTEX* pVertices;
DWORD dwNumTriangles = 0L;
m_pVB->Lock( 0, 0, (void**)&pVertices, D3DLOCK_DISCARD );
while( (c = *strText++) != 0 )
{
if( c == '\n' )
{
x = fStartX;
y -= (m_fTexCoords[0][3]-m_fTexCoords[0][1])*m_dwTexHeight/10.0f;
}
if( (c-32) < 0 || (c-32) >= 128-32 )
continue;
FLOAT tx1 = m_fTexCoords[c-32][0];
FLOAT ty1 = m_fTexCoords[c-32][1];
FLOAT tx2 = m_fTexCoords[c-32][2];
FLOAT ty2 = m_fTexCoords[c-32][3];
FLOAT w = (tx2-tx1) * m_dwTexWidth / ( 10.0f * m_fTextScale );
FLOAT h = (ty2-ty1) * m_dwTexHeight / ( 10.0f * m_fTextScale );
if( c != _T(' ') )
{
*pVertices++ = InitFont3DVertex({ x + 0, y + 0, 0 }, { 0, 0, -1 }, tx1, ty2);
*pVertices++ = InitFont3DVertex({ x + 0, y + h, 0 }, { 0, 0, -1 }, tx1, ty1);
*pVertices++ = InitFont3DVertex({ x + w, y + 0, 0 }, { 0, 0, -1 }, tx2, ty2);
*pVertices++ = InitFont3DVertex({ x + w, y + h, 0 }, { 0, 0, -1 }, tx2, ty1);
*pVertices++ = InitFont3DVertex({ x + w, y + 0, 0 }, { 0, 0, -1 }, tx2, ty2);
*pVertices++ = InitFont3DVertex({ x + 0, y + h, 0 }, { 0, 0, -1 }, tx1, ty1);
dwNumTriangles += 2;
if( dwNumTriangles*3 > (MAX_NUM_VERTICES-6) )
{
// Unlock, render, and relock the vertex buffer
m_pVB->Unlock();
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
m_pVB->Lock( 0, 0, (void**)&pVertices, D3DLOCK_DISCARD );
dwNumTriangles = 0L;
}
}
x += w - (2 * m_dwSpacing) / 10.0f;
}
// Unlock and render the vertex buffer
m_pVB->Unlock();
if( dwNumTriangles > 0 )
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, dwNumTriangles );
// Restore the modified renderstates
m_pStateBlockSaved->Apply();
return S_OK;
}
================================================
FILE: Player/D3DFONT.H
================================================
//-----------------------------------------------------------------------------
// File: D3DFont.h
//
// Desc: Texture-based font class
//-----------------------------------------------------------------------------
#ifndef D3DFONT_H
#define D3DFONT_H
#include <tchar.h>
#include <D3D9.h>
// Font creation flags
#define D3DFONT_BOLD 0x0001
#define D3DFONT_ITALIC 0x0002
#define D3DFONT_ZENABLE 0x0004
// Font rendering flags
#define D3DFONT_CENTERED_X 0x0001
#define D3DFONT_CENTERED_Y 0x0002
#define D3DFONT_TWOSIDED 0x0004
#define D3DFONT_FILTERED 0x0008
//-----------------------------------------------------------------------------
// Name: class CD3DFont
// Desc: Texture-based font class for doing text in a 3D scene.
//-----------------------------------------------------------------------------
class CD3DFont
{
TCHAR m_strFontName[80]; // Font properties
DWORD m_dwFontHeight;
DWORD m_dwFontFlags;
LPDIRECT3DDEVICE9 m_pd3dDevice; // A D3DDevice used for rendering
LPDIRECT3DTEXTURE9 m_pTexture; // The d3d texture for this font
LPDIRECT3DVERTEXBUFFER9 m_pVB; // VertexBuffer for rendering text
DWORD m_dwTexWidth {}; // Texture dimensions
DWORD m_dwTexHeight {};
FLOAT m_fTextScale {};
FLOAT m_fTexCoords[128 - 32][4] {};
DWORD m_dwSpacing; // Character pixel spacing per side
// Stateblocks for setting and restoring render states
LPDIRECT3DSTATEBLOCK9 m_pStateBlockSaved;
LPDIRECT3DSTATEBLOCK9 m_pStateBlockDrawText;
public:
// 2D and 3D text drawing functions
HRESULT DrawText( FLOAT x, FLOAT y, DWORD dwColor,
const TCHAR* strText, DWORD dwFlags=0L );
HRESULT DrawTextScaled( FLOAT x, FLOAT y, FLOAT z,
FLOAT fXScale, FLOAT fYScale, DWORD dwColor,
const TCHAR* strText, DWORD dwFlags=0L );
HRESULT Render3DText( const TCHAR* strText, DWORD dwFlags=0L );
// Function to get extent of text
HRESULT GetTextExtent( const TCHAR* strText, SIZE* pSize );
// Initializing and destroying device-dependent objects
HRESULT InitDeviceObjects( LPDIRECT3DDEVICE9 pd3dDevice );
HRESULT RestoreDeviceObjects();
HRESULT InvalidateDeviceObjects();
HRESULT DeleteDeviceObjects();
// Constructor / destructor
CD3DFont( const TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags=0L );
~CD3DFont();
};
#endif
================================================
FILE: Player/DialogBarPlayerControl.cpp
================================================
// DialogBarPlayerControl.cpp : implementation file
//
#include "stdafx.h"
#include "Player.h"
#include "DialogBarPlayerControl.h"
#include "MainFrm.h"
#include "PlayerDoc.h"
#include "MakeDelegate.h"
#include "SecondsToString.h"
#include <algorithm>
#include <string>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
enum { RANGE_MAX = 0x7FFF };
enum { WM_SET_TIME = WM_USER + 101 };
namespace {
HICON LoadIcon(int idr, int iconSize)
{
return (HICON) LoadImage(
AfxGetApp()->m_hInstance,
MAKEINTRESOURCE(idr),
IMAGE_ICON,
iconSize, iconSize, // use actual size
LR_DEFAULTCOLOR);
}
double GetValueByMouseClick(CWnd* pDlg, CSliderCtrl* pSliderCtrl)
{
CRect rectClient, rectChannel, rectThumb;
pDlg->GetClientRect(rectClient);
pSliderCtrl->GetChannelRect(rectChannel);
pSliderCtrl->GetThumbRect(rectThumb);
rectChannel.DeflateRect(rectThumb.Width() / 2, 0);
CPoint mousePt(AfxGetCurrentMessage()->pt);
pSliderCtrl->ScreenToClient(&mousePt);
return std::clamp(
double(mousePt.x - rectClient.left - rectChannel.left) /
(rectChannel.right - rectChannel.left),
0., 1.);
}
}
// CDialogBarPlayerControl
IMPLEMENT_DYNAMIC(CDialogBarPlayerControl, CPaneDialog)
CDialogBarPlayerControl::CDialogBarPlayerControl()
: m_pDoc(nullptr)
, m_hPlay(NULL)
, m_hPause(NULL)
, m_hAudio(NULL)
, m_hAudioOff(NULL)
, m_hFullScreen(NULL)
, m_savedVolume(0)
, m_oldTotalTime(-1) // unset
, m_oldCurrentTime(-1) // unset
, m_tracking(false)
, m_selStart(0)
, m_selEnd(RANGE_MAX)
{
CDialogTemplate dlgtemplate;
if (dlgtemplate.Load(MAKEINTRESOURCE(IDD)))
{
CSize size;
dlgtemplate.GetSizeInPixels(&size);
SetMinSize(size);
}
}
CDialogBarPlayerControl::~CDialogBarPlayerControl()
{
onDocDetaching();
}
void CDialogBarPlayerControl::onDocDetaching()
{
if (m_pDoc)
{
m_pDoc->framePositionChanged.disconnect(MAKE_DELEGATE(&CDialogBarPlayerControl::onFramePositionChanged, this));
m_pDoc->totalTimeUpdated.disconnect(MAKE_DELEGATE(&CDialogBarPlayerControl::onTotalTimeUpdated, this));
m_pDoc->currentTimeUpdated.disconnect(MAKE_DELEGATE(&CDialogBarPlayerControl::onCurrentTimeUpdated, this));
m_pDoc->rangeStartTimeChanged.disconnect(MAKE_DELEGATE(&CDialogBarPlayerControl::onRangeStartTimeChanged, this));
m_pDoc->rangeEndTimeChanged.disconnect(MAKE_DELEGATE(&CDialogBarPlayerControl::onRangeEndTimeChanged, this));
m_pDoc->onDestructing.disconnect(MAKE_DELEGATE(&CDialogBarPlayerControl::onDocDetaching, this));
m_pDoc = nullptr;
}
}
void CDialogBarPlayerControl::DoDataExchange(CDataExchange* pDX)
{
__super::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDialogBarPlayerControl)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_PROGRESS_SLIDER, m_progressSlider);
DDX_Control(pDX, IDC_VOLUME_SLIDER, m_volumeSlider);
}
BEGIN_MESSAGE_MAP(CDialogBarPlayerControl, CPaneDialog)
ON_WM_HSCROLL()
ON_UPDATE_COMMAND_UI(IDC_PLAY_PAUSE, &CDialogBarPlayerControl::OnUpdatePlayPause)
ON_UPDATE_COMMAND_UI(IDC_AUDIO_ON_OFF, &CDialogBarPlayerControl::OnUpdateAudioOnOff)
ON_BN_CLICKED(IDC_PLAY_PAUSE, &CDialogBarPlayerControl::OnClickedPlayPause)
ON_BN_CLICKED(IDC_AUDIO_ON_OFF, &CDialogBarPlayerControl::OnClickedAudioOnOff)
ON_MESSAGE(WM_SET_TIME, &CDialogBarPlayerControl::OnSetTime)
ON_MESSAGE(WM_INITDIALOG, &CDialogBarPlayerControl::HandleInitDialog)
ON_UPDATE_COMMAND_UI(IDC_FRAME_STEP, &CDialogBarPlayerControl::OnUpdateFrameStep)
ON_UPDATE_COMMAND_UI(IDC_VOLUME_SLIDER, &CDialogBarPlayerControl::OnUpdateVolumeSlider)
ON_UPDATE_COMMAND_UI(IDC_CURRENT_TIME, &CDialogBarPlayerControl::OnUpdateCurrentTime)
END_MESSAGE_MAP()
// CDialogBarPlayerControl message handlers
LRESULT CDialogBarPlayerControl::HandleInitDialog(WPARAM wParam, LPARAM lParam)
{
__super::HandleInitDialog(wParam, lParam);
CRect btnRect;
GetDlgItem(IDC_PLAY_PAUSE)->GetClientRect(btnRect);
const int iconSizeLimit = min(btnRect.Width() - 2 * GetSystemMetrics(SM_CXBORDER),
btnRect.Height() - 2 * GetSystemMetrics(SM_CYBORDER)) * 4 / 5;
const int iconSize = min(iconSizeLimit & ((iconSizeLimit > 32)? ~15 : ~7), 48);
m_hPlay = LoadIcon(IDI_PLAY, iconSize);
m_hPause = LoadIcon(IDI_PAUSE, iconSize);
m_hAudio = LoadIcon(IDI_AUDIO, iconSize);
m_hAudioOff = LoadIcon(IDI_AUDIO_OFF, iconSize);
m_hFullScreen = LoadIcon(IDI_FULL_SCREEN, iconSize);
static_cast<CButton*>(GetDlgItem(IDC_PLAY_PAUSE))->SetIcon(m_hPlay);
static_cast<CButton*>(GetDlgItem(IDC_AUDIO_ON_OFF))->SetIcon(m_hAudio);
static_cast<CButton*>(GetDlgItem(IDC_FULL_SCREEN))->SetIcon(m_hFullScreen);
m_progressSlider.SetRange(0, RANGE_MAX);
m_progressSlider.SetPageSize(0);
m_progressSlider.ModifyStyle(0, TBS_ENABLESELRANGE);
m_volumeSlider.SetRange(0, RANGE_MAX);
m_volumeSlider.SetPos(RANGE_MAX);
m_volumeSlider.SetPageSize(0);
return TRUE;
}
void CDialogBarPlayerControl::setDocument(CPlayerDoc* pDoc)
{
ASSERT(!m_pDoc);
m_pDoc = pDoc;
m_volumeSlider.SetPos(int(RANGE_MAX * pDoc->soundVolume()));
m_pDoc->framePositionChanged.connect(MAKE_DELEGATE(&CDialogBarPlayerControl::onFramePositionChanged, this));
m_pDoc->totalTimeUpdated.connect(MAKE_DELEGATE(&CDialogBarPlayerControl::onTotalTimeUpdated, this));
m_pDoc->currentTimeUpdated.connect(MAKE_DELEGATE(&CDialogBarPlayerControl::onCurrentTimeUpdated, this));
m_pDoc->rangeStartTimeChanged.connect(MAKE_DELEGATE(&CDialogBarPlayerControl::onRangeStartTimeChanged, this));
m_pDoc->rangeEndTimeChanged.connect(MAKE_DELEGATE(&CDialogBarPlayerControl::onRangeEndTimeChanged, this));
m_pDoc->onDestructing.connect(MAKE_DELEGATE(&CDialogBarPlayerControl::onDocDetaching, this));
}
void CDialogBarPlayerControl::onFramePositionChanged(long long frame, long long total)
{
if (!m_tracking)
{
ASSERT(total >= 0);
const int pos = (total > 0)? int((frame * RANGE_MAX) / total) : 0;
m_progressSlider.SendNotifyMessage(TBM_SETPOS, TRUE, pos);
}
}
enum { MIN_SEL_WIDTH = 50 };
void CDialogBarPlayerControl::onRangeStartTimeChanged(long long frame, long long total)
{
ASSERT(total >= 0);
const int pos = (total > 0) ? int((frame * (RANGE_MAX - MIN_SEL_WIDTH)) / total) : 0;
m_selStart = pos;
m_progressSlider.SendNotifyMessage(TBM_SETSEL, TRUE, MAKELPARAM(pos, m_selEnd));
}
void CDialogBarPlayerControl::onRangeEndTimeChanged(long long frame, long long total)
{
ASSERT(total >= 0);
const int pos = (total > 0) ? int((frame * (RANGE_MAX - MIN_SEL_WIDTH)) / total) + MIN_SEL_WIDTH : 0;
m_selEnd = pos;
m_progressSlider.SendNotifyMessage(TBM_SETSEL, TRUE, MAKELPARAM(m_selStart, pos));
}
void CDialogBarPlayerControl::onTotalTimeUpdated(double secs)
{
int totalTime = int(secs * 1000);
if (totalTime == m_oldTotalTime)
return;
m_oldTotalTime = totalTime;
SendNotifyMessage(WM_SET_TIME, IDC_TOTAL_TIME, totalTime);
}
void CDialogBarPlayerControl::onCurrentTimeUpdated(double secs)
{
int currentTime = int(secs * 1000);
const bool notify = (currentTime / 1000 != m_oldCurrentTime / 1000) ||
m_pDoc && m_pDoc->isPaused() && currentTime != m_oldCurrentTime;
m_oldCurrentTime = currentTime;
if (notify)
SendNotifyMessage(WM_SET_TIME, IDC_CURRENT_TIME, currentTime);
}
LRESULT CDialogBarPlayerControl::OnSetTime(WPARAM wParam, LPARAM lParam)
{
const bool milli = wParam == IDC_CURRENT_TIME && m_pDoc && m_pDoc->isPaused();
SetDlgItemText(wParam, secondsToString(lParam, milli).c_str());
return 0;
}
void CDialogBarPlayerControl::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
if (m_pDoc)
{
if (static_cast<CWnd*>(pScrollBar) == &m_progressSlider)
{
switch (nSBCode)
{
case SB_LINELEFT:
if (m_pDoc->isPaused())
{
m_pDoc->prevFrame();
}
break;
case SB_LINERIGHT:
if (m_pDoc->isPaused())
{
m_pDoc->nextFrame();
}
break;
case SB_PAGELEFT:
case SB_PAGERIGHT:
m_pDoc->seekByPercent(GetValueByMouseClick(this, &m_progressSlider));
break;
case SB_THUMBTRACK:
m_pDoc->seekByPercent(m_progressSlider.GetPos() / double(RANGE_MAX));
m_tracking = true;
break;
case SB_RIGHT:
m_pDoc->seekToEnd();
break;
case SB_ENDSCROLL:
m_tracking = false;
break;
}
}
else if (static_cast<CWnd*>(pScrollBar) == &m_volumeSlider)
{
if (nSBCode == SB_PAGELEFT || nSBCode == SB_PAGERIGHT)
{
const double valueByMouseClick = GetValueByMouseClick(this, &m_volumeSlider);
m_volumeSlider.SetPos(int(valueByMouseClick * RANGE_MAX));
m_pDoc->setVolume(valueByMouseClick);
}
else
{
m_pDoc->setVolume(m_volumeSlider.GetPos() / double(RANGE_MAX));
}
}
}
__super::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CDialogBarPlayerControl::OnUpdatePlayPause(CCmdUI *pCmdUI)
{
if (m_pDoc)
{
pCmdUI->Enable(m_pDoc->isPlaying());
if (pCmdUI->m_pOther)
{
static_cast<CButton*>(pCmdUI->m_pOther)->SetIcon(
m_pDoc->isPaused() ? m_hPlay : m_hPause);
}
}
}
void CDialogBarPlayerControl::OnUpdateAudioOnOff(CCmdUI *pCmdUI)
{
if (m_pDoc)
{
pCmdUI->Enable(m_pDoc->isPlaying());
if (pCmdUI->m_pOther)
{
static_cast<CButton*>(pCmdUI->m_pOther)->SetIcon(
(m_volumeSlider.GetPos() > 0) ? m_hAudio : m_hAudioOff);
}
}
}
void CDialogBarPlayerControl::OnClickedPlayPause()
{
if (m_pDoc)
{
if (m_pDoc->isPaused() && IsDlgButtonChecked(IDC_FRAME_STEP))
{
if (GetKeyState(VK_SHIFT) < 0)
m_pDoc->prevFrame();
else
m_pDoc->nextFrame();
}
else
{
m_pDoc->pauseResume();
}
}
}
void CDialogBarPlayerControl::OnClickedAudioOnOff()
{
int newVolume;
if (m_savedVolume)
{
newVolume = m_savedVolume;
m_savedVolume = 0;
}
else
{
m_savedVolume = m_volumeSlider.GetPos();
newVolume = 0;
}
m_volumeSlider.SetPos(newVolume);
m_pDoc->setVolume(newVolume / double(RANGE_MAX));
}
void CDialogBarPlayerControl::OnUpdateFrameStep(CCmdUI *pCmdUI)
{
if (pCmdUI->m_pOther)
{
pCmdUI->m_pOther->ShowWindow(
(m_pDoc && m_pDoc->isPaused()) ? SW_SHOWNA : SW_HIDE);
}
}
void CDialogBarPlayerControl::OnUpdateVolumeSlider(CCmdUI *pCmdUI)
{
if (pCmdUI->m_pOther)
{
pCmdUI->m_pOther->ShowWindow(
(m_pDoc && m_pDoc->isPaused()) ? SW_HIDE : SW_SHOWNA);
}
}
void CDialogBarPlayerControl::OnUpdateCurrentTime(CCmdUI* pCmdUI)
{
if (pCmdUI->m_pOther && m_pDoc && m_pDoc->isPaused())
{
pCmdUI->m_pOther->SetWindowText(secondsToString(m_oldCurrentTime, true).c_str());
}
}
================================================
FILE: Player/DialogBarPlayerControl.h
================================================
#pragma once
#include "afxcmn.h"
class CPlayerDoc;
// CDialogBarPlayerControl
class CDialogBarPlayerControl
: public CPaneDialog
{
DECLARE_DYNAMIC(CDialogBarPlayerControl)
public:
CDialogBarPlayerControl();
virtual ~CDialogBarPlayerControl();
// Dialog Data
//{{AFX_DATA(CDialogBarPlayerControl)
enum { IDD = IDD_DIALOGBAR_PLAYER_CONTROL };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
void setDocument(CPlayerDoc* pDoc);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDialogBarPlayerControl)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
int GetCaptionHeight() const override { return 0; }
void onFramePositionChanged(long long frame, long long total);
void onTotalTimeUpdated(double secs);
void onCurrentTimeUpdated(double secs);
void onRangeStartTimeChanged(long long frame, long long total);
void onRangeEndTimeChanged(long long frame, long long total);
void onDocDetaching();
protected:
DECLARE_MESSAGE_MAP()
afx_msg LRESULT HandleInitDialog(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnSetTime(WPARAM wParam, LPARAM lParam);
public:
private:
CPlayerDoc* m_pDoc;
HICON m_hPlay;
HICON m_hPause;
HICON m_hAudio;
HICON m_hAudioOff;
HICON m_hFullScreen;
int m_savedVolume;
volatile int m_oldTotalTime;
volatile int m_oldCurrentTime;
bool m_tracking;
int m_selStart;
int m_selEnd;
public:
CSliderCtrl m_progressSlider;
CSliderCtrl m_volumeSlider;
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnUpdatePlayPause(CCmdUI *pCmdUI);
afx_msg void OnUpdateAudioOnOff(CCmdUI *pCmdUI);
afx_msg void OnClickedPlayPause();
afx_msg void OnClickedAudioOnOff();
afx_msg void OnUpdateFrameStep(CCmdUI *pCmdUI);
afx_msg void OnUpdateVolumeSlider(CCmdUI *pCmdUI);
afx_msg void OnUpdateCurrentTime(CCmdUI *pCmdUI);
};
================================================
FILE: Player/DialogBarRange.cpp
================================================
// DialogBarRange.cpp : implementation file
//
#include "stdafx.h"
#include "Player.h"
#include "DialogBarRange.h"
#include "PlayerDoc.h"
#include "MakeDelegate.h"
const WCHAR szwReset[] = { 0x29BB, 0 };
// CDialogBarRange
IMPLEMENT_DYNAMIC(CDialogBarRange, CPaneDialog)
CDialogBarRange::CDialogBarRange()
: m_pDoc(nullptr)
{
CDialogTemplate dlgtemplate;
if (dlgtemplate.Load(MAKEINTRESOURCE(IDD)))
{
CSize size;
dlgtemplate.GetSizeInPixels(&size);
SetMinSize(size);
}
}
CDialogBarRange::~CDialogBarRange()
{
onDocDetaching();
}
void CDialogBarRange::onDocDetaching()
{
if (m_pDoc)
{
m_pDoc->totalTimeUpdated.disconnect(MAKE_DELEGATE(&CDialogBarRange::onTotalTimeUpdated, this));
m_pDoc->onDestructing.disconnect(MAKE_DELEGATE(&CDialogBarRange::onDocDetaching, this));
m_pDoc = nullptr;
}
}
void CDialogBarRange::setDocument(CPlayerDoc* pDoc)
{
ASSERT(!m_pDoc);
m_pDoc = pDoc;
m_pDoc->totalTimeUpdated.connect(MAKE_DELEGATE(&CDialogBarRange::onTotalTimeUpdated, this));
m_pDoc->onDestructing.connect(MAKE_DELEGATE(&CDialogBarRange::onDocDetaching, this));
}
void CDialogBarRange::DoDataExchange(CDataExchange* pDX)
{
__super::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDialogBarRange)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_EDIT_START, m_startTime);
DDX_Control(pDX, IDC_EDIT_END, m_endTime);
}
BEGIN_MESSAGE_MAP(CDialogBarRange, CPaneDialog)
ON_COMMAND(IDC_START, &CDialogBarRange::OnStart)
ON_COMMAND(IDC_START_RESET, &CDialogBarRange::OnStartReset)
ON_COMMAND(IDC_END, &CDialogBarRange::OnEnd)
ON_COMMAND(IDC_END_RESET, &CDialogBarRange::OnEndReset)
ON_UPDATE_COMMAND_UI(IDC_START, &CDialogBarRange::OnUpdateStart)
ON_UPDATE_COMMAND_UI(IDC_START_RESET, &CDialogBarRange::OnUpdateStartReset)
ON_UPDATE_COMMAND_UI(IDC_END, &CDialogBarRange::OnUpdateEnd)
ON_UPDATE_COMMAND_UI(IDC_END_RESET, &CDialogBarRange::OnUpdateEndReset)
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_COPY_AS, &CDialogBarRange::OnUpdateSave)
ON_EN_CHANGE(IDC_EDIT_START, &CDialogBarRange::OnChangeStart)
ON_EN_CHANGE(IDC_EDIT_END, &CDialogBarRange::OnChangeEnd)
ON_BN_CLICKED(IDC_LOSSLESS_CUT, &CDialogBarRange::OnBnClickedLosslessCut)
ON_MESSAGE(WM_INITDIALOG, &CDialogBarRange::HandleInitDialog)
END_MESSAGE_MAP()
LRESULT CDialogBarRange::HandleInitDialog(WPARAM wParam, LPARAM lParam)
{
__super::HandleInitDialog(wParam, lParam);
if (auto control = static_cast<CButton*>(GetDlgItem(IDC_LOSSLESS_CUT)))
{
control->SetCheck(BST_CHECKED);
}
CRect rect(0, 0, 12, 12);
MapDialogRect(*this, &rect);
// Create the font with the calculated size
m_font.CreateFont(
rect.Height(), // Height
0, // Width
0, // Escapement
0, // Orientation
FW_MEDIUM, // Weight
FALSE, // Italic
FALSE, // Underline
0, // StrikeOut
ANSI_CHARSET, // CharSet
OUT_DEFAULT_PRECIS, // OutPrecision
CLIP_DEFAULT_PRECIS, // ClipPrecision
DEFAULT_QUALITY, // Quality
DEFAULT_PITCH | FF_SWISS, // PitchAndFamily
_T("Arial")); // Facename
for (auto id : {IDC_START_RESET, IDC_END_RESET})
{
if (auto control = static_cast<CButton*>(GetDlgItem(id)))
{
control->SetFont(&m_font);
control->SetWindowText(szwReset);
}
}
return TRUE;
}
void CDialogBarRange::onTotalTimeUpdated(double)
{
m_startTime.Reset();
m_endTime.Reset();
}
// CDialogBarRange message handlers
void CDialogBarRange::OnStart()
{
const double currentTime = m_pDoc->getCurrentTime();
m_pDoc->setRangeStartTime(currentTime);
m_startTime.SetValue(currentTime);
}
void CDialogBarRange::OnStartReset()
{
m_pDoc->setRangeStartTime(m_pDoc->getStartTime());
m_startTime.Reset();
}
void CDialogBarRange::OnEnd()
{
const double currentTime = m_pDoc->getCurrentTime();
m_pDoc->setRangeEndTime(currentTime);
m_endTime.SetValue(currentTime);
}
void CDialogBarRange::OnEndReset()
{
m_pDoc->setRangeEndTime(m_pDoc->getEndTime());
m_endTime.Reset();
}
void CDialogBarRange::OnUpdateStart(CCmdUI *pCmdUI)
{
pCmdUI->Enable(m_pDoc->isPlaying());
}
void CDialogBarRange::OnUpdateStartReset(CCmdUI *pCmdUI)
{
pCmdUI->Enable(m_pDoc->isPlaying());
}
void CDialogBarRange::OnUpdateEnd(CCmdUI *pCmdUI)
{
pCmdUI->Enable(m_pDoc->isPlaying());
}
void CDialogBarRange::OnUpdateEndReset(CCmdUI *pCmdUI)
{
pCmdUI->Enable(m_pDoc->isPlaying());
}
void CDialogBarRange::OnUpdateSave(CCmdUI *pCmdUI)
{
pCmdUI->Enable(m_pDoc->isPlaying());
}
void CDialogBarRange::OnChangeStart()
{
m_pDoc->setRangeStartTime(
m_startTime.IsEmpty()? m_pDoc->getStartTime() : m_startTime.GetValue());
}
void CDialogBarRange::OnChangeEnd()
{
m_pDoc->setRangeEndTime(
m_endTime.IsEmpty()? m_pDoc->getEndTime() : m_endTime.GetValue());
}
void CDialogBarRange::OnBnClickedLosslessCut()
{
if (auto control = static_cast<CButton*>(GetDlgItem(IDC_LOSSLESS_CUT)))
{
m_pDoc->setLosslessCut(control->GetCheck() != BST_UNCHECKED);
}
}
================================================
FILE: Player/DialogBarRange.h
================================================
#pragma once
#include "EditTime.h"
class CPlayerDoc;
// CDialogBarRange
class CDialogBarRange : public CPaneDialog
{
DECLARE_DYNAMIC(CDialogBarRange)
public:
CDialogBarRange();
virtual ~CDialogBarRange();
enum { IDD = IDD_DIALOGBAR_RANGE };
void setDocument(CPlayerDoc* pDoc);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDialogBarPlayerControl)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
protected:
int GetCaptionHeight() const override { return 0; }
void onTotalTimeUpdated(double secs);
void onDocDetaching();
protected:
DECLARE_MESSAGE_MAP()
afx_msg LRESULT HandleInitDialog(WPARAM wParam, LPARAM lParam);
private:
CPlayerDoc* m_pDoc;
CFont m_font;
public:
CEditTime m_startTime;
CEditTime m_endTime;
afx_msg void OnStart();
afx_msg void OnStartReset();
afx_msg void OnEnd();
afx_msg void OnEndReset();
afx_msg void OnUpdateStart(CCmdUI *pCmdUI);
afx_msg void OnUpdateStartReset(CCmdUI *pCmdUI);
afx_msg void OnUpdateEnd(CCmdUI *pCmdUI);
afx_msg void OnUpdateEndReset(CCmdUI *pCmdUI);
afx_msg void OnUpdateSave(CCmdUI *pCmdUI);
afx_msg void OnChangeStart();
afx_msg void OnChangeEnd();
afx_msg void OnBnClickedLosslessCut();
};
================================================
FILE: Player/DialogOpenURL.cpp
================================================
// DialogOpenURL.cpp : implementation file
//
#include "stdafx.h"
#include "Player.h"
#include "DialogOpenURL.h"
#include "afxdialogex.h"
// CDialogOpenURL dialog
IMPLEMENT_DYNAMIC(CDialogOpenURL, CDialog)
CDialogOpenURL::CDialogOpenURL(CWnd* pParent /*=NULL*/)
: CDialog(IDD_DIALOG_OPEN_URL, pParent)
, m_URL(_T(""))
, m_bParse(false)
, m_inputFormt(_T(""))
{
}
CDialogOpenURL::~CDialogOpenURL()
{
}
void CDialogOpenURL::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_URL, m_URL);
DDX_Check(pDX, IDC_PARSE, m_bParse);
DDX_Text(pDX, IDC_EDIT_INPUT_FORMAT, m_inputFormt);
}
BEGIN_MESSAGE_MAP(CDialogOpenURL, CDialog)
END_MESSAGE_MAP()
// CDialogOpenURL message handlers
================================================
FILE: Player/DialogOpenURL.h
================================================
#pragma once
// CDialogOpenURL dialog
class CDialogOpenURL : public CDialog
{
DECLARE_DYNAMIC(CDialogOpenURL)
public:
explicit CDialogOpenURL(CWnd* pParent = NULL); // standard constructor
virtual ~CDialogOpenURL();
// Dialog Data
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG_OPEN_URL };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
CString m_URL;
int m_bParse{};
CString m_inputFormt;
};
================================================
FILE: Player/DialogVideoFilter.cpp
================================================
// DialogVideoFilter.cpp : implementation file
//
#include "stdafx.h"
#include "Player.h"
#include "afxdialogex.h"
#include "DialogVideoFilter.h"
// CDialogVideoFilter dialog
IMPLEMENT_DYNAMIC(CDialogVideoFilter, CDialog)
CDialogVideoFilter::CDialogVideoFilter(CWnd* pParent /*=nullptr*/)
: CDialog(IDD_DIALOG_VIDEO_FILTER, pParent)
, m_videoFilter(_T(""))
, m_enableVideoFilter(FALSE)
{
}
CDialogVideoFilter::~CDialogVideoFilter()
{
}
void CDialogVideoFilter::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_VIDEO_FILTER, m_videoFilter);
DDX_Check(pDX, IDC_ENABLE_VIDEO_FILTER, m_enableVideoFilter);
}
BEGIN_MESSAGE_MAP(CDialogVideoFilter, CDialog)
END_MESSAGE_MAP()
// CDialogVideoFilter message handlers
================================================
FILE: Player/DialogVideoFilter.h
================================================
#pragma once
#include "afxdialogex.h"
// CDialogVideoFilter dialog
class CDialogVideoFilter : public CDialog
{
DECLARE_DYNAMIC(CDialogVideoFilter)
public:
CDialogVideoFilter(CWnd* pParent = nullptr); // standard constructor
virtual ~CDialogVideoFilter();
// Dialog Data
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG_VIDEO_FILTER };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
CString m_videoFilter;
BOOL m_enableVideoFilter;
};
================================================
FILE: Player/EditTime.cpp
================================================
// EditTime.cpp : implementation file
//
#include "stdafx.h"
#include "EditTime.h"
#include "SecondsToString.h"
#include <cmath>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
namespace {
enum
{
TIME_INVALID = -1000000000
};
int ReadUint(const TCHAR*& s)
{
int buf = 0;
for (; *s >= '0' && *s <= '9'; ++s)
buf = buf * 10 + *s - '0';
return buf;
}
double ParseTime(const TCHAR* timeStr)
{
int seconds = 0;
int numDelims = 0;
const bool minus = *timeStr == '-';
if (minus)
++timeStr;
for (;;)
{
switch (*timeStr)
{
case '\0':
return minus ? -seconds : seconds;
case ':':
if (++numDelims > 2)
return TIME_INVALID;
seconds *= 60;
++timeStr;
break;
case '.':
{
++timeStr;
const auto prevPtr = timeStr;
const auto millis = ReadUint(timeStr);
if (*timeStr != '\0')
return TIME_INVALID;
const int msecStringLen = timeStr - prevPtr;
if (msecStringLen > 3)
return TIME_INVALID;
if (msecStringLen == 0)
return minus ? -seconds : seconds;
const auto absResult = seconds + millis / std::pow(10, msecStringLen);
return minus ? -absResult : absResult;
}
break;
default:
const auto prevPtr = timeStr;
seconds += ReadUint(timeStr);
if (prevPtr == timeStr)
return TIME_INVALID;
}
}
}
bool Match(const TCHAR* timeStr)
{
return ParseTime(timeStr) != TIME_INVALID;
}
} // namespace
enum { WM_RESET = WM_USER + 101 };
/////////////////////////////////////////////////////////////////////////////
// CEditTime
CEditTime::CEditTime()
{
}
CEditTime::~CEditTime()
{
}
BEGIN_MESSAGE_MAP(CEditTime, CEdit)
//{{AFX_MSG_MAP(CEditTime)
ON_WM_CHAR()
ON_MESSAGE(WM_RESET, &CEditTime::OnReset)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditTime message handlers
void CEditTime::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar >= 32)
{
int iStartIndex = -1;
int iEndIndex = -1;
GetSel(iStartIndex, iEndIndex);
CString strProposedText;
GetWindowText(strProposedText);
strProposedText.Delete(iStartIndex, iEndIndex - iStartIndex);
strProposedText.Insert(iStartIndex, static_cast<TCHAR>(nChar));
if (!Match(strProposedText))
return;
}
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
void CEditTime::Reset()
{
SendNotifyMessage(WM_RESET, 0, 0);
}
void CEditTime::SetValue(double fTime)
{
SetWindowText(secondsToString(fTime * 1000, true).c_str());
}
double CEditTime::GetValue() const
{
CString strBuf;
GetWindowText(strBuf);
return ParseTime(strBuf);
}
bool CEditTime::IsEmpty() const
{
CString strBuf;
GetWindowText(strBuf);
return strBuf.IsEmpty();
}
LRESULT CEditTime::OnReset(WPARAM, LPARAM)
{
SetWindowText(_T(""));
return 0;
}
================================================
FILE: Player/EditTime.h
================================================
#pragma once
/////////////////////////////////////////////////////////////////////////////
// CEditTime window
class CEditTime : public CEdit
{
// Construction
public:
CEditTime();
// Attributes
public:
void Reset();
void SetValue(double fTime);
double GetValue() const;
bool IsEmpty() const;
// Operations
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEditTime)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CEditTime();
// Generated message map functions
protected:
//{{AFX_MSG(CEditTime)
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg LRESULT OnReset(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
CFont m_Font;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
================================================
FILE: Player/FrameToHglobal.cpp
================================================
#include "stdafx.h"
#include "FrameToHglobal.h"
#include "ffmpeg_dxva2.h"
extern "C"
{
#include "libavutil/frame.h"
#include "libswscale/swscale.h"
};
HGLOBAL FrameToHglobal(IDirect3DSurface9* surface, int width, int height, int allocatedHeight)
{
AVFrame* tmp_frame = av_frame_alloc();
int res = dxva2_convert_data(surface, tmp_frame, width, allocatedHeight);
if (res != 0)
{
av_frame_free(&tmp_frame);
return NULL;
}
const int stride = ((width * 3) + 3) & ~3;
auto hMem = GlobalAlloc(GMEM_MOVEABLE, sizeof(BITMAPINFOHEADER) + stride * height);
if (hMem == NULL) {
av_frame_free(&tmp_frame);
return NULL;
}
auto bmi = static_cast<BITMAPINFOHEADER*>(GlobalLock(hMem));
if (!bmi) {
GlobalFree(hMem);
av_frame_free(&tmp_frame);
return NULL;
}
memset(bmi, 0, sizeof(BITMAPINFOHEADER));
bmi->biSize = sizeof(BITMAPINFOHEADER);
bmi->biWidth = width;
bmi->biHeight = -height;
bmi->biPlanes = 1;
bmi->biBitCount = 24;
bmi->biCompression = BI_RGB;
const auto pData = static_cast<uint8_t*>(static_cast<void*>(bmi + 1));
auto img_convert_ctx = sws_getContext(tmp_frame->width, tmp_frame->height, (AVPixelFormat)tmp_frame->format,
width, allocatedHeight, AV_PIX_FMT_BGR24, SWS_FAST_BILINEAR, NULL, NULL, NULL);
sws_scale(img_convert_ctx, tmp_frame->data, tmp_frame->linesize, 0, height,
&pData, &stride);
sws_freeContext(img_convert_ctx);
GlobalUnlock(hMem);
av_frame_free(&tmp_frame);
return hMem;
}
================================================
FILE: Player/FrameToHglobal.h
================================================
#pragma once
struct IDirect3DSurface9;
HGLOBAL FrameToHglobal(IDirect3DSurface9* surface, int width, int height, int allocatedHeight);
================================================
FILE: Player/FrameTransformer.cpp
================================================
#include "stdafx.h"
#include "FrameTransformer.h"
#include <stdexcept>
#include <cstring>
extern "C" {
#include <libavutil/opt.h>
#include <libavutil/imgutils.h>
#include <libavutil/pixfmt.h>
}
const auto PIX_FMT = AV_PIX_FMT_NV12;
FrameTransformer::FrameTransformer(std::string filter_desc)
: filter_desc_(std::move(filter_desc)) {}
int FrameTransformer::init(int in_w, int in_h, AVRational time_base){
time_base_ = time_base;
return create_graph(in_w, in_h, PIX_FMT);
}
int FrameTransformer::create_graph(int in_w, int in_h, AVPixelFormat in_pix_fmt){
if (initialized_) return 0;
int ret = 0;
char args[512];
{
auto graph = avfilter_graph_alloc();
if (!graph)
return AVERROR(ENOMEM);
graph_.reset(graph, [](AVFilterGraph* p) { avfilter_graph_free(&p); });
}
const AVFilter* buffersrc = avfilter_get_by_name("buffer");
const AVFilter* buffersink = avfilter_get_by_name("buffersink");
if (!buffersrc || !buffersink) { ret = AVERROR_FILTER_NOT_FOUND; goto fail; }
snprintf(args, sizeof(args),
"video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=1/1",
in_w, in_h, in_pix_fmt, time_base_.num, time_base_.den);
ret = avfilter_graph_create_filter(&buffersrc_ctx_, buffersrc, "in", args, nullptr, graph_.get());
if (ret < 0) goto fail;
ret = avfilter_graph_create_filter(&buffersink_ctx_, buffersink, "out", nullptr, nullptr, graph_.get());
if (ret < 0) goto fail;
// Set buffersink to accept NV12 output
enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_NV12 };
ret = av_opt_set_bin(
buffersink_ctx_,
"pix_fmts",
(const uint8_t*)pix_fmts,
sizeof(pix_fmts),
AV_OPT_SEARCH_CHILDREN
);
if (ret < 0) goto fail;
// Parse and link the user filter chain between src and sink
AVFilterInOut* outputs = avfilter_inout_alloc();
AVFilterInOut* inputs = avfilter_inout_alloc();
outputs->name = av_strdup("in");
outputs->filter_ctx = buffersrc_ctx_;
outputs->pad_idx = 0;
outputs->next = nullptr;
inputs->name = av_strdup("out");
inputs->filter_ctx = buffersink_ctx_;
inputs->pad_idx = 0;
inputs->next = nullptr;
ret = avfilter_graph_parse_ptr(graph_.get(), filter_desc_.c_str(), &inputs, &outputs, nullptr);
avfilter_inout_free(&inputs);
avfilter_inout_free(&outputs);
if (ret < 0) goto fail;
ret = avfilter_graph_config(graph_.get(), nullptr);
if (ret < 0) goto fail;
w_ = in_w;
h_ = in_h;
initialized_ = true;
return 0;
fail:
free_graph();
return ret;
}
bool FrameTransformer::operator()(OrderedScopedTokenGenerator::Token t, uint8_t* input, int in_stride, int in_w, int in_h, int64_t pts,
std::vector<uint8_t>& output, int& out_w, int& out_h)
{
if (w_ != in_w || h_ != in_h)
free_graph();
if (!initialized_) {
int r = init(in_w, in_h, time_base_); // assume input pixfmt; caller can init explicitly
if (r < 0)
return false;// r;
}
AVFrame* frame = av_frame_alloc();
frame->format = PIX_FMT; // adjust if needed
frame->width = in_w;
frame->height = in_h;
frame->linesize[0] = in_stride;
frame->pts = pts;
av_image_fill_arrays(frame->data, frame->linesize, input, (AVPixelFormat)frame->format, in_w, in_h, 1);
AVFrame* filt = nullptr;
{
auto scope = t.lock(); // blocks until it's this token's generation order
int ret = av_buffersrc_add_frame_flags(buffersrc_ctx_, frame, AV_BUFFERSRC_FLAG_KEEP_REF);
av_frame_free(&frame);
if (ret < 0)
return false;// ret;
// pull filtered frames
filt = av_frame_alloc();
ret = av_buffersink_get_frame(buffersink_ctx_, filt);
if (ret < 0) {
av_frame_free(&filt);
return false;// ret;
}
}
// copy NV12 planar data into output vector
out_w = filt->width; out_h = filt->height;
int y_size = out_w * out_h;
int uv_size = out_w * ((out_h+1)/2);
output.resize(y_size + uv_size);
// Y plane
for (int i=0;i<out_h;i++)
memcpy(output.data() + i*out_w, filt->data[0] + i*filt->linesize[0], out_w);
// UV interleaved plane
for (int i=0;i<(out_h+1)/2;i++)
memcpy(output.data() + y_size + i*out_w, filt->data[1] + i*filt->linesize[1], out_w);
av_frame_free(&filt);
return true;// 0;
}
void FrameTransformer::free_graph()
{
graph_.reset();
buffersrc_ctx_ = nullptr;
buffersink_ctx_ = nullptr;
initialized_ = false;
w_ = 0;
h_ = 0;
}
================================================
FILE: Player/FrameTransformer.h
================================================
// FrameTransformer.h
#pragma once
#include "ordered_scoped_token.h"
extern "C" {
#include <libavutil/avutil.h>
#include <libavutil/pixfmt.h>
#include <libavutil/frame.h>
#include <libavfilter/avfilter.h>
#include <libavfilter/buffersrc.h>
#include <libavfilter/buffersink.h>
}
#include <string>
#include <vector>
/*
Usage:
FrameTransformer frameTransformer("crop=iw/2:ih:0:0,split[left][tmp];[tmp]hflip[right];[left][right] hstack");
auto [width, height] = m_frameDecoder->getVideoSize();
frameTransformer.init(width, height);
m_frameDecoder->setImageConversionFunc(frameTransformer);
*/
class FrameTransformer {
public:
FrameTransformer(std::string filter_desc);
// Initialize with input properties (called automatically on first process if not called)
int init(int in_w, int in_h, AVRational time_base = {1, 25});
// Process one frame. pts is optional (pass AV_NOPTS_VALUE if unknown).
// Returns success.
bool operator()(OrderedScopedTokenGenerator::Token t,
uint8_t* input, int in_stride, int in_w, int in_h, int64_t pts,
std::vector<uint8_t>& output, int& out_w, int& out_h);
void reset();
private:
std::string filter_desc_;
std::shared_ptr<AVFilterGraph> graph_;
AVFilterContext* buffersrc_ctx_ = nullptr;
AVFilterContext* buffersink_ctx_ = nullptr;
bool initialized_ = false;
AVRational time_base_ = {1,25};
int w_ = 0;
int h_ = 0;
int create_graph(int in_w, int in_h, AVPixelFormat in_pix_fmt);
void free_graph();
};
================================================
FILE: Player/GetClipboardText.h
================================================
#pragma once
#include <string>
inline std::string GetClipboardText()
{
std::string text;
// Try opening the clipboard
if (OpenClipboard(nullptr))
{
// Get handle of clipboard object for ANSI text
if (HANDLE hData = GetClipboardData(CF_TEXT))
{
// Lock the handle to get the actual text pointer
if (const char* pszText = static_cast<const char*>(GlobalLock(hData)))
{
// Save text in a string class instance
text = pszText;
}
// Release the lock
GlobalUnlock(hData);
}
// Release the clipboard
CloseClipboard();
}
return text;
}
================================================
FILE: Player/HandleFilesSequence.cpp
================================================
#include "stdafx.h"
#include "HandleFilesSequence.h"
#include <algorithm>
#include <vector>
namespace {
auto MakeComparableConsideringNumbers(const CString& s)
{
std::vector<unsigned int> result;
unsigned int accum = 0;
for (int i = 0; i < s.GetLength(); ++i)
{
const auto c = s[i];
if ((c >= _T('0') && accum != 0 || c > _T('0')) && c <= _T('9'))
{
accum = accum * 10 + (c - _T('0'));
}
else
{
if (accum != 0)
{
result.push_back(accum + static_cast<unsigned int>(_T('0')));
accum = 0;
}
result.push_back((static_cast<unsigned>(c) < static_cast<unsigned>(_T('9')))
? c : (0xFFFF0000 | c));
}
}
if (accum != 0)
{
result.push_back(accum + static_cast<unsigned int>(_T('0')));
}
return result;
}
bool CompareConsideringNumbers(CString left, CString right)
{
const auto leftConverted = MakeComparableConsideringNumbers(left.MakeUpper());
const auto rightConverted = MakeComparableConsideringNumbers(right.MakeUpper());
return std::lexicographical_compare(
rightConverted.begin(), rightConverted.end(), leftConverted.begin(), leftConverted.end());
}
}
bool HandleFilesSequence(const CString& pathName,
bool looping,
std::function<bool(const CString&)> tryToOpen,
bool invert /*= false*/)
{
const auto extension = PathFindExtension(pathName);
const auto fileName = PathFindFileName(pathName);
if (!extension || !fileName)
return false;
const CString directory(pathName, fileName - pathName);
const CString pattern((directory + _T('*')) + extension);
WIN32_FIND_DATA ffd{};
const auto hFind = FindFirstFile(pattern, &ffd);
if (INVALID_HANDLE_VALUE == hFind)
{
return false;
}
std::vector<CString> filesArr[2];
const auto extensionLength = pathName.GetLength() - (extension - pathName);
const CString justFileName(fileName, extension - fileName);
do
{
if (!(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
const auto length = _tcslen(ffd.cFileName);
if (length > extensionLength && ffd.cFileName[length - extensionLength] == _T('.'))
{
CString cFileName(ffd.cFileName, length - extensionLength);
const bool beforeOrEqual = !CompareConsideringNumbers(cFileName, justFileName);
filesArr[beforeOrEqual].push_back(cFileName);
}
}
} while (FindNextFile(hFind, &ffd));
FindClose(hFind);
for (int i = 0; i <= looping; ++i)
{
std::vector<CString>& files = filesArr[i ^ invert];
std::make_heap(files.begin(), files.end(), CompareConsideringNumbers);
while (!files.empty())
{
const CString path = directory + files.front() + extension;
if (tryToOpen(path))
{
return true;
}
std::pop_heap(files.begin(), files.end(), CompareConsideringNumbers);
files.pop_back();
}
}
return false;
}
================================================
FILE: Player/HandleFilesSequence.h
================================================
#pragma once
#include <functional>
bool HandleFilesSequence(const CString& pathName,
bool looping,
std::function<bool(const CString&)> tryToOpen,
bool invert = false);
================================================
FILE: Player/I420Effect.cpp
================================================
#include "stdafx.h"
#include <initguid.h>
#include "I420Effect.h"
#include "I420Effect_PS.h"
I420Effect::I420Effect() :
m_refCount(1)
{
m_originalFrame = D2D1::SizeU(0, 0);
}
HRESULT I420Effect::Register(_In_ ID2D1Factory1* pFactory)
{
// Format Effect metadata in XML as expected
PCWSTR pszXml =
LR"(<?xml version='1.0' ?>
<Effect>
<!--System Properties-->
<Property name='DisplayName' type='string' value='I420' />
<Property name='Author' type='string' value='Public' />
<Property name='Category' type='string' value='CODEC' />
<Property name='Description' type='string' value='Adds a I420 Support' />
<Inputs>
<Input name='ySource' />
<Input name='uSource' />
<Input name='vSource' />
</Inputs>
</Effect>)";
// Register the effect in the factory
return pFactory->RegisterEffectFromString(
CLSID_CustomI420Effect,
pszXml,
nullptr,
0,
CreateRippleImpl
);
}
HRESULT __stdcall I420Effect::CreateRippleImpl(_Outptr_ IUnknown** ppEffectImpl)
{
// Since the object's refcount is initialized to 1, we don't need to AddRef here.
*ppEffectImpl = static_cast<ID2D1EffectImpl*>(new (std::nothrow) I420Effect());
if (*ppEffectImpl == nullptr)
return E_OUTOFMEMORY;
return S_OK;
}
IFACEMETHODIMP I420Effect::Initialize(
_In_ ID2D1EffectContext* pEffectContext,
_In_ ID2D1TransformGraph* pTransformGraph
)
{
HRESULT hr = pEffectContext->LoadPixelShader(GUID_I420PixelShader, I420Effect_ByteCode, ARRAYSIZE(I420Effect_ByteCode));
if (SUCCEEDED(hr))
{
// This loads the shader into the Direct2D image effects system and associates it with the GUID passed in.
// If this method is called more than once (say by other instances of the effect) with the same GUID,
// the system will simply do nothing, ensuring that only one instance of a shader is stored regardless of how
// many time it is used.
// The graph consists of a single transform. In fact, this class is the transform,
// reducing the complexity of implementing an effect when all we need to
// do is use a single pixel shader.
hr = pTransformGraph->SetSingleTransformNode(this);
}
return S_OK;
}
IFACEMETHODIMP I420Effect::PrepareForRender(D2D1_CHANGE_TYPE /*changeType*/)
{
return S_OK;
}
// SetGraph is only called when the number of inputs changes. This never happens as we publish this effect
// as a single input effect.
IFACEMETHODIMP I420Effect::SetGraph(_In_ ID2D1TransformGraph* /*pGraph*/)
{
return E_NOTIMPL;
}
// Called to assign a new render info class, which is used to inform D2D on
// how to set the state of the GPU.
IFACEMETHODIMP I420Effect::SetDrawInfo(_In_ ID2D1DrawInfo* pDrawInfo)
{
HRESULT hr = S_OK;
m_drawInfo = pDrawInfo;
hr = m_drawInfo->SetPixelShader(GUID_I420PixelShader);
if (SUCCEEDED(hr))
{
// Providing this hint allows D2D to optimize performance when processing large images.
m_drawInfo->SetInstructionCountHint(sizeof(I420Effect_ByteCode));
}
return hr;
}
// Calculates the mapping between the output and input rects. In this case,
// we want to request an expanded region to account for pixels that the ripple
// may need outside of the bounds of the destination.
IFACEMETHODIMP I420Effect::MapOutputRectToInputRects(
_In_ const D2D1_RECT_L* /*pOutputRect*/,
_Out_writes_(inputRectCount) D2D1_RECT_L* pInputRects,
UINT32 inputRectCount
) const
{
if (inputRectCount != 3)
return E_NOTIMPL;
pInputRects[0] = m_inputRect;
pInputRects[1] = pInputRects[2] = { m_inputRect.left / 2, m_inputRect.top / 2, m_inputRect.right / 2, m_inputRect.bottom / 2 };
return S_OK;
}
IFACEMETHODIMP I420Effect::MapInputRectsToOutputRect(
_In_reads_(inputRectCount) CONST D2D1_RECT_L* pInputRects,
_In_reads_(inputRectCount) CONST D2D1_RECT_L* /*pInputOpaqueSubRects*/,
UINT32 /*inputRectCount*/,
_Out_ D2D1_RECT_L* pOutputRect,
_Out_ D2D1_RECT_L* pOutputOpaqueSubRect
)
{
*pOutputRect = pInputRects[0];
if (m_inputRect.bottom != pInputRects[0].bottom
|| m_inputRect.top != pInputRects[0].top
|| m_inputRect.right != pInputRects[0].right
|| m_inputRect.left != pInputRects[0].left)
{
m_inputRect = pInputRects[0];
m_originalFrame.width = m_inputRect.right;
m_originalFrame.height = m_inputRect.bottom;
}
// Indicate that entire output might contain transparency.
ZeroMemory(pOutputOpaqueSubRect, sizeof(*pOutputOpaqueSubRect));
return S_OK;
}
IFACEMETHODIMP I420Effect::MapInvalidRect(
UINT32 /*inputIndex*/,
D2D1_RECT_L /*invalidInputRect*/,
_Out_ D2D1_RECT_L* pInvalidOutputRect
) const
{
HRESULT hr = S_OK;
// Indicate that the entire output may be invalid.
*pInvalidOutputRect = m_inputRect;
return hr;
}
IFACEMETHODIMP_(UINT32) I420Effect::GetInputCount() const
{
return 3;
}
// D2D ensures that that effects are only referenced from one thread at a time.
// To improve performance, we simply increment/decrement our reference count
// rather than use atomic InterlockedIncrement()/InterlockedDecrement() functions.
IFACEMETHODIMP_(ULONG) I420Effect::AddRef()
{
++m_refCount;
return m_refCount;
}
IFACEMETHODIMP_(ULONG) I420Effect::Release()
{
--m_refCount;
if (m_refCount == 0)
{
delete this;
return 0;
}
else
{
return m_refCount;
}
}
// This enables the stack of parent interfaces to be queried. In the instance
// of the Ripple interface, this method simply enables the developer
// to cast a Ripple instance to an ID2D1EffectImpl or IUnknown instance.
IFACEMETHODIMP I420Effect::QueryInterface(_In_ REFIID riid, _Outptr_ void** ppOutput)
{
static const QITAB rgqit[] =
{
QITABENT(I420Effect, ID2D1EffectImpl),
QITABENT(I420Effect, ID2D1DrawTransform),
QITABENT(I420Effect, ID2D1Transform),
QITABENT(I420Effect, ID2D1TransformNode),
{ 0 },
};
return QISearch(this, rgqit, riid, ppOutput);
}
================================================
FILE: Player/I420Effect.h
================================================
#pragma once
#include <d2d1effectauthor.h>
// {3AB41678-D4BC-4BE1-8A91-07A63DEEFEA1}
DEFINE_GUID(GUID_I420PixelShader, 0x3ab41678, 0xd4bc, 0x4be1, 0x8a, 0x91, 0x7, 0xa6, 0x3d, 0xee, 0xfe, 0xa1);
// {DA637E40-44D4-4617-A3D3-A28344549EEA}
DEFINE_GUID(CLSID_CustomI420Effect, 0xda637e40, 0x44d4, 0x4617, 0xa3, 0xd3, 0xa2, 0x83, 0x44, 0x54, 0x9e, 0xea);
class I420Effect : public ID2D1EffectImpl, public ID2D1DrawTransform
{
public:
// Declare effect registration methods.
static HRESULT Register(_In_ ID2D1Factory1* pFactory);
static HRESULT __stdcall CreateRippleImpl(_Outptr_ IUnknown** ppEffectImpl);
// Declare ID2D1EffectImpl implementation methods.
IFACEMETHODIMP Initialize(_In_ ID2D1EffectContext* pContextInternal, _In_ ID2D1TransformGraph* pTransformGraph);
IFACEMETHODIMP PrepareForRender(D2D1_CHANGE_TYPE changeType);
IFACEMETHODIMP SetGraph(_In_ ID2D1TransformGraph* pGraph);
// Declare ID2D1DrawTransform implementation methods.
IFACEMETHODIMP SetDrawInfo(_In_ ID2D1DrawInfo* pRenderInfo);
// Declare ID2D1Transform implementation methods.
IFACEMETHODIMP MapOutputRectToInputRects(
_In_ const D2D1_RECT_L* pOutputRect,
_Out_writes_(inputRectCount) D2D1_RECT_L* pInputRects,
UINT32 inputRectCount
) const;
IFACEMETHODIMP MapInputRectsToOutputRect(
_In_reads_(inputRectCount) CONST D2D1_RECT_L* pInputRects,
_In_reads_(inputRectCount) CONST D2D1_RECT_L* pInputOpaqueSubRects,
UINT32 inputRectCount,
_Out_ D2D1_RECT_L* pOutputRect,
_Out_ D2D1_RECT_L* pOutputOpaqueSubRect
);
IFACEMETHODIMP MapInvalidRect(
UINT32 inputIndex,
D2D1_RECT_L invalidInputRect,
_Out_ D2D1_RECT_L* pInvalidOutputRect
) const;
// Declare ID2D1TransformNode implementation methods.
IFACEMETHODIMP_(UINT32) GetInputCount() const;
// Declare IUnknown implementation methods.
IFACEMETHODIMP_(ULONG) AddRef();
IFACEMETHODIMP_(ULONG) Release();
IFACEMETHODIMP QueryInterface(_In_ REFIID riid, _Outptr_ void** ppOutput);
private:
I420Effect();
CComPtr<ID2D1DrawInfo> m_drawInfo;
LONG m_refCount;
D2D1_RECT_L m_inputRect;
D2D1_SIZE_U m_originalFrame;
};
================================================
FILE: Player/I420Effect_PS.hlsl
================================================
Texture2D yTexture : register(t0);
Texture2D uTexture : register(t1);
Texture2D vTexture : register(t2);
SamplerState ySampler : register(s0);
SamplerState uSampler : register(s1);
SamplerState vSampler : register(s2);
float4 main(
float4 pos : SV_POSITION,
float4 posScene : SCENE_POSITION,
float4 uv0 : TEXCOORD0
) : SV_Target
{
float Y = yTexture.Sample(ySampler, uv0).a * 255;
float U = uTexture.Sample(uSampler, uv0).a * 255;
float V = vTexture.Sample(vSampler, uv0).a * 255;
float4 color = float4(0, 0, 0, 1.0f);
color.b = clamp(1.164383561643836*(Y - 16) + 2.017232142857142*(U - 128), 0, 255) / 255.0f;
color.g = clamp(1.164383561643836*(Y - 16) - 0.812967647237771*(V - 128) - 0.391762290094914*(U - 128), 0, 255) / 255.0f;
color.r = clamp(1.164383561643836*(Y - 16) + 1.596026785714286*(V - 128), 0, 255) / 255.0f;
return color;
}
================================================
FILE: Player/IEraseableArea.h
================================================
#pragma once
class CWnd;
class CDC;
class IEraseableArea
{
public:
virtual void OnErase(CWnd* pInitiator, CDC* pDC, BOOL isFullScreen) = 0;
};
================================================
FILE: Player/ImageUpscale.cpp
================================================
#include "stdafx.h"
#include "ImageUpscale.h"
#if __has_include("AC.hpp")
#include"AC.hpp"
#include"ACCreator.hpp"
#include"ACProcessor.hpp"
#include "Anime4KCPP.hpp"
const int currPlatformID = 0;
const int currDeviceID = 0;
bool CanUpscaleImage()
{
static const bool ok = LoadLibrary(_T("opencl.dll")) != NULL
&& Anime4KCPP::OpenCL::checkGPUSupport(currPlatformID, currDeviceID);
return ok;
}
bool EnableImageUpscale()
{
static Anime4KCPP::ACInitializer initializer;
static const auto ok = [] {
const int OpenCLQueueNum = 1;
const bool OpenCLParallelIO = false;
initializer.pushManager<Anime4KCPP::OpenCL::Manager<Anime4KCPP::OpenCL::ACNet>>(
currPlatformID, currDeviceID,
Anime4KCPP::CNNType::Default,
OpenCLQueueNum,
OpenCLParallelIO);
return initializer.init() == initializer.size();
}();
return ok;
}
bool ImageUpscale(OrderedScopedTokenGenerator::Token, uint8_t* input, int inputStride, int inputWidth, int inputHeight,
int64_t, std::vector<uint8_t>& output, int& outputWidth, int& outputHeight)
{
Anime4KCPP::Parameters param{};
auto ac = Anime4KCPP::ACCreator::createUP(param, Anime4KCPP::Processor::Type::OpenCL_ACNet);
const cv::Mat y_image(inputHeight, inputWidth, CV_8UC1, input, inputStride);
const cv::Mat uv_image(inputHeight / 2, inputWidth / 2, CV_8UC2, input + inputHeight * inputStride, inputStride);
cv::Mat cbcr_channels[2];
split(uv_image, cbcr_channels);
ac->loadImage(y_image, cbcr_channels[0], cbcr_channels[1]);
ac->process();
cv::Mat out_y_image;
std::vector <cv::Mat> out_cbcr_channels(2);
ac->saveImage(out_y_image, out_cbcr_channels[0], out_cbcr_channels[1]);
outputWidth = out_y_image.cols;
outputHeight = out_y_image.rows;
cv::Mat CrCb;
merge(out_cbcr_channels, CrCb);
output.assign(out_y_image.datastart, out_y_image.dataend);
output.insert(output.end(), CrCb.datastart, CrCb.dataend);
return true;
}
#else
bool CanUpscaleImage()
{
return false;
}
bool EnableImageUpscale()
{
return false;
}
bool ImageUpscale(OrderedScopedTokenGenerator::Token, uint8_t*, int, int, int, int64_t, std::vector<uint8_t>&, int&, int&)
{
}
#endif
================================================
FILE: Player/ImageUpscale.h
================================================
#pragma once
#include "ordered_scoped_token.h"
#include <cstdint>
#include <vector>
bool CanUpscaleImage();
bool EnableImageUpscale();
bool ImageUpscale(OrderedScopedTokenGenerator::Token, uint8_t* input, int inputStride, int inputWidth, int inputHeight,
int64_t, std::vector<uint8_t>& output, int& outputWidth, int& outputHeight);
================================================
FILE: Player/MainFrm.cpp
================================================
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "Player.h"
#include "MainFrm.h"
#include "PlayerDoc.h"
#include "IEraseableArea.h"
#include "MakeDelegate.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
namespace {
HICON LoadIcon(int idr)
{
int const cxButton = GetSystemMetrics(SM_CXSMICON);
return (HICON) LoadImage(
AfxGetApp()->m_hInstance,
MAKEINTRESOURCE(idr),
IMAGE_ICON,
cxButton, cxButton, // use actual size
LR_DEFAULTCOLOR);
}
class FullScreenBarAccessor : public CFullScreenImpl
{
public:
CMFCToolBar* GetFullScreenBar() { return m_pwndFullScreenBar; }
};
class FullScreenMgrAccessor : public CFrameImpl
{
public:
CMFCToolBar* GetFullScreenBar()
{
return static_cast<FullScreenBarAccessor&>(m_FullScreenMgr).GetFullScreenBar();
}
};
class DocumentAccessor : public CView
{
public:
CPlayerDoc* GetDocument()
{
return dynamic_cast<CPlayerDoc*>(m_pDocument);
}
};
UINT s_uTBBC = RegisterWindowMessage(L"TaskbarButtonCreated");
} // namespace
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWndEx)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)
ON_WM_CREATE()
ON_WM_CLOSE()
ON_COMMAND(IDC_FULL_SCREEN, &CMainFrame::OnFullScreen)
ON_WM_ERASEBKGND()
ON_WM_WINDOWPOSCHANGED()
ON_WM_NCPAINT()
ON_WM_POWERBROADCAST()
ON_REGISTERED_MESSAGE(s_uTBBC, &CMainFrame::CreateThumbnailToolbar)
ON_WM_NCHITTEST()
ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
: m_bFullScreen(FALSE)
{
// TODO: add member initialization code here
}
CMainFrame::~CMainFrame()
{
}
BOOL CMainFrame::Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, // != NULL for popups
LPCTSTR lpszMenuName,
DWORD dwExStyle,
CCreateContext* pContext)
{
const BOOL result = __super::Create(lpszClassName,
lpszWindowName,
dwStyle,
rect,
pParentWnd, // != NULL for popups
lpszMenuName,
dwExStyle,
pContext);
if (result)
{
ASSERT(pContext->m_pCurrentDoc);
ASSERT(pContext->m_pCurrentDoc->IsKindOf(RUNTIME_CLASS(CPlayerDoc)));
m_wndPlayerControl.setDocument(static_cast<CPlayerDoc*>(pContext->m_pCurrentDoc));
m_wndRange.setDocument(static_cast<CPlayerDoc*>(pContext->m_pCurrentDoc));
static_cast<CPlayerDoc*>(pContext->m_pCurrentDoc)->onPauseResume.connect(
MAKE_DELEGATE(&CMainFrame::onPauseResume, this));
}
return result;
}
void CMainFrame::pauseResume()
{
if (CView* pView = dynamic_cast<CView*>(GetDescendantWindow(AFX_IDW_PANE_FIRST, TRUE)))
{
if (CPlayerDoc* pDoc = static_cast<DocumentAccessor*>(pView)->GetDocument())
{
if (pDoc->isPlaying())
pDoc->pauseResume();
}
}
}
BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
if (LOWORD(wParam) == IDC_PLAY_PAUSE)
{
pauseResume();
return TRUE;
}
return __super::OnCommand(wParam, lParam);
}
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN
&& GetKeyState(VK_SHIFT) >= 0 && GetKeyState(VK_CONTROL) >= 0 && GetKeyState(VK_MENU) >= 0)
{
switch (pMsg->wParam)
{
case VK_SPACE:
pauseResume();
return TRUE;
case VK_F11:
if (IsFullScreen())
ShowFullScreen();
else
OnFullScreen();
return TRUE;
}
}
return __super::PreTranslateMessage(pMsg);
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (__super::OnCreate(lpCreateStruct) == -1)
return -1;
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows7));
//CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerWindows7::Office2007_ObsidianBlack);
if (!m_wndMenuBar.Create(this))
{
TRACE0("Failed to create menubar\n");
return -1; // fail to create
}
m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);
//if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
// !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
//{
// TRACE0("Failed to create toolbar\n");
// return -1; // fail to create
//}
//if (!m_wndStatusBar.Create(this))
//{
// TRACE0("Failed to create status bar\n");
// return -1; // fail to create
//}
//m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
if (!m_wndPlayerControl.Create(
this,
IDD_DIALOGBAR_PLAYER_CONTROL,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI,
IDD_DIALOGBAR_PLAYER_CONTROL))
{
TRACE0("Failed to create player control dialog bar\n");
return -1; // fail to create
}
if (!m_wndRange.Create(
this,
IDD_DIALOGBAR_RANGE,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI,
IDD_DIALOGBAR_RANGE))
{
TRACE0("Failed to create range dialog bar\n");
return -1; // fail to create
}
// TODO: Delete these three lines if you don't want the toolbar to be dockable
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
//m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP);
m_wndPlayerControl.EnableDocking(CBRS_ALIGN_BOTTOM);
m_wndRange.EnableDocking(CBRS_ALIGN_BOTTOM);
CString strBuffer;
VERIFY(strBuffer.LoadString(IDS_PLAYER_CONTROL));
m_wndPlayerControl.SetWindowText(strBuffer);
VERIFY(strBuffer.LoadString(IDS_RANGE));
m_wndRange.SetWindowText(strBuffer);
EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
DockPane(&m_wndMenuBar);
//DockPane(&m_wndToolBar, AFX_IDW_DOCKBAR_TOP);
DockPane(&m_wndPlayerControl, AFX_IDW_DOCKBAR_BOTTOM);
DockPane(&m_wndRange, AFX_IDW_DOCKBAR_BOTTOM);
// Enable toolbar and docking window menu replacement
VERIFY(strBuffer.LoadString(IDS_TOOLBAR_CUSTOMIZE));
//m_wndToolBar.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strBuffer, ID_VIEW_TOOLBAR);
m_hPlay = LoadIcon(IDI_PLAY);
m_hPause = LoadIcon(IDI_PAUSE);
// In case the application is run elevated, allow the
// TaskbarButtonCreated and WM_COMMAND messages through.
ChangeWindowMessageFilter(s_uTBBC, MSGFLT_ADD);
ChangeWindowMessageFilter(WM_COMMAND, MSGFLT_ADD);
EnableFullScreenMode(IDC_FULL_SCREEN);
EnableFullScreenMainMenu(FALSE);
return 0;
}
void CMainFrame::OnClose()
{
m_pTaskbarList.Release();
__super::OnClose();
}
LRESULT CMainFrame::CreateThumbnailToolbar(WPARAM, LPARAM)
{
HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pTaskbarList));
if (SUCCEEDED(hr))
{
hr = m_pTaskbarList->HrInit();
if (SUCCEEDED(hr))
{
enum { NUM_ICONS = 1 };
int const cxButton = GetSystemMetrics(SM_CXSMICON);
if (auto himl = ImageList_Create(cxButton, cxButton, ILC_MASK, NUM_ICONS, 0))
{
hr = m_pTaskbarList->ThumbBarSetImageList(*this, himl);
if (SUCCEEDED(hr))
{
THUMBBUTTON buttons[NUM_ICONS] = {};
// First button
buttons[0].dwMask = THB_ICON | THB_TOOLTIP | THB_FLAGS;
buttons[0].dwFlags = THBF_ENABLED | THBF_DISMISSONCLICK;
buttons[0].iId = IDC_PLAY_PAUSE;
buttons[0].hIcon = m_hPause;
CStringW strBuffer;
VERIFY(strBuffer.LoadString(IDS_PAUSE));
wcscpy_s(buttons[0].szTip, strBuffer);
// Set the buttons to be the thumbnail toolbar
hr = m_pTaskbarList->ThumbBarAddButtons(*this, ARRAYSIZE(buttons), buttons);
}
ImageList_Destroy(himl);
}
}
}
return TRUE;
}
void CMainFrame::onPauseResume(bool paused)
{
if (m_pTaskbarList)
{
THUMBBUTTON buttons[1] = {};
// First button
buttons[0].dwMask = THB_ICON | THB_TOOLTIP | THB_FLAGS;
buttons[0].dwFlags = THBF_ENABLED | THBF_DISMISSONCLICK;
buttons[0].iId = IDC_PLAY_PAUSE;
buttons[0].hIcon = paused? m_hPlay : m_hPause;
CStringW strBuffer;
VERIFY(strBuffer.LoadString(paused? IDS_PLAY : IDS_PAUSE));
wcscpy_s(buttons[0].szTip, strBuffer);
m_pTaskbarList->ThumbBarUpdateButtons(*this, 1, buttons);
}
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !__super::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
__super::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
__super::Dump(dc);
}
#endif //_DEBUG
// CMainFrame message handlers
void CMainFrame::OnFullScreen()
{
ModifyStyle(WS_OVERLAPPEDWINDOW, 0, SWP_FRAMECHANGED);
const bool semiTransparentMode
= GetKeyState(VK_SHIFT) < 0 && GetKeyState(VK_CONTROL) < 0;
if (semiTransparentMode)
{
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
ModifyStyleEx(0, WS_EX_LAYERED | WS_EX_TRANSPARENT);
SetLayeredWindowAttributes(0, (255 * 40) / 100, LWA_ALPHA);
}
ShowFullScreen();
if (CMFCToolBar* toolBar = static_cast<FullScreenMgrAccessor&>(m_Impl).GetFullScreenBar())
{
if (auto pFrame = toolBar->GetParentMiniFrame())
{
if (semiTransparentMode)
{
m_dockManager.RemoveMiniFrame(pFrame);
}
else
{
pFrame->ShowWindow(SW_HIDE);
}
}
}
}
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
CWnd* pWnd = GetDescendantWindow(AFX_IDW_PANE_FIRST, TRUE);
if (IEraseableArea* pEraseableArea = dynamic_cast<IEraseableArea*>(pWnd))
{
pEraseableArea->OnErase(this, pDC, IsFullScreen());
}
return TRUE;
}
void CMainFrame::OnWindowPosChanged(WINDOWPOS* lpwndpos)
{
CFrameWndEx::OnWindowPosChanged(lpwndpos);
// message handler code here
if (!IsFullScreen() && m_bFullScreen)
{
ModifyStyle(0, WS_OVERLAPPEDWINDOW, 0);
// clear semi transparent settings
SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
ModifyStyleEx(WS_EX_LAYERED | WS_EX_TRANSPARENT, 0);
}
m_bFullScreen = IsFullScreen();
}
void CMainFrame::OnNcPaint()
{
if (!IsFullScreen())
Default();
}
UINT CMainFrame::OnPowerBroadcast(UINT nPowerEvent, LPARAM nEventData)
{
if (nPowerEvent == PBT_APMSUSPEND)
{
if (CView* pView = dynamic_cast<CView*>(GetDescendantWindow(AFX_IDW_PANE_FIRST, TRUE)))
{
if (CPlayerDoc* pDoc = static_cast<DocumentAccessor*>(pView)->GetDocument())
{
if (pDoc->isPlaying() && !pDoc->isPaused())
pDoc->pauseResume();
ShowWindow(SW_MINIMIZE);
}
}
}
return CFrameWndEx::OnPowerBroadcast(nPowerEvent, nEventData);
}
LRESULT CMainFrame::OnNcHitTest(CPoint point)
{
enum { SPOT_SIZE = 8 };
CRect rect;
GetClientRect(rect);
rect.left = rect.right - SPOT_SIZE;
rect.top = rect.bottom - SPOT_SIZE;
rect.right += SPOT_SIZE;
rect.bottom += SPOT_SIZE;
ClientToScreen(&rect);
if (rect.PtInRect(point))
{
BOOL bRTL = GetExStyle() & WS_EX_LAYOUTRTL;
return bRTL ? HTBOTTOMLEFT : HTBOTTOMRIGHT;
}
return __super::OnNcHitTest(point);
}
void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CFrameWndEx::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
if (bSysMenu || pPopupMenu->GetMenuItemCount() != 1)
return;
if (CView* pView = dynamic_cast<CView*>(GetDescendantWindow(AFX_IDW_PANE_FIRST, TRUE)))
{
if (CPlayerDoc* pDoc = static_cast<DocumentAccessor*>(pView)->GetDocument())
{
switch (pPopupMenu->GetMenuItemID(0))
{
case ID_FIRST_SUBTITLE_DUMMY:
{
pPopupMenu->DeleteMenu(0, MF_BYPOSITION);
int id = ID_FIRST_SUBTITLE;
for (auto& item : pDoc->getFrameDecoder()->listSubtitles())
{
pPopupMenu->AppendMenu(MF_STRING, id++, CA2T(item.c_str(), CP_UTF8));
}
}
break;
case ID_TRACK1_DUMMY:
{
pPopupMenu->DeleteMenu(0, MF_BYPOSITION);
int id = ID_TRACK1;
const int nTracks = pDoc->getFrameDecoder()->getNumAudioTracks();
for (int i = 1; i <= nTracks; ++i)
{
CString name;
name.Format(_T("Track %d"), i);
pPopupMenu->AppendMenu(MF_STRING, id++, name);
}
}
break;
}
}
}
}
================================================
FILE: Player/MainFrm.h
================================================
// MainFrm.h : interface of the CMainFrame class
//
#pragma once
#include "DialogBarPlayerControl.h"
#include "DialogBarRange.h"
struct ITaskbarList3;
class CMainFrame : public CFrameWndEx
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
// Operations
private:
void pauseResume();
void onPauseResume(bool paused);
// Overrides
public:
BOOL OnCommand(WPARAM wParam, LPARAM lParam) override;
BOOL PreCreateWindow(CREATESTRUCT& cs) override;
BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle = WS_OVERLAPPEDWINDOW,
const RECT& rect = rectDefault,
CWnd* pParentWnd = NULL, // != NULL for popups
LPCTSTR lpszMenuName = NULL,
DWORD dwExStyle = 0,
CCreateContext* pContext = NULL) override;
BOOL PreTranslateMessage(MSG* pMsg) override;
// Implementation
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // control bar embedded members
CMFCMenuBar m_wndMenuBar;
//CMFCToolBar m_wndToolBar;
//CMFCStatusBar m_wndStatusBar;
CDialogBarPlayerControl m_wndPlayerControl;
CDialogBarRange m_wndRange;
BOOL m_bFullScreen;
CComPtr<ITaskbarList3> m_pTaskbarList;
HICON m_hPlay;
HICON m_hPause;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnClose();
afx_msg LRESULT CreateThumbnailToolbar(WPARAM wParam, LPARAM lParam);
afx_msg void OnFullScreen();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
afx_msg void OnNcPaint();
afx_msg UINT OnPowerBroadcast(UINT nPowerEvent, LPARAM nEventData);
afx_msg LRESULT OnNcHitTest(CPoint point);
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
};
================================================
FILE: Player/MakeDelegate.h
================================================
#pragma once
#include <utility>
template<auto TMethod, class T>
class Delegate
{
public:
explicit Delegate(T* callee)
: fpCallee(callee)
{}
template <typename... Args>
decltype(auto) operator()(Args&&... xs) const
{
return (fpCallee->*TMethod)(std::forward<Args>(xs)...);
}
bool operator == (const Delegate& other) const
{
return fpCallee == other.fpCallee;
}
bool operator != (const Delegate& other) const
{
return fpCallee != other.fpCallee;
}
private:
T* fpCallee;
};
template<auto TMethod, class T>
inline auto MakeDelegate(T* ptr)
{
return Delegate<TMethod, T>(ptr);
}
#define MAKE_DELEGATE(foo, thisPtr) (MakeDelegate<foo>(thisPtr))
================================================
FILE: Player/MemoryMappedFile.h
================================================
#pragma once
class MemoryMappedFile
{
public:
MemoryMappedFile()
: hFile(INVALID_HANDLE_VALUE)
, hFileMapping(NULL)
, pData(NULL)
{}
~MemoryMappedFile()
{
if (pData)
UnmapViewOfFile(pData);
if (hFileMapping)
CloseHandle(hFileMapping);
if (INVALID_HANDLE_VALUE != hFile)
CloseHandle(hFile);
}
MemoryMappedFile(const MemoryMappedFile&) = delete;
MemoryMappedFile& operator=(const MemoryMappedFile&) = delete;
bool MapFlie(LPCTSTR szFile)
{
hFile = CreateFile(
szFile, // pointer to name of the file
GENERIC_READ, // access (read-write) mode
FILE_SHARE_READ, // share mode
NULL, // pointer to security attributes
OPEN_EXISTING, // how to create
FILE_ATTRIBUTE_NORMAL, // file attributes
NULL // handle to file with attributes to copy
);
if (INVALID_HANDLE_VALUE != hFile && GetFileSizeEx(hFile, &fileSize) && fileSize.HighPart == 0)
{
hFileMapping = CreateFileMapping(
hFile, // handle to file to map
NULL, // optional security attributes
PAGE_READONLY, // protection for mapping object
fileSize.HighPart, // high-order 32 bits of object size
fileSize.LowPart, // low-order 32 bits of object size
NULL // name of file-mapping object
);
if (NULL != hFileMapping)
{
pData = MapViewOfFile(hFileMapping, FILE_MAP_READ, 0, 0, (SIZE_T)fileSize.QuadPart);
return pData != NULL;
}
}
return false;
}
LPVOID data() const { return pData; }
LONGLONG size() const { return fileSize.QuadPart; }
private:
HANDLE hFile;
LARGE_INTEGER fileSize;
HANDLE hFileMapping;
LPVOID pData;
};
================================================
FILE: Player/OpenSubtitlesFile.cpp
================================================
#include "stdafx.h"
#include "OpenSubtitlesFile.h"
#include <algorithm>
#include <cctype>
#include <fstream>
#include <sstream>
#include <string>
namespace {
/*
* from mpv/sub/sd_ass.c
* ass_to_plaintext() was written by wm4 and he says it can be under LGPL
*/
std::string ass_to_plaintext(const char *in)
{
std::string result;
bool in_tag = false;
const char *open_tag_pos = nullptr;
bool in_drawing = false;
while (*in) {
if (in_tag) {
if (in[0] == '}') {
in += 1;
in_tag = false;
} else if (in[0] == '\\' && in[1] == 'p') {
in += 2;
// Skip text between \pN and \p0 tags. A \p without a number
// is the same as \p0, and leading 0s are also allowed.
in_drawing = false;
while (in[0] >= '0' && in[0] <= '9') {
if (in[0] != '0')
in_drawing = true;
in += 1;
}
} else {
in += 1;
}
} else {
if (in[0] == '\\' && (in[1] == 'N' || in[1] == 'n')) {
in += 2;
result += '\n';
} else if (in[0] == '\\' && in[1] == 'h') {
in += 2;
result += ' ';
} else if (in[0] == '{') {
open_tag_pos = in;
in += 1;
in_tag = true;
} else {
if (!in_drawing)
result += in[0];
in += 1;
}
}
}
// A '{' without a closing '}' is always visible.
if (in_tag) {
result += open_tag_pos;
}
return result;
}
CString ChangePathExtension(const TCHAR* videoPathName, const TCHAR* ext)
{
CString subRipPathName(videoPathName);
PathRemoveExtension(subRipPathName.GetBuffer());
subRipPathName.ReleaseBuffer();
subRipPathName += ext;
return subRipPathName;
}
bool IsTextUtf8(const std::string& text)
{
auto Src = text.begin();
const auto SrcEnd = text.end();
while (Src != SrcEnd)
{
int C = *(Src++);
int HighOne = 0; // Number of leftmost '1' bits.
for (int Mask = 0x80; Mask != 0 && (C & Mask) != 0; Mask >>= 1)
HighOne++;
if (HighOne == 1 || HighOne > 4)
return false;
while (--HighOne > 0)
if (Src == SrcEnd || (*(Src++) & 0xc0) != 0x80)
return false;
}
return true;
}
bool OpenSubRipFile(std::istream& s,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback)
{
bool autoDetectedUnicode = true;
bool ok = false;
std::string buffer;
while (std::getline(s, buffer))
{
if (std::find_if(buffer.begin(), buffer.end(), [](unsigned char c) { return !std::isspace(c); })
== buffer.end())
{
continue;
}
if (!std::getline(s, buffer))
break;
int startHr, startMin, startSec, startMsec;
int endHr, endMin, endSec, endMsec;
if (sscanf_s(
buffer.c_str(),
"%d:%d:%d,%d --> %d:%d:%d,%d",
&startHr, &startMin, &startSec, &startMsec,
&endHr, &endMin, &endSec, &endMsec) != 8)
{
if (std::find_if(buffer.begin(), buffer.end(), [](unsigned char c) { return !std::isspace(c); })
== buffer.end())
{
continue;
}
break;
}
const double start = startHr * 3600 + startMin * 60 + startSec + startMsec / 1000.;
const double end = endHr * 3600 + endMin * 60 + endSec + endMsec / 1000.;
std::string subtitle;
while (std::getline(s, buffer)
&& std::find_if(buffer.begin(), buffer.end(), [](unsigned char c) { return !std::isspace(c); })
!= buffer.end())
{
subtitle += buffer;
subtitle += '\n'; // The last '\n' is for aggregating overlapped subtitles (if any)
}
if (!unicodeSubtitles && autoDetectedUnicode)
autoDetectedUnicode = IsTextUtf8(subtitle);
if (!subtitle.empty())
{
addIntervalCallback(start, end, subtitle);
ok = true;
}
}
if (!unicodeSubtitles)
unicodeSubtitles = autoDetectedUnicode;
return ok;
}
bool OpenSubStationAlphaFile(std::istream& s,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback)
{
bool autoDetectedUnicode = true;
bool ok = false;
std::string buffer;
while (std::getline(s, buffer))
{
std::istringstream ss(buffer);
std::getline(ss, buffer, ':');
if (buffer != "Dialogue")
continue;
double start, end;
bool skip = false;
for (int i = 0; i < 9; ++i) // TODO indices from Format?
{
std::getline(ss, buffer, ',');
if (i == 1 || i == 2)
{
int hr, min, sec;
char msecString[10]{};
if (sscanf_s(
buffer.c_str(),
"%d:%d:%d.%9s",
&hr, &min, &sec, msecString, (unsigned)_countof(msecString)) != 4)
{
return true;
}
double msec = 0;
if (const auto msecStringLen = strlen(msecString))
{
msec = atoi(msecString) / pow(10, msecStringLen);
}
((i == 1) ? start : end)
= hr * 3600 + min * 60 + sec + msec;
}
else if (i == 3 && buffer == "OP_kar")
{
skip = true;
break;
}
}
if (skip)
continue;
std::getline(ss, buffer, {});
std::string subtitle = ass_to_plaintext(buffer.c_str());
if (!unicodeSubtitles && autoDetectedUnicode)
autoDetectedUnicode = IsTextUtf8(subtitle);
if (!subtitle.empty())
{
subtitle += '\n'; // The last '\n' is for aggregating overlapped subtitles (if any)
addIntervalCallback(start, end, subtitle);
ok = true;
}
}
if (!unicodeSubtitles)
unicodeSubtitles = autoDetectedUnicode;
return ok;
}
template<char C>
class FilterBuf : public std::streambuf
{
char readBuf_;
const char* pExternBuf_;
int_type underflow() override
{
if (gptr() == &readBuf_)
return traits_type::to_int_type(readBuf_);
for (; *pExternBuf_ == C; ++pExternBuf_);
if (*pExternBuf_ == '\0')
return traits_type::eof();
int_type nextChar = *pExternBuf_++;
readBuf_ = traits_type::to_char_type(nextChar);
setg(&readBuf_, &readBuf_, &readBuf_ + 1);
return traits_type::to_int_type(readBuf_);
}
public:
explicit FilterBuf(const char* pExternBuf)
: pExternBuf_(pExternBuf)
{
setg(nullptr, nullptr, nullptr);
}
};
bool OpenSubFile(
bool(*doOpenSubFile)(std::istream&, bool&, AddIntervalCallback),
const TCHAR* videoPathName,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback)
{
do
{
std::ifstream s(videoPathName);
if (!s)
return false;
unicodeSubtitles = false;
const char ch = s.peek();
if (ch == char(0xFF))
{
s.get();
if (char(s.peek()) == char(0xFE))
{
break; // go to unicode part
}
s.unget();
}
else if (ch == char(0xEF))
{
s.get();
if (char(s.peek()) == char(0xBB))
{
s.get();
if (char(s.peek()) == char(0xBF))
{
unicodeSubtitles = true;
}
else
{
s.unget();
s.unget();
}
}
else
s.unget();
}
return doOpenSubFile(s, unicodeSubtitles, addIntervalCallback);
} while (false);
std::ifstream s(videoPathName, std::ios::binary);
if (!s)
return false;
s.seekg(0, std::ios::end);
const auto size = static_cast<size_t>(s.tellg()) - 2;
s.seekg(2, std::ios::beg);
std::wstring str(size / 2 + 1, L'\0');
s.read(static_cast<char*>(static_cast<void*>(str.data())), size);
ATL::CW2A text(str.c_str(), CP_UTF8);
FilterBuf<'\r'> buf(text);
std::iostream ss(&buf);
unicodeSubtitles = true;
return doOpenSubFile(ss, unicodeSubtitles, addIntervalCallback);
}
} // namespace
bool OpenSubtitlesFile(const TCHAR* videoPathName,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback)
{
const auto extension = PathFindExtension(videoPathName);
if (!_tcsicmp(extension, _T(".srt"))
&& OpenSubFile(OpenSubRipFile, videoPathName, unicodeSubtitles, addIntervalCallback))
{
return true;
}
return OpenSubFile(OpenSubStationAlphaFile, videoPathName, unicodeSubtitles, addIntervalCallback);
}
bool OpenMatchingSubtitlesFile(const TCHAR* videoPathName,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback)
{
for (auto ext : { _T(".ass"), _T(".ssa") })
{
if (OpenSubFile(OpenSubStationAlphaFile, ChangePathExtension(videoPathName, ext), unicodeSubtitles, addIntervalCallback))
return true;
}
const auto ext = ChangePathExtension(videoPathName, _T(".srt"));
return OpenSubFile(OpenSubRipFile, ext, unicodeSubtitles, addIntervalCallback)
|| OpenSubFile(OpenSubStationAlphaFile, ext, unicodeSubtitles, addIntervalCallback);
}
================================================
FILE: Player/OpenSubtitlesFile.h
================================================
#pragma once
#include <tchar.h>
#include <functional>
#include <string>
typedef std::function<void(double, double, const std::string&)> AddIntervalCallback;
bool OpenSubtitlesFile(const TCHAR* videoPathName,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback);
bool OpenMatchingSubtitlesFile(const TCHAR* videoPathName,
bool& unicodeSubtitles,
AddIntervalCallback addIntervalCallback);
================================================
FILE: Player/Player.cpp
================================================
// Player.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "afxwinappex.h"
#include "afxdialogex.h"
#include "Player.h"
#include "MainFrm.h"
#include "PlayerDoc.h"
#include "PlayerView.h"
#include "PlayerViewD2D.h"
#include "I420Effect.h"
#include "AsyncGetUrlUnderMouseCursor.h"
#include "YouTuber.h"
#include "version.h"
#include <boost/log/sinks/debug_output_backend.hpp>
#include <boost/log/sinks/sync_frontend.hpp>
#include <boost/log/core/core.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/support/date_time.hpp>
#include <zlib.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
//#define USE_DIRECT2D_VIEW
namespace {
// https://www.experts-exchange.com/articles/3189/In-Memory-Compression-and-Decompression-Using-ZLIB.html
int GetMaxCompressedLen(int nLenSrc)
{
int n16kBlocks = (nLenSrc + 16383) / 16384; // round up any fraction of a block
return (nLenSrc + 6 + (n16kBlocks * 5));
}
int CompressData(const BYTE* abSrc, int nLenSrc, BYTE* abDst, int nLenDst)
{
z_stream zInfo { };
zInfo.total_in = zInfo.avail_in = nLenSrc;
zInfo.total_out = zInfo.avail_out = nLenDst;
zInfo.next_in = const_cast<BYTE*>(abSrc);
zInfo.next_out = abDst;
int nRet = -1;
int nErr = deflateInit(&zInfo, Z_BEST_COMPRESSION); // zlib function
if (nErr == Z_OK) {
nErr = deflate(&zInfo, Z_FINISH); // zlib function
if (nErr == Z_STREAM_END) {
nRet = zInfo.total_out;
}
}
deflateEnd(&zInfo); // zlib function
return nRet;
}
int UncompressData(const BYTE* abSrc, int nLenSrc, BYTE* abDst, int nLenDst)
{
z_stream zInfo { };
zInfo.total_in = zInfo.avail_in = nLenSrc;
zInfo.total_out = zInfo.avail_out = nLenDst;
zInfo.next_in = const_cast<BYTE*>(abSrc);
zInfo.next_out = abDst;
int nRet = -1;
int nErr = inflateInit(&zInfo); // zlib function
if (nErr == Z_OK) {
nErr = inflate(&zInfo, Z_FINISH); // zlib function
if (nErr == Z_STREAM_END) {
nRet = zInfo.total_out;
}
}
inflateEnd(&zInfo); // zlib function
return nRet; // -1 or len of output
}
void init_logging()
{
namespace expr = boost::log::expressions;
boost::log::add_common_attributes();
auto core = boost::log::core::get();
// Create the sink. The backend requires synchronization in the frontend.
auto sink(boost::make_shared<boost::log::sinks::synchronous_sink<boost::log::sinks::debug_output_backend>>());
sink->set_formatter(expr::stream
//<< '[' << expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%H:%M:%S.%f") << ']'
<< expr::if_(expr::has_attr("Severity"))
[
expr::stream << '[' << expr::attr< boost::log::trivial::severity_level >("Severity") << ']'
]
<< expr::if_(expr::has_attr("Channel"))
[
expr::stream << '[' << expr::attr< std::string >("Channel") << ']'
]
<< expr::smessage << '\n');
// Set the special filter to the frontend
// in order to skip the sink when no debugger is available
//sink->set_filter(expr::is_debugger_present());
core->add_sink(sink);
}
class PlayerCommandLineInfo : public CCommandLineInfo
{
public:
bool m_bCheckPython = false;
private:
void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast) override
{
if (bFlag && _tcsicmp(pszParam, _T("check_python")) == 0) {
m_bCheckPython = true;
return;
}
CCommandLineInfo::ParseParam(pszParam, bFlag, bLast);
}
};
} // namespace
// CPlayerApp
BEGIN_MESSAGE_MAP(CPlayerApp, CWinAppEx)
ON_COMMAND(ID_APP_ABOUT, &CPlayerApp::OnAppAbout)
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinAppEx::OnFilePrintSetup)
ON_THREAD_MESSAGE(WM_ON_ASYNC_URL, &CPlayerApp::OnAsyncUrl)
END_MESSAGE_MAP()
// CPlayerApp construction
CPlayerApp::CPlayerApp()
{
// support Restart Manager
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS;
#ifdef _MANAGED
// If the application is built using Common Language Runtime support (/clr):
// 1) This additional setting is needed for Restart Manager support to work properly.
// 2) In your project, you must add a reference to System.Windows.Forms in order to build.
System::Windows::Forms::Application::SetUnhandledExceptionMode(System::Windows::Forms::UnhandledExceptionMode::ThrowException);
#endif
// TODO: replace application ID string below with unique ID string; recommended
// format for string is CompanyName.ProductName.SubProduct.VersionInformation
SetAppID(_T("Player.AppID.NoVersion"));
// Place all significant initialization in InitInstance
init_logging();
}
// The one and only CPlayerApp object
CPlayerApp theApp;
// CPlayerApp initialization
BOOL CPlayerApp::InitInstance()
{
CPane::m_bHandleMinSize = true;
// InitCommonControlsEx() is required on Windows XP if an application
// manifest specifies use of ComCtl32.dll version 6 or later to enable
// visual styles. Otherwise, any window creation will fail.
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// Set this to include all the common control classes you want to use
// in your application.
InitCtrls.dwICC = ICC_STANDARD_CLASSES;
InitCommonControlsEx(&InitCtrls);
__super::InitInstance();
AfxOleInit();
// Parse command line for standard shell commands, DDE, file open
PlayerCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (cmdInfo.m_bCheckPython)
{
CheckPython();
return FALSE;
}
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
AsyncGetUrlUnderMouseCursor();
}
#ifdef USE_DIRECT2D_VIEW
if (AfxGetD2DState()->GetDirect2dFactory() == NULL)
{
return FALSE;
}
HRESULT hr_create = I420Effect::Register(static_cast<ID2D1Factory1*>(AfxGetD2DState()->GetDirect2dFactory()));
if (FAILED(hr_create))
{
return FALSE;
}
#endif // USE_DIRECT2D_VIEW
EnableTaskbarInteraction(FALSE);
// AfxInitRichEdit2() is required to use RichEdit control
// AfxInitRichEdit2();
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need
// Change the registry key under which our settings are stored
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization
SetRegistryKey(_T("FFMPEG Player"));
LoadStdProfileSettings(_AFX_MRU_MAX_COUNT); // Load standard INI file options (including MRU)
// MFC Feature Pack
InitContextMenuManager();
InitShellManager();
InitKeyboardManager();
InitTooltipManager();
CMFCToolTipInfo ttParams;
ttParams.m_bVislManagerTheme = TRUE;
theApp.GetTooltipManager()->
SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);
// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views
auto* pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CPlayerDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
#ifdef USE_DIRECT2D_VIEW
RUNTIME_CLASS(CPlayerViewD2D));
#else
RUNTIME_CLASS(CPlayerView));
#endif
if (!pDocTemplate) {
return FALSE;
}
AddDocTemplate(pDocTemplate);
HandleMruList();
// Dispatch commands specified on the command line. Will return FALSE if
// app was launched with /RegServer, /Register, /Unregserver or /Unregister.
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen)
{
if (!pDocTemplate->OpenDocumentFile(cmdInfo.m_strFileName))
{
return FALSE;
}
}
else if (!ProcessShellCommand(cmdInfo)) {
return FALSE;
}
// https://stackoverflow.com/a/56079903/10472202
//enum { TIME_PERIOD = 1 };
//if (timeBeginPeriod(TIME_PERIOD) == TIMERR_NOERROR)
//{
// atexit([] { timeEndPeriod(TIME_PERIOD); });
//}
// The one and only window has been initialized, so show and update it
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
// CPlayerApp message handlers
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
BOOL OnInitDialog() override;
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
CString m_videoProperties;
protected:
void DoDataExchange(CDataExchange* pDX) override; // DDX/DDV support
// Implementation
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}
BOOL CAboutDlg::OnInitDialog()
{
ModifyStyleEx(0, WS_EX_LAYERED);
SetLayeredWindowAttributes(0, (255 * 75) / 100, LWA_ALPHA);
#ifdef GIT_COMMIT
CString text;
GetDlgItemText(IDC_APP_NAME_VERSION, text);
text += " " BOOST_STRINGIZE(GIT_COMMIT);
SetDlgItemText(IDC_APP_NAME_VERSION, text);
#endif
return __super::OnInitDialog();
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_VIDEO_PROPERTIES, m_videoProperties);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
CPlayerDoc* CPlayerApp::GetPlayerDocument()
{
POSITION pos1 = GetFirstDocTemplatePosition();
if (CDocTemplate* templ = GetNextDocTemplate(pos1))
{
POSITION pos2 = templ->GetFirstDocPosition();
return dynamic_cast<CPlayerDoc*>(templ->GetNextDoc(pos2));
}
return nullptr;
}
// App command to run the dialog
void CPlayerApp::OnAppAbout()
{
CAboutDlg aboutDlg;
if (CPlayerDoc* doc = GetPlayerDocument())
{
const auto properties = doc->getFrameDecoder()->getProperties();
for (const auto& prop : properties)
{
if (!aboutDlg.m_videoProperties.IsEmpty()) {
aboutDlg.m_videoProperties += '\n';
}
aboutDlg.m_videoProperties += prop.c_str();
}
}
aboutDlg.DoModal();
}
// CPlayerApp message handlers
void CPlayerApp::OnAsyncUrl(WPARAM wParam, LPARAM /*unused*/)
{
CComBSTR url;
url.Attach((BSTR)wParam);
if (CPlayerDoc* doc = GetPlayerDocument())
{
doc->OnAsyncUrl(CString(url));
}
}
const TCHAR szMappedAudioFilesEntry[] = _T("MappedAudioFiles");
const int MappedAudioFilesEntryVersion = 2;
bool CPlayerApp::GetMappedAudioFiles(CMapStringToString& map)
{
map.RemoveAll();
LPBYTE pData = nullptr;
UINT bytes = 0;
if (!GetBinary(szMappedAudioFilesEntry, &pData, &bytes) || bytes == 0) {
return false;
}
const auto size = 65536;
std::vector<BYTE> unpacked(size);
int nLen = UncompressData(pData, bytes, unpacked.data(), size);
delete[] pData;
CMemFile mf(unpacked.data(), nLen);
{
CArchive ar(&mf, CArchive::load);
int version = 0;
ar >> version;
if (version != MappedAudioFilesEntryVersion) {
return false;
}
map.Serialize(ar);
}
mf.Detach();
return true;
}
void CPlayerApp::SetMappedAudioFiles(CMapStringToString& map)
{
CMemFile mf;
{
CArchive ar(&mf, CArchive::store);
ar << MappedAudioFilesEntryVersion;
map.Serialize(ar);
}
UINT uiDataSize = static_cast<UINT>(mf.GetLength());
LPBYTE lpbData = mf.Detach();
if (lpbData == nullptr) {
return;
}
int nLenDst = GetMaxCompressedLen(uiDataSize);
std::vector<BYTE> packed(nLenDst);
int nLenPacked = CompressData(lpbData, uiDataSize, packed.data(), nLenDst);
free(lpbData);
if (nLenPacked == -1) {
return; // error
}
WriteBinary(szMappedAudioFilesEntry, packed.data(), nLenPacked);
}
void CPlayerApp::HandleMruList()
{
CMapStringToString oldMappedAudioFiles;
GetMappedAudioFiles(oldMappedAudioFiles);
CMapStringToString newMappedAudioFiles;
if (m_pRecentFileList != nullptr)
{
for (int i = m_pRecentFileList->GetSize(); --i >= 0;)
{
const auto& key = (*m_pRecentFileList)[i];
if (_taccess(key, 04) != 0) {
m_pRecentFileList->Remove(i);
}
else
{
CString value;
if (oldMappedAudioFiles.Lookup(key, value)) {
newMappedAudioFiles[key] = value;
}
}
}
}
if (oldMappedAudioFiles.GetSize() != newMappedAudioFiles.GetSize()) {
SetMappedAudioFiles(newMappedAudioFiles);
}
}
CString CPlayerApp::GetMappedAudioFile(LPCTSTR key)
{
CMapStringToString mappedAudioFiles;
GetMappedAudioFiles(mappedAudioFiles);
CString result;
mappedAudioFiles.Lookup(key, result);
return result;
}
void CPlayerApp::SetMappedAudioFile(LPCTSTR key, LPCTSTR value)
{
CMapStringToString mappedAudioFiles;
GetMappedAudioFiles(mappedAudioFiles);
mappedAudioFiles[key] = value;
SetMappedAudioFiles(mappedAudioFiles);
}
================================================
FILE: Player/Player.h
================================================
// Player.h : main header file for the Player application
//
#pragma once
#ifndef __AFXWIN_H__
#error "include 'stdafx.h' before including this file for PCH"
#endif
#include "resource.h" // main symbols
class CPlayerDoc;
// CPlayerApp:
// See Player.cpp for the implementation of this class
//
class CPlayerApp : public CWinAppEx
{
public:
CPlayerApp();
// Overrides
public:
BOOL InitInstance() override;
CString GetMappedAudioFile(LPCTSTR key);
void SetMappedAudioFile(LPCTSTR key, LPCTSTR value);
// Implementation
afx_msg void OnAppAbout();
afx_msg void OnAsyncUrl(WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
CPlayerDoc* GetPlayerDocument();
private:
bool GetMappedAudioFiles(CMapStringToString& map);
void SetMappedAudioFiles(CMapStringToString& map);
void HandleMruList();
};
extern CPlayerApp theApp;
enum { ID_FIRST_SUBTITLE = 7000, ID_TRACK1 = 7100 };
================================================
FILE: Player/Player.rc
================================================
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#include "afxres.h"
#include "verrsrc.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#ifndef APSTUDIO_INVOKED\r\n"
"#include ""targetver.h""\r\n"
"#endif\r\n"
"#include ""afxres.h""\r\n"
"#include ""verrsrc.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"LANGUAGE 9, 1\r\n"
"#include ""res\\Player.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#include ""afxprint.rc"" // printing/print preview resources\r\n"
"#endif\r\n"
"\0"
END
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON "res\\Player.ico"
IDR_PlayerTYPE ICON "res\\PlayerDoc.ico"
IDI_PAUSE ICON "res\\pause.ico"
IDI_PLAY ICON "res\\play.ico"
IDI_AUDIO ICON "res\\audio.ico"
IDI_AUDIO_OFF ICON "res\\audio_off.ico"
IDI_FULL_SCREEN ICON "res\\full_screen.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDR_MAINFRAME BITMAP "res\\Toolbar.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//
IDR_MAINFRAME TOOLBAR 16, 15
BEGIN
BUTTON ID_FILE_NEW
BUTTON ID_FILE_OPEN
BUTTON ID_FILE_SAVE
SEPARATOR
BUTTON ID_EDIT_CUT
BUTTON ID_EDIT_COPY
BUTTON ID_EDIT_PASTE
SEPARATOR
BUTTON ID_FILE_PRINT
BUTTON ID_APP_ABOUT
END
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDR_MAINFRAME MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&New\tCtrl+N", ID_FILE_NEW
MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN
MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE
MENUITEM "Save Copy &As...", ID_FILE_SAVE_COPY_AS
MENUITEM "Using Host Header Override Mode", ID_USING_HHO
MENUITEM SEPARATOR
MENUITEM "Copy URL To Clipboard", ID_COPY_URL_TO_CLIPBOARD
MENUITEM "Convert Videos Into Compatible Format", ID_CONVERT_VIDEOS_INTO_COMPATIBLE_FORMAT
MENUITEM SEPARATOR
MENUITEM "Autoplay", ID_AUTOPLAY
MENUITEM "Looping", ID_LOOPING
MENUITEM SEPARATOR
MENUITEM "Recent File", ID_FILE_MRU_FILE1, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_APP_EXIT
END
POPUP "Audio/Video"
BEGIN
POPUP "Audio Track"
BEGIN
MENUITEM "Track 1", ID_TRACK1_DUMMY
END
POPUP "Video Speed"
BEGIN
MENUITEM "0.5x", ID_VIDEO_SPEED1
MENUITEM "0.63x", ID_VIDEO_SPEED2
MENUITEM "0.8x", ID_VIDEO_SPEED3
MENUITEM "1x", ID_VIDEO_SPEED4
MENUITEM "1.25x", ID_VIDEO_SPEED5
MENUITEM "1.6x", ID_VIDEO_SPEED6
MENUITEM "2x", ID_VIDEO_SPEED7
MENUITEM "Nightcore", ID_NIGHTCORE
END
POPUP "Orientation"
BEGIN
MENUITEM "Do Nothing", ID_ORIENTATION_DO_NOTHING
MENUITEM "Rotate 90", ID_ORIENTATION_RORATE_90
MENUITEM "Rotate 180", ID_ORIENTATION_RORATE_180
MENUITEM "Rotate 270", ID_ORIENTATION_RORATE_270
MENUITEM SEPARATOR
MENUITEM "Horizontal Mirror", ID_ORIENTATION_MIRRORX
MENUITEM "Vertical Mirror", ID_ORIENTATION_MIRRORY
MENUITEM "Upend", ID_ORIENTATION_UPEND
END
MENUITEM "Video Filter...", ID_VIDEO_FILTER
MENUITEM SEPARATOR
MENUITEM "Maximal Resolution", ID_MAXIMALRESOLUTION
MENUITEM "Hardware Acceleration", ID_HW_ACCELERATION
MENUITEM "Super Resolution", ID_SUPER_RESOLUTION
MENUITEM SEPARATOR
MENUITEM "Open Audio File...", ID_OPEN_AUDIO_FILE
MENUITEM "Open Subtitles File...", ID_OPENSUBTITLESFILE
POPUP "Open Subtitles"
BEGIN
MENUITEM "Subtitle 1", ID_FIRST_SUBTITLE_DUMMY
END
MENUITEM "Fix Encoding", ID_FIX_ENCODING
END
POPUP "&View"
BEGIN
MENUITEM "&Toolbar", ID_VIEW_TOOLBAR
MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR
END
POPUP "&Help"
BEGIN
MENUITEM "&About Player...", ID_APP_ABOUT
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDR_MAINFRAME ACCELERATORS
BEGIN
"N", ID_FILE_NEW, VIRTKEY, CONTROL
"O", ID_FILE_OPEN, VIRTKEY, CONTROL
"S", ID_FILE_SAVE, VIRTKEY, CONTROL
"P", ID_FILE_PRINT, VIRTKEY, CONTROL
"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
"X", ID_EDIT_CUT, VIRTKEY, CONTROL
"C", ID_EDIT_COPY, VIRTKEY, CONTROL
"V", ID_EDIT_PASTE, VIRTKEY, CONTROL
VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT
VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT
VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL
VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT
VK_F6, ID_NEXT_PANE, VIRTKEY
VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOGEX 0, 0, 341, 178
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About FFmpeg Player"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,9,14,20,20,SS_REALSIZEIMAGE
DEFPUSHBUTTON "OK",IDOK,284,158,50,14,WS_GROUP
LTEXT "FFmpeg Player, Version 1.0",IDC_APP_NAME_VERSION,178,14,149,8,SS_NOPREFIX
LTEXT "github.com/aliakseis/FFmpegPlayer",IDC_STATIC,178,22,114,8
LTEXT "Icons: www.danieledesantis.net",IDC_STATIC,178,36,114,8
LTEXT "www.iconfinder.com/Rudityas",IDC_STATIC,178,44,97,8
LTEXT "YouTube: github.com/yt-dlp",IDC_STATIC,178,58,156,8
LTEXT "github.com/jdepoix/youtube-transcript-api",IDC_STATIC,178,66,156,8
LTEXT "Pitch shifting by Stephan M. Bernsee",IDC_STATIC,178,80,141,8
LTEXT "",IDC_VIDEO_PROPERTIES,178,109,156,48
LTEXT "Upscaling: github.com/TianZerL/Anime4KCPP",IDC_STATIC,178,94,156,8
END
IDD_DIALOGBAR_PLAYER_CONTROL DIALOGEX 0, 0, 374, 22
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
CONTROL "",IDC_PROGRESS_SLIDER,"msctls_trackbar32",TBS_TOP | TBS_NOTICKS | WS_TABSTOP,88,4,103,15
PUSHBUTTON "",IDC_PLAY_PAUSE,4,0,26,22,BS_ICON
PUSHBUTTON "",IDC_AUDIO_ON_OFF,315,0,26,22,BS_ICON
CONTROL "",IDC_VOLUME_SLIDER,"msctls_trackbar32",TBS_TOP | TBS_NOTICKS | WS_TABSTOP,237,4,74,15
LTEXT "",IDC_CURRENT_TIME,39,6,48,8
LTEXT "",IDC_TOTAL_TIME,196,6,34,8
PUSHBUTTON "",IDC_FULL_SCREEN,345,0,26,22,BS_ICON
CONTROL "Frame step",IDC_FRAME_STEP,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,252,6,52,10
END
IDD_DIALOG_OPEN_URL DIALOGEX 0, 0, 309, 70
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Open URL"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
EDITTEXT IDC_EDIT_URL,7,19,295,14,ES_AUTOHSCROLL
LTEXT "Enter a URL to play:",IDC_STATIC,7,7,66,8
EDITTEXT IDC_EDIT_INPUT_FORMAT,7,49,121,14,ES_AUTOHSCROLL
LTEXT "Input format (advanced):",IDC_STATIC,7,37,174,8
CONTROL "Parse",IDC_PARSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,146,51,34,10
DEFPUSHBUTTON "OK",IDOK,198,49,50,14
PUSHBUTTON "Cancel",IDCANCEL,252,49,50,14
END
IDD_DIALOGBAR_RANGE DIALOGEX 0, 0, 340, 16
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Start",IDC_START,7,1,36,14
EDITTEXT IDC_EDIT_START,46,1,52,14,ES_AUTOHSCROLL
PUSHBUTTON "X",IDC_START_RESET,101,1,16,14
PUSHBUTTON "End",IDC_END,122,1,36,14
EDITTEXT IDC_EDIT_END,161,1,52,14,ES_AUTOHSCROLL
PUSHBUTTON "X",IDC_END_RESET,216,1,16,14
CONTROL "Lossless Cut",IDC_LOSSLESS_CUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,238,3,55,10
PUSHBUTTON "Save as",ID_FILE_SAVE_COPY_AS,293,1,40,14
END
IDD_DIALOG_VIDEO_FILTER DIALOGEX 0, 0, 310, 122
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Enter Video Filter:"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,199,101,50,14
PUSHBUTTON "Cancel",IDCANCEL,253,101,50,14
EDITTEXT IDC_VIDEO_FILTER,7,7,296,86,ES_MULTILINE
CONTROL "Enable video filter",IDC_ENABLE_VIDEO_FILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,100,74,10
END
/////////////////////////////////////////////////////////////////////////////
//
// RCDATA
//
IDR_LAUNCH RCDATA "res\\launch.mkv"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "Sanko"
VALUE "FileDescription", "FFmpeg Player"
VALUE "FileVersion", "1.0.0.1"
VALUE "InternalName", "Player.exe"
VALUE "LegalCopyright", " 2015-2021 Sanko. All rights reserved."
VALUE "OriginalFilename", "Player.exe"
VALUE "ProductName", "FFmpeg Player"
VALUE "ProductVersion", "1.0.0.1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 334
TOPMARGIN, 7
BOTTOMMARGIN, 171
END
IDD_DIALOGBAR_PLAYER_CONTROL, DIALOG
BEGIN
RIGHTMARGIN, 365
TOPMARGIN, 7
END
IDD_DIALOG_OPEN_URL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 302
TOPMARGIN, 7
BOTTOMMARGIN, 63
END
IDD_DIALOGBAR_RANGE, DIALOG
BEGIN
RIGHTMARGIN, 333
END
IDD_DIALOG_VIDEO_FILTER, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 303
TOPMARGIN, 7
BOTTOMMARGIN, 115
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// AFX_DIALOG_LAYOUT
//
IDD_DIALOGBAR_PLAYER_CONTROL AFX_DIALOG_LAYOUT
BEGIN
0,
0, 50, 100, 0,
0, 50, 0, 0,
100, 50, 0, 0,
100, 50, 0, 0,
0, 50, 0, 0,
100, 50, 0, 0,
100, 50, 0, 0,
100, 50, 0, 0
END
IDD_DIALOGBAR_RANGE AFX_DIALOG_LAYOUT
BEGIN
0,
25, 50, 0, 0,
25, 50, 0, 0,
25, 50, 0, 0,
50, 50, 0, 0,
50, 50, 0, 0,
50, 50, 0, 0,
75, 50, 0, 0,
75, 50, 0, 0
END
IDD_DIALOG_OPEN_URL AFX_DIALOG_LAYOUT
BEGIN
0
END
IDD_ABOUTBOX AFX_DIALOG_LAYOUT
BEGIN
0
END
IDD_DIALOG_VIDEO_FILTER AFX_DIALOG_LAYOUT
BEGIN
0
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDR_MAINFRAME "Player\n\nPlayer\n\n\nPlayer.Document\nPlayer.Document"
IDS_TOOLBAR_CUSTOMIZE "Customize..."
IDS_PLAYER_CONTROL "Player Control"
IDS_RANGE "Range"
IDS_PAUSE "Pause"
IDS_PLAY "Play"
END
STRINGTABLE
BEGIN
AFX_IDS_APP_TITLE "Player"
AFX_IDS_IDLEMESSAGE "Ready"
END
STRINGTABLE
BEGIN
ID_INDICATOR_EXT "EXT"
ID_INDICATOR_CAPS "CAP"
ID_INDICATOR_NUM "NUM"
ID_INDICATOR_SCRL
gitextract_546ruw75/
├── .clang-format
├── .gitattributes
├── .github/
│ └── workflows/
│ └── msbuild.yml
├── .gitignore
├── .gitmodules
├── Anime4KCPPCore.vcxproj
├── Anime4KCPPCore.vcxproj.filters
├── Dlls/
│ └── Dlls.csproj
├── HttpDownload/
│ ├── HttpDownload.cpp
│ ├── HttpDownload.vcxproj
│ ├── HttpDownload.vcxproj.filters
│ ├── ReadMe.txt
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
├── LICENSE
├── Player/
│ ├── AsyncGetUrlUnderMouseCursor.cpp
│ ├── AsyncGetUrlUnderMouseCursor.h
│ ├── ByteStreamBuffer.h
│ ├── D3DFONT.CPP
│ ├── D3DFONT.H
│ ├── DialogBarPlayerControl.cpp
│ ├── DialogBarPlayerControl.h
│ ├── DialogBarRange.cpp
│ ├── DialogBarRange.h
│ ├── DialogOpenURL.cpp
│ ├── DialogOpenURL.h
│ ├── DialogVideoFilter.cpp
│ ├── DialogVideoFilter.h
│ ├── EditTime.cpp
│ ├── EditTime.h
│ ├── FrameToHglobal.cpp
│ ├── FrameToHglobal.h
│ ├── FrameTransformer.cpp
│ ├── FrameTransformer.h
│ ├── GetClipboardText.h
│ ├── HandleFilesSequence.cpp
│ ├── HandleFilesSequence.h
│ ├── I420Effect.cpp
│ ├── I420Effect.h
│ ├── I420Effect_PS.hlsl
│ ├── IEraseableArea.h
│ ├── ImageUpscale.cpp
│ ├── ImageUpscale.h
│ ├── MainFrm.cpp
│ ├── MainFrm.h
│ ├── MakeDelegate.h
│ ├── MemoryMappedFile.h
│ ├── OpenSubtitlesFile.cpp
│ ├── OpenSubtitlesFile.h
│ ├── Player.cpp
│ ├── Player.h
│ ├── Player.rc
│ ├── Player.vcxproj
│ ├── Player.vcxproj.filters
│ ├── PlayerDoc.cpp
│ ├── PlayerDoc.h
│ ├── PlayerView.cpp
│ ├── PlayerView.h
│ ├── PlayerViewD2D.cpp
│ ├── PlayerViewD2D.h
│ ├── ReadMe.txt
│ ├── SecondsToString.h
│ ├── StringDifference.cpp
│ ├── StringDifference.h
│ ├── YouTuber.cpp
│ ├── YouTuber.h
│ ├── res/
│ │ ├── Player.rc2
│ │ └── launch.mkv
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ └── update_version.cmd
├── Player.sln
├── QtPlayer/
│ ├── .gitattributes
│ ├── .gitignore
│ ├── CMakeLists.txt
│ ├── customdockwidget.cpp
│ ├── customdockwidget.h
│ ├── ffmpegdecoder.cpp
│ ├── ffmpegdecoder.h
│ ├── main.cpp
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ ├── mainwindow.ui
│ ├── mousehoverbutton.cpp
│ ├── mousehoverbutton.h
│ ├── opengldisplay.cpp
│ ├── opengldisplay.h
│ ├── portaudioplayer.cpp
│ ├── portaudioplayer.h
│ ├── resources/
│ │ ├── qt.conf
│ │ ├── resources.qrc
│ │ ├── style.css
│ │ ├── win7.manifest
│ │ └── winres.rc.in
│ ├── videocontrol.cpp
│ ├── videocontrol.h
│ ├── videocontrol.ui
│ ├── videodisplay.cpp
│ ├── videodisplay.h
│ ├── videoplayer.cpp
│ ├── videoplayer.h
│ ├── videoplayerwidget.cpp
│ ├── videoplayerwidget.h
│ ├── videoprogressbar.cpp
│ ├── videoprogressbar.h
│ ├── videowidget.cpp
│ ├── videowidget.h
│ ├── volumeprogressbar.cpp
│ ├── volumeprogressbar.h
│ ├── widgetdisplay.cpp
│ └── widgetdisplay.h
├── README.md
├── Setup/
│ └── Setup.vdproj
├── ThirdParty/
│ └── include/
│ ├── cmdline/
│ │ └── cmdline.hpp
│ ├── ini17/
│ │ └── ini17.hpp
│ └── opencl/
│ └── CL/
│ └── opencl.hpp
├── ToUTF8/
│ ├── ToUTF8.cpp
│ ├── ToUTF8.vcxproj
│ └── ToUTF8.vcxproj.filters
├── audio/
│ ├── AudioPitchDecorator.cpp
│ ├── AudioPitchDecorator.h
│ ├── AudioPlayerImpl.cpp
│ ├── AudioPlayerImpl.h
│ ├── AudioPlayerWasapi.cpp
│ ├── AudioPlayerWasapi.h
│ ├── ReadMe.txt
│ ├── audio.vcxproj
│ ├── audio.vcxproj.filters
│ ├── smbPitchShift.cpp
│ └── smbPitchShift.h
├── core/
│ └── ac_export.h
├── edit_git_subst_cfg.cmd
├── ffmpeg-3.3.3-experimental-patch/
│ ├── common.before.h
│ ├── common.h
│ ├── hevcdsp_template.before.c
│ └── hevcdsp_template.c
├── ffmpeg-4.3.2-experimental-patch/
│ ├── common.before.h
│ ├── common.h
│ ├── hevcdsp_template.before.c
│ └── hevcdsp_template.c
├── getYoutubeCombined.py
├── networking/
│ ├── ReadMe.txt
│ ├── crypt.h
│ ├── http_download.cpp
│ ├── http_download.h
│ ├── http_get.cpp
│ ├── http_get.h
│ ├── httpioapi.cpp
│ ├── httprequest_h.h
│ ├── ioapi.h
│ ├── networking.vcxproj
│ ├── networking.vcxproj.filters
│ ├── unzip.c
│ └── unzip.h
├── remove_pytube.cmd
├── remove_youtube_transcript_api.cmd
└── video/
├── audioparserunnable.cpp
├── audioplayer.h
├── decoderinterface.h
├── decoderiocontext.cpp
├── decoderiocontext.h
├── displayrunnable.cpp
├── ffmpeg_dxva2.cpp
├── ffmpeg_dxva2.h
├── ffmpegdecoder.cpp
├── ffmpegdecoder.h
├── fqueue.h
├── interlockedadd.h
├── makeguard.h
├── ordered_scoped_token.h
├── parserunnable.cpp
├── subtitles.cpp
├── subtitles.h
├── video.vcxproj
├── video.vcxproj.filters
├── videoframe.h
├── videoparserunnable.cpp
└── vqueue.h
Showing preview only (1,334K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (1304 symbols across 104 files)
FILE: HttpDownload/HttpDownload.cpp
function _tmain (line 12) | int _tmain(int argc, TCHAR *argv[])
FILE: Player/AsyncGetUrlUnderMouseCursor.cpp
class CComUsageScope (line 7) | class CComUsageScope
method CComUsageScope (line 11) | explicit CComUsageScope(DWORD dwCoInit = COINIT_MULTITHREADED | COINIT...
function LinkHandled (line 22) | bool LinkHandled(const CComPtr<IAccessible>& pacc)
function VOID (line 42) | VOID CALLBACK SendAsyncProc(
function AsyncGetUrlUnderMouseCursor (line 104) | void AsyncGetUrlUnderMouseCursor()
FILE: Player/ByteStreamBuffer.h
function class (line 5) | class ByteStreamBuffer: public std::streambuf
FILE: Player/D3DFONT.CPP
type D3DXVECTOR3 (line 26) | struct D3DXVECTOR3 {
type D3DXVECTOR4 (line 32) | struct D3DXVECTOR4 {
type FONT2DVERTEX (line 39) | struct FONT2DVERTEX { D3DXVECTOR4 p; DWORD color; FLOAT tu, tv; }
type FONT3DVERTEX (line 40) | struct FONT3DVERTEX { D3DXVECTOR3 p; D3DXVECTOR3 n; FLOAT tu, tv; }
function FONT2DVERTEX (line 45) | inline FONT2DVERTEX InitFont2DVertex( const D3DXVECTOR4& p, D3DCOLOR color,
function FONT3DVERTEX (line 52) | inline FONT3DVERTEX InitFont3DVertex( const D3DXVECTOR3& p, const D3DXVE...
function HRESULT (line 103) | HRESULT CD3DFont::InitDeviceObjects( LPDIRECT3DDEVICE9 pd3dDevice )
function HRESULT (line 256) | HRESULT CD3DFont::RestoreDeviceObjects()
function HRESULT (line 327) | HRESULT CD3DFont::InvalidateDeviceObjects()
function HRESULT (line 343) | HRESULT CD3DFont::DeleteDeviceObjects()
function HRESULT (line 358) | HRESULT CD3DFont::GetTextExtent( const TCHAR* strText, SIZE* pSize )
function HRESULT (line 409) | HRESULT CD3DFont::DrawTextScaled( FLOAT x, FLOAT y, FLOAT z,
function HRESULT (line 545) | HRESULT CD3DFont::DrawText( FLOAT sx, FLOAT sy, DWORD dwColor,
function HRESULT (line 672) | HRESULT CD3DFont::Render3DText( const TCHAR* strText, DWORD dwFlags )
FILE: Player/D3DFONT.H
function class (line 30) | class CD3DFont
FILE: Player/DialogBarPlayerControl.cpp
function HICON (line 27) | HICON LoadIcon(int idr, int iconSize)
function GetValueByMouseClick (line 37) | double GetValueByMouseClick(CWnd* pDlg, CSliderCtrl* pSliderCtrl)
function LRESULT (line 133) | LRESULT CDialogBarPlayerControl::HandleInitDialog(WPARAM wParam, LPARAM ...
function LRESULT (line 232) | LRESULT CDialogBarPlayerControl::OnSetTime(WPARAM wParam, LPARAM lParam)
FILE: Player/DialogBarPlayerControl.h
function class (line 9) | class CDialogBarPlayerControl
FILE: Player/DialogBarRange.cpp
function LRESULT (line 82) | LRESULT CDialogBarRange::HandleInitDialog(WPARAM wParam, LPARAM lParam)
FILE: Player/DialogBarRange.h
function class (line 9) | class CDialogBarRange : public CPaneDialog
FILE: Player/DialogOpenURL.h
function class (line 6) | class CDialogOpenURL : public CDialog
FILE: Player/DialogVideoFilter.h
function class (line 7) | class CDialogVideoFilter : public CDialog
FILE: Player/EditTime.cpp
function ReadUint (line 24) | int ReadUint(const TCHAR*& s)
function ParseTime (line 33) | double ParseTime(const TCHAR* timeStr)
function Match (line 80) | bool Match(const TCHAR* timeStr)
function LRESULT (line 154) | LRESULT CEditTime::OnReset(WPARAM, LPARAM)
FILE: Player/EditTime.h
function class (line 6) | class CEditTime : public CEdit
FILE: Player/FrameToHglobal.cpp
function HGLOBAL (line 12) | HGLOBAL FrameToHglobal(IDirect3DSurface9* surface, int width, int height...
FILE: Player/FrameToHglobal.h
type IDirect3DSurface9 (line 3) | struct IDirect3DSurface9
FILE: Player/FrameTransformer.cpp
type AVPixelFormat (line 50) | enum AVPixelFormat
FILE: Player/FrameTransformer.h
function class (line 25) | class FrameTransformer {
FILE: Player/GetClipboardText.h
function std (line 5) | inline std::string GetClipboardText()
FILE: Player/HandleFilesSequence.cpp
function MakeComparableConsideringNumbers (line 10) | auto MakeComparableConsideringNumbers(const CString& s)
function CompareConsideringNumbers (line 42) | bool CompareConsideringNumbers(CString left, CString right)
function HandleFilesSequence (line 53) | bool HandleFilesSequence(const CString& pathName,
FILE: Player/I420Effect.cpp
function HRESULT (line 15) | HRESULT I420Effect::Register(_In_ ID2D1Factory1* pFactory)
function HRESULT (line 43) | HRESULT __stdcall I420Effect::CreateRippleImpl(_Outptr_ IUnknown** ppEff...
function IFACEMETHODIMP (line 54) | IFACEMETHODIMP I420Effect::Initialize(
function IFACEMETHODIMP (line 76) | IFACEMETHODIMP I420Effect::PrepareForRender(D2D1_CHANGE_TYPE /*changeTyp...
function IFACEMETHODIMP (line 83) | IFACEMETHODIMP I420Effect::SetGraph(_In_ ID2D1TransformGraph* /*pGraph*/)
function IFACEMETHODIMP (line 90) | IFACEMETHODIMP I420Effect::SetDrawInfo(_In_ ID2D1DrawInfo* pDrawInfo)
function IFACEMETHODIMP (line 110) | IFACEMETHODIMP I420Effect::MapOutputRectToInputRects(
function IFACEMETHODIMP (line 125) | IFACEMETHODIMP I420Effect::MapInputRectsToOutputRect(
function IFACEMETHODIMP (line 151) | IFACEMETHODIMP I420Effect::MapInvalidRect(
function IFACEMETHODIMP (line 197) | IFACEMETHODIMP I420Effect::QueryInterface(_In_ REFIID riid, _Outptr_ voi...
FILE: Player/IEraseableArea.h
function class (line 6) | class IEraseableArea
FILE: Player/ImageUpscale.cpp
function CanUpscaleImage (line 16) | bool CanUpscaleImage()
function EnableImageUpscale (line 23) | bool EnableImageUpscale()
function ImageUpscale (line 42) | bool ImageUpscale(OrderedScopedTokenGenerator::Token, uint8_t* input, in...
function CanUpscaleImage (line 76) | bool CanUpscaleImage()
function EnableImageUpscale (line 81) | bool EnableImageUpscale()
function ImageUpscale (line 86) | bool ImageUpscale(OrderedScopedTokenGenerator::Token, uint8_t*, int, int...
FILE: Player/MainFrm.cpp
function HICON (line 19) | HICON LoadIcon(int idr)
class FullScreenBarAccessor (line 31) | class FullScreenBarAccessor : public CFullScreenImpl
method CMFCToolBar (line 34) | CMFCToolBar* GetFullScreenBar() { return m_pwndFullScreenBar; }
class FullScreenMgrAccessor (line 37) | class FullScreenMgrAccessor : public CFrameImpl
method CMFCToolBar (line 40) | CMFCToolBar* GetFullScreenBar()
class DocumentAccessor (line 46) | class DocumentAccessor : public CView
method CPlayerDoc (line 49) | CPlayerDoc* GetDocument()
function BOOL (line 96) | BOOL CMainFrame::Create(LPCTSTR lpszClassName,
function BOOL (line 139) | BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam)
function BOOL (line 149) | BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
function LRESULT (line 264) | LRESULT CMainFrame::CreateThumbnailToolbar(WPARAM, LPARAM)
function BOOL (line 319) | BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
function BOOL (line 375) | BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
function UINT (line 410) | UINT CMainFrame::OnPowerBroadcast(UINT nPowerEvent, LPARAM nEventData)
function LRESULT (line 427) | LRESULT CMainFrame::OnNcHitTest(CPoint point)
FILE: Player/MainFrm.h
type ITaskbarList3 (line 10) | struct ITaskbarList3
function class (line 12) | class CMainFrame : public CFrameWndEx
FILE: Player/MakeDelegate.h
function operator (line 18) | bool operator == (const Delegate& other) const
function operator (line 23) | bool operator != (const Delegate& other) const
FILE: Player/MemoryMappedFile.h
function class (line 3) | class MemoryMappedFile
FILE: Player/OpenSubtitlesFile.cpp
function ass_to_plaintext (line 17) | std::string ass_to_plaintext(const char *in)
function CString (line 68) | CString ChangePathExtension(const TCHAR* videoPathName, const TCHAR* ext)
function IsTextUtf8 (line 77) | bool IsTextUtf8(const std::string& text)
function OpenSubRipFile (line 96) | bool OpenSubRipFile(std::istream& s,
function OpenSubStationAlphaFile (line 159) | bool OpenSubStationAlphaFile(std::istream& s,
class FilterBuf (line 232) | class FilterBuf : public std::streambuf
method int_type (line 237) | int_type underflow() override
method FilterBuf (line 256) | explicit FilterBuf(const char* pExternBuf)
function OpenSubFile (line 263) | bool OpenSubFile(
function OpenSubtitlesFile (line 334) | bool OpenSubtitlesFile(const TCHAR* videoPathName,
function OpenMatchingSubtitlesFile (line 348) | bool OpenMatchingSubtitlesFile(const TCHAR* videoPathName,
FILE: Player/OpenSubtitlesFile.h
type std (line 7) | typedef std::function<void(double, double, const std::string&)> AddInter...
FILE: Player/Player.cpp
function GetMaxCompressedLen (line 45) | int GetMaxCompressedLen(int nLenSrc)
function CompressData (line 51) | int CompressData(const BYTE* abSrc, int nLenSrc, BYTE* abDst, int nLenDst)
function UncompressData (line 71) | int UncompressData(const BYTE* abSrc, int nLenSrc, BYTE* abDst, int nLen...
function init_logging (line 91) | void init_logging()
class PlayerCommandLineInfo (line 121) | class PlayerCommandLineInfo : public CCommandLineInfo
method ParseParam (line 126) | void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast) override
function BOOL (line 181) | BOOL CPlayerApp::InitInstance()
class CAboutDlg (line 299) | class CAboutDlg : public CDialogEx
function BOOL (line 323) | BOOL CAboutDlg::OnInitDialog()
function CPlayerDoc (line 345) | CPlayerDoc* CPlayerApp::GetPlayerDocument()
function CString (line 485) | CString CPlayerApp::GetMappedAudioFile(LPCTSTR key)
FILE: Player/Player.h
function class (line 18) | class CPlayerApp : public CWinAppEx
FILE: Player/PlayerDoc.cpp
function SetForegroundWindowInternal (line 59) | void SetForegroundWindowInternal(HWND hWnd)
function IsCalledFromMruList (line 93) | bool IsCalledFromMruList()
function CString (line 101) | CString GetUrlFromUrlFile(LPCTSTR lpszPathName)
function PumpMessages (line 117) | bool PumpMessages()
function CopyTextToClipboard (line 136) | void CopyTextToClipboard(const CString& strText)
function CString (line 163) | CString getScriptTempPath()
function HANDLE (line 173) | HANDLE lockFile(LPCTSTR fileName)
function writeFile (line 205) | void writeFile(HANDLE hFile, const char* stuff, DWORD size)
function ensureSeparator (line 226) | void ensureSeparator(CString& filePath)
function FileExists (line 249) | bool FileExists(LPCTSTR pszPath, LPCTSTR pszFile)
function CString (line 257) | CString StrikeThrough(const CString& str, bool doIt)
function CString (line 278) | CString NoBreak(CString s)
function GetAudioPlayer (line 284) | std::unique_ptr<IAudioPlayer> GetAudioPlayer()
function GetAddToSubtitlesMapLambda (line 292) | auto GetAddToSubtitlesMapLambda(T& map)
class CPlayerDoc::SubtitlesMap (line 304) | class CPlayerDoc::SubtitlesMap : public boost::icl::interval_map<double,...
function BOOL (line 409) | BOOL CPlayerDoc::OnNewDocument()
function BOOL (line 691) | BOOL CPlayerDoc::OnOpenDocument(LPCTSTR lpszPathName)
function BOOL (line 701) | BOOL CPlayerDoc::OnSaveDocument(LPCTSTR lpszPathName)
function CString (line 1373) | CString CPlayerDoc::generateConversionScript() const
FILE: Player/PlayerDoc.h
function OnCloseDocument (line 40) | void OnCloseDocument() override;
function BOOL (line 84) | BOOL OnSaveDocument(LPCTSTR) override;
function isFullFrameRange (line 125) | bool isFullFrameRange() const;
function getVideoSpeed (line 144) | float getVideoSpeed() const;
function m_rangeEndTime (line 156) | double m_rangeEndTime{}
FILE: Player/PlayerView.cpp
function DWORD (line 59) | DWORD RGBtoYUV(const D3DCOLOR rgb)
function BOOL (line 76) | BOOL RegisterSoftwareRasterizer(IDirect3D9* g_pD3D9)
function BOOL (line 94) | BOOL InitializeModule()
function D3DPRESENT_PARAMETERS (line 119) | D3DPRESENT_PARAMETERS GetD3dPresentParams(HWND hWnd)
function DXVA2_VideoDesc (line 140) | DXVA2_VideoDesc GetVideoDesc(const CSize& sourceSize)
function DXVA2_AYUVSample16 (line 162) | DXVA2_AYUVSample16 GetBackgroundColor()
function DXVA2_VideoProcessBltParams (line 183) | DXVA2_VideoProcessBltParams GetVideoProcessBltParams(
function DXVA2_VideoSample (line 242) | DXVA2_VideoSample GetVideoSample(
function SimdCopyAndConvert (line 280) | void SimdCopyAndConvert(
function CopyAndConvert (line 301) | void CopyAndConvert(
function CopyBuffer (line 343) | void CopyBuffer(uint8_t* dst, const uint8_t* src, size_t numBytes)
type D3DXVECTOR4 (line 391) | struct D3DXVECTOR4 {
type FONT2DVERTEX (line 398) | struct FONT2DVERTEX {
function InitStateBlock (line 405) | CComPtr<IDirect3DStateBlock9> InitStateBlock(LPDIRECT3DDEVICE9 pd3dDevice,
function DrawSubtitleText (line 452) | void DrawSubtitleText(LPDIRECT3DDEVICE9 pd3dDevice, int width, int heigh...
function Transform (line 575) | bool Transform(LPDIRECT3DDEVICE9 m_pD3DD9, IDirect3DSurface9* m_pMainStr...
class FrameListener (line 677) | class FrameListener : public IFrameListener
method FrameListener (line 680) | explicit FrameListener(CPlayerView* playerView) : m_playerView(playerV...
method updateFrame (line 683) | void updateFrame(IFrameDecoder* decoder, unsigned int generation) over...
method drawFrame (line 688) | void drawFrame(IFrameDecoder* /*decoder*/, unsigned int /*generation*/...
method decoderClosing (line 694) | void decoderClosing() override
function CRect (line 1189) | CRect CPlayerView::GetScreenPosition(bool swapXY)
function CPlayerDoc (line 1393) | CPlayerDoc* CPlayerView::GetDocument() const
function BOOL (line 1417) | BOOL CPlayerView::PreCreateWindow(CREATESTRUCT& cs)
function BOOL (line 1572) | BOOL CPlayerView::OnEraseBkgnd(CDC* pDC)
FILE: Player/PlayerView.h
type IFrameListener (line 7) | struct IFrameListener
type IDirect3D9 (line 9) | struct IDirect3D9
type IDirect3DDevice9 (line 10) | struct IDirect3DDevice9
type IDirect3DSurface9 (line 11) | struct IDirect3DSurface9
type IDirectXVideoProcessorService (line 12) | struct IDirectXVideoProcessorService
type IDirectXVideoProcessor (line 13) | struct IDirectXVideoProcessor
function LONG (line 81) | LONG m_ProcAmpValues[4] {}
function LONG (line 82) | LONG m_NFilterValues[6] {}
function LONG (line 83) | LONG m_DFilterValues[6] {}
FILE: Player/PlayerViewD2D.cpp
function HRESULT (line 30) | HRESULT GetTextSize(const std::wstring& text, IDWriteTextFormat* pTextFo...
class FrameListenerD2D (line 56) | class FrameListenerD2D : public IFrameListener
method FrameListenerD2D (line 59) | explicit FrameListenerD2D(CPlayerViewD2D* playerView) : m_playerView(p...
method updateFrame (line 62) | void updateFrame(IFrameDecoder* decoder, unsigned int generation) over...
method drawFrame (line 67) | void drawFrame(IFrameDecoder*, unsigned int generation) override
method decoderClosing (line 71) | void decoderClosing() override
function BOOL (line 111) | BOOL CPlayerViewD2D::PreCreateWindow(CREATESTRUCT& cs)
function BOOL (line 144) | BOOL CPlayerViewD2D::OnPreparePrinting(CPrintInfo* pInfo)
function CPlayerDoc (line 175) | CPlayerDoc* CPlayerViewD2D::GetDocument() const
function afx_msg (line 184) | afx_msg LRESULT CPlayerViewD2D::OnDraw2D(WPARAM, LPARAM lParam)
function LRESULT (line 387) | LRESULT CPlayerViewD2D::DrawFrame(WPARAM, LPARAM generation)
function BOOL (line 400) | BOOL CPlayerViewD2D::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam...
FILE: Player/PlayerViewD2D.h
type IFrameListener (line 6) | struct IFrameListener
type ID2D1Effect (line 8) | struct ID2D1Effect
function class (line 10) | class CPlayerViewD2D : public CView
FILE: Player/SecondsToString.h
function std (line 7) | inline std::basic_string<TCHAR> secondsToString(int seconds, bool milli)
FILE: Player/StringDifference.cpp
function SafePathString (line 6) | static auto SafePathString(std::basic_string<TCHAR> path)
function T (line 18) | T reversed(const T& s)
function levenshteinDistance (line 24) | int levenshteinDistance(const T& s1, const T& s2)
FILE: Player/StringDifference.h
function class (line 9) | class StringDifference
FILE: Player/YouTuber.cpp
function parse_python_exception (line 40) | std::string parse_python_exception()
class LoggerStream (line 87) | class LoggerStream
method write (line 90) | void write(const std::string& what)
method flush (line 96) | void flush() {}
function from_hex (line 313) | int from_hex(char ch)
function UrlUnescapeString (line 318) | std::string UrlUnescapeString(const std::string& s)
function hexchar (line 334) | void hexchar(unsigned char c, unsigned char &hex1, unsigned char &hex2)
function urlencode (line 342) | std::string urlencode(const std::string& s)
function extractHttpOrHostUrl (line 376) | bool extractHttpOrHostUrl(std::string& s)
function loadScriptText (line 410) | std::string loadScriptText(const TCHAR* name)
function getLoggerStream (line 434) | auto getLoggerStream()
function isPythonInstalled (line 443) | bool isPythonInstalled()
function EnsureSharedPythonNamespaceLoaded (line 468) | bool EnsureSharedPythonNamespaceLoaded(boost::python::object& outNamespace)
class YouTubePlaylistDealer (line 561) | class YouTubePlaylistDealer
method isValid (line 567) | bool isValid() const { return !!m_func; }
class YouTubeDealer (line 650) | class YouTubeDealer
method isValid (line 656) | bool isValid() const { return !!m_func; }
class YouTubeTranscriptDealer (line 740) | class YouTubeTranscriptDealer
method isValid (line 746) | bool isValid() const { return !!m_func; }
function DoParsePlaylist (line 822) | std::vector<std::string> DoParsePlaylist(
function CheckPython (line 854) | void CheckPython()
function ParsePlaylist (line 895) | std::vector<std::string> ParsePlaylist(std::string url, bool force)
function ParsePlaylistFile (line 911) | std::vector<std::string> ParsePlaylistFile(const TCHAR* fileName)
function ParsePlaylistText (line 920) | std::vector<std::string> ParsePlaylistText(const std::string& text)
function isHttpStatusOk (line 930) | inline bool isHttpStatusOk(int status)
function getYoutubeUrl (line 938) | std::pair<std::string, std::string> getYoutubeUrl(std::string url, bool ...
function getYoutubeTranscripts (line 996) | bool getYoutubeTranscripts(std::string url, AddYoutubeTranscriptCallback...
function CheckPython (line 1011) | void CheckPython() {}
function ParsePlaylist (line 1013) | std::vector<std::string> ParsePlaylist(std::string, bool)
function ParsePlaylistFile (line 1018) | std::vector<std::string> ParsePlaylistFile(const TCHAR*)
function ParsePlaylistText (line 1023) | std::vector<std::string> ParsePlaylistText(const std::string&)
function getYoutubeUrl (line 1028) | std::pair<std::string, std::string> getYoutubeUrl(std::string url, bool ...
function getYoutubeTranscripts (line 1033) | bool getYoutubeTranscripts(std::string, AddYoutubeTranscriptCallback)
FILE: Player/YouTuber.h
type std (line 18) | typedef std::function<void(double, double, const std::string&)> AddYoutu...
FILE: QtPlayer/customdockwidget.h
function class (line 9) | class CustomDockWidget : public QWidget
FILE: QtPlayer/ffmpegdecoder.h
function pauseResume (line 28) | bool pauseResume() { return m_frameDecoder->pauseResume(); }
function setVolume (line 30) | void setVolume(double volume)
function seekByPercent (line 35) | bool seekByPercent(float percent) { return m_frameDecoder->seekByPercent...
function finishedDisplayingFrame (line 40) | void finishedDisplayingFrame(unsigned int generation) { m_frameDecoder->...
function IFrameDecoder (line 42) | IFrameDecoder* getFrameDecoder() const { return m_frameDecoder.get(); }
function playingFinished (line 44) | void playingFinished() override { emit onPlayingFinished(); }
function changedFramePosition (line 45) | void changedFramePosition(
FILE: QtPlayer/main.cpp
function init_logging (line 17) | static void init_logging()
function main (line 51) | int main(int argc, char *argv[])
FILE: QtPlayer/mainwindow.cpp
function MainWindow (line 9) | MainWindow* getMainWindow()
function CustomDockWidget (line 46) | CustomDockWidget* MainWindow::dockWidget()
function QWidget (line 51) | QWidget* MainWindow::videoControlWidget()
function VideoPlayerWidget (line 56) | VideoPlayerWidget* MainWindow::getPlayer()
FILE: QtPlayer/mainwindow.h
function QT_BEGIN_NAMESPACE (line 5) | QT_BEGIN_NAMESPACE
function class (line 12) | class MainWindow : public QMainWindow
FILE: QtPlayer/mousehoverbutton.h
function class (line 19) | class MouseHoverButton : public QToolButton
FILE: QtPlayer/opengldisplay.cpp
type OpenGLDisplay::OpenGLDisplayImpl (line 23) | struct OpenGLDisplay::OpenGLDisplayImpl
FILE: QtPlayer/opengldisplay.h
type OpenGLDisplayImpl (line 37) | struct OpenGLDisplayImpl
function class (line 43) | class OpenGlException: public QException
FILE: QtPlayer/portaudioplayer.h
function class (line 6) | class PortAudioPlayer :
FILE: QtPlayer/videocontrol.h
function namespace (line 7) | namespace Ui
function class (line 12) | class VideoControl : public QWidget
FILE: QtPlayer/videodisplay.h
function class (line 7) | class VideoDisplay : public IFrameListener
FILE: QtPlayer/videoplayer.cpp
function FFmpegDecoderWrapper (line 13) | FFmpegDecoderWrapper* VideoPlayer::getDecoder()
function VideoDisplay (line 18) | VideoDisplay* VideoPlayer::getCurrentDisplay()
FILE: QtPlayer/videoplayer.h
type VideoState (line 9) | enum VideoState
function VideoState (line 30) | VideoState m_state{InitialState};
FILE: QtPlayer/videoplayerwidget.cpp
function VideoDisplay (line 29) | VideoDisplay* VideoPlayerWidget::getCurrentDisplay()
function QString (line 39) | QString VideoPlayerWidget::currentFilename() const
FILE: QtPlayer/videoplayerwidget.h
function VideoPlayerWidget (line 16) | inline VideoPlayerWidget* VideoPlayerWidgetInstance()
function VideoWidget (line 40) | VideoWidget* videoWidget() {return m_videoWidget;}
FILE: QtPlayer/videoprogressbar.h
function m_seekDisabled (line 24) | bool m_seekDisabled{false};
FILE: QtPlayer/videowidget.cpp
function QWidget (line 13) | QWidget* videoControlWidget()
function CustomDockWidget (line 18) | CustomDockWidget* dockWidget()
function QWidget (line 23) | QWidget* getPlayer()
function QPixmap (line 78) | QPixmap VideoWidget::drawPreview(const QImage& fromImage)
function VideoPlayerWidget (line 316) | VideoPlayerWidget* VideoWidget::VideoPlayerWidgetInstance()
FILE: QtPlayer/videowidget.h
function setNoPreviewImage (line 34) | void setNoPreviewImage(const QImage& noImage) { m_noPreviewImg = noImage; }
function m_playBtnRadius (line 63) | const int m_playBtnRadius{29};
FILE: QtPlayer/volumeprogressbar.h
function class (line 5) | class VolumeProgressBar : public QProgressBar
FILE: QtPlayer/widgetdisplay.h
function decoderClosing (line 22) | void decoderClosing() override;
function m_aspectRatio (line 29) | float m_aspectRatio { 0.75F };
FILE: ThirdParty/include/cmdline/cmdline.hpp
type cmdline (line 42) | namespace cmdline
type detail (line 44) | namespace detail
type lexical_cast_t (line 48) | struct lexical_cast_t
method Target (line 50) | static Target cast(const Source &arg)
type lexical_cast_t<std::string, Source> (line 57) | struct lexical_cast_t<std::string, Source>
method cast (line 59) | static std::string cast(const Source &arg)
type lexical_cast_t<Target, std::string> (line 66) | struct lexical_cast_t<Target, std::string>
method Target (line 68) | static Target cast(const std::string &arg)
function Target (line 80) | Target lexical_cast(const Source &arg)
function Target (line 86) | Target lexical_cast(const Source &arg)
function readable_typename (line 92) | std::string readable_typename()
function readable_typename (line 98) | std::string readable_typename()
function readable_typename (line 104) | std::string readable_typename()
function default_value (line 110) | std::string default_value(T def)
type default_reader (line 119) | struct default_reader
method T (line 121) | T operator()(const std::string &str)
type range_reader (line 128) | struct range_reader
method range_reader (line 130) | range_reader(const T &low, const T &high) : low(low), high(high) {}
method T (line 131) | T operator()(const std::string &s) const
function range (line 144) | range_reader<T> range(const T &low, const T &high)
type oneof_reader (line 150) | struct oneof_reader
method oneof_reader (line 152) | oneof_reader(std::initializer_list<T> list) : alt(list) {}
method T (line 154) | T operator()(const std::string &s)
function oneof (line 167) | oneof_reader<T> oneof(T a1, Args... args)
function custom_reader (line 173) | auto custom_reader(Checker &&checker)
class parser (line 185) | class parser
method add (line 188) | void add(const std::string &name,
method add (line 202) | void add(const std::string &name,
method footer (line 218) | void footer(const std::string &f)
method set_program_name (line 223) | void set_program_name(const std::string &name)
method exist (line 228) | bool exist(const std::string &name) const
method T (line 240) | const T &get(const std::string &name) const
method parse (line 263) | bool parse(const std::string &arg)
method parse (line 312) | bool parse(const std::vector<std::string> &args)
method parse (line 323) | bool parse(int argc, const char *const argv[])
method parse_check (line 428) | void parse_check(const std::string &arg)
method parse_check (line 435) | void parse_check(const std::vector<std::string> &args)
method parse_check (line 442) | void parse_check(int argc, char *argv[])
method error (line 449) | std::string error() const
method usage (line 467) | std::string usage() const
method check (line 505) | void check(bool ok)
method set_option (line 520) | void set_option(const std::string &name)
method set_option (line 534) | void set_option(const std::string &name, const std::string &value)
class option_base (line 548) | class option_base
class option_without_value (line 566) | class option_without_value : public option_base
method option_without_value (line 569) | option_without_value(const std::string &name,
method has_value (line 578) | bool has_value() const { return false; }
method set (line 580) | bool set()
method set (line 586) | bool set(const std::string &)
method has_set (line 591) | bool has_set() const
method valid (line 596) | bool valid() const
method must (line 601) | bool must() const
method short_name (line 611) | char short_name() const
method short_description (line 621) | std::string short_description() const
method format_description (line 627) | std::string format_description(const std::string &desc)
class option_with_value (line 645) | class option_with_value : public option_base
method option_with_value (line 648) | option_with_value(const std::string &name,
method T (line 659) | const T &get() const
method has_value (line 664) | bool has_value() const { return true; }
method set (line 666) | bool set()
method set (line 671) | bool set(const std::string &value)
method has_set (line 685) | bool has_set() const
method valid (line 690) | bool valid() const
method must (line 697) | bool must() const
method short_name (line 707) | char short_name() const
method short_description (line 717) | std::string short_description() const
method format_description (line 723) | std::string format_description(const std::string &desc)
class option_with_value_with_reader (line 747) | class option_with_value_with_reader : public option_with_value<T>
method option_with_value_with_reader (line 750) | option_with_value_with_reader(const std::string &name,
method T (line 759) | T read(const std::string &s)
FILE: ThirdParty/include/ini17/ini17.hpp
type ini17 (line 13) | namespace ini17
type detail (line 15) | namespace detail
type is_string (line 18) | struct is_string
function T (line 31) | inline T fromStringCast(const std::string &arg)
function toStringCast (line 48) | inline std::string toStringCast(const T &arg)
function toStringCast (line 54) | inline std::string toStringCast(const std::string &arg)
type TokenType (line 59) | enum class TokenType
type Token (line 68) | struct Token
method Token (line 74) | Token(TokenType type, std::string_view value, std::size_t line)
class Section (line 82) | class Section
class KeyValueEditer (line 85) | class KeyValueEditer
method KeyValueEditer (line 88) | KeyValueEditer(std::string &valueReference) : valueReference(value...
method Section (line 112) | Section(std::string_view name, KeyValueType kv) : name(name), kv(std...
method Section (line 113) | Section(std::string_view name) : Section(name, KeyValueType{}) {}
method Section (line 114) | Section(KeyValueType kv) : Section(std::string_view{}, std::move(kv)...
method Section (line 115) | Section() : Section(std::string_view{}, KeyValueType{}) {}
method setName (line 117) | void setName(std::string_view name)
method getName (line 122) | std::string_view getName() const
method KeyValueType (line 127) | const KeyValueType &getKeyValueMap() const
method get (line 133) | std::optional<T> get(std::string_view key) const
method set (line 142) | bool set(std::string_view key, const T &value)
method add (line 152) | bool add(std::string_view key, const T &value)
method KeyValueEditer (line 157) | KeyValueEditer operator[](std::string_view key)
method KeyValueEditer (line 88) | KeyValueEditer(std::string &valueReference) : valueReference(value...
class Parser (line 170) | class Parser
method get (line 174) | std::optional<T> get(std::string_view name) const
method get (line 190) | std::optional<T> get(std::string_view section, std::string_view key)...
method parseFile (line 201) | bool parseFile(std::string_view filePath)
method parse (line 214) | bool parse(std::string_view src)
method setDefaultSectionName (line 233) | void setDefaultSectionName(std::string_view section)
method getDefaultSectionName (line 238) | std::string_view getDefaultSectionName() const
method pushError (line 245) | void pushError(std::size_t line, Token token)
method pushError (line 250) | void pushError(std::string_view err)
method tokenize (line 256) | std::optional<std::vector<detail::Token>> tokenize(std::string_view ...
method analyze (line 412) | void analyze(const std::vector<detail::Token> &tokens)
class Generator (line 492) | class Generator
method push (line 496) | std::enable_if_t<std::conjunction_v<std::is_same<Section, std::remov...
method push (line 503) | std::enable_if_t<std::disjunction_v<std::negation<std::is_same<Secti...
method clear (line 509) | void clear() noexcept
method setHeader (line 514) | void setHeader(std::string_view msg)
method setFooter (line 519) | void setFooter(std::string_view msg)
method generateFile (line 524) | bool generateFile(std::string_view filePath) const
method generate (line 534) | std::string generate() const
FILE: ThirdParty/include/opencl/CL/opencl.hpp
type cl (line 579) | namespace cl {
type compatibility (line 632) | namespace compatibility {
class size_t (line 638) | class size_t
method size_type (line 659) | size_type& operator[](int index)
method size_type (line 664) | const size_type& operator[](int index) const
type make_kernel (line 10177) | struct make_kernel
method make_kernel (line 10183) | make_kernel(
method make_kernel (line 10190) | make_kernel(
method Event (line 10203) | Event operator()(
type detail (line 694) | namespace detail {
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
class Memory (line 706) | class Memory
method Memory (line 3411) | Memory() : detail::Wrapper<cl_type>() { }
method Memory (line 3424) | explicit Memory(const cl_mem& memory, bool retainObject) :
method Memory (line 3432) | Memory& operator = (const cl_mem& rhs)
method Memory (line 3441) | Memory(const Memory& mem) : detail::Wrapper<cl_type>(mem) {}
method Memory (line 3446) | Memory& operator = (const Memory &mem)
method Memory (line 3455) | Memory(Memory&& mem) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Memory (line 3460) | Memory& operator = (Memory &&mem)
method cl_int (line 3469) | cl_int getInfo(cl_mem_info name, T* param) const
method getInfo (line 3477) | typename
method cl_int (line 3504) | cl_int setDestructorCallback(
class Program (line 724) | class Program
method Program (line 6255) | Program(
method Program (line 6294) | Program(
method Program (line 6335) | Program(
method Program (line 6370) | Program(
method Program (line 6407) | Program(
method Program (line 6462) | Program(
method Program (line 6530) | Program(
method Program (line 6594) | Program(
method Program (line 6623) | Program() { }
method Program (line 6632) | explicit Program(const cl_program& program, bool retainObject = fals...
method Program (line 6635) | Program& operator = (const cl_program& rhs)
method Program (line 6644) | Program(const Program& program) : detail::Wrapper<cl_type>(program) {}
method Program (line 6649) | Program& operator = (const Program &program)
method Program (line 6658) | Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_typ...
method Program (line 6663) | Program& operator = (Program &&program)
method cl_int (line 6669) | cl_int build(
method cl_int (line 6694) | cl_int build(
method cl_int (line 6715) | cl_int build(
method cl_int (line 6732) | cl_int compile(
method cl_int (line 6752) | cl_int getInfo(cl_program_info name, T* param) const
method getInfo (line 6759) | typename
method cl_int (line 6773) | cl_int getBuildInfo(
method getBuildInfo (line 6782) | typename
method getBuildInfo (line 6801) | vector<std::pair<cl::Device, typename detail::param_traits<detail::c...
method cl_int (line 6839) | cl_int createKernels(vector<Kernel>* kernels)
method CL_API_PREFIX__VERSION_2_2_DEPRECATED (line 6881) | CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback(
method setSpecializationConstant (line 6899) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6915) | cl_int setSpecializationConstant(cl_uint index, size_type size, cons...
class Device (line 725) | class Device
method makeDefaultProvided (line 2168) | static void makeDefaultProvided(const Device &p) {
method unitTestClearDefault (line 2180) | static void unitTestClearDefault() {
method Device (line 2186) | Device() : detail::Wrapper<cl_type>() { }
method Device (line 2192) | explicit Device(const cl_device_id &device, bool retainObject = fals...
method Device (line 2199) | static Device getDefault(
method Device (line 2217) | static Device setDefault(const Device &default_device)
method Device (line 2228) | Device& operator = (const cl_device_id& rhs)
method Device (line 2237) | Device(const Device& dev) : detail::Wrapper<cl_type>(dev) {}
method Device (line 2242) | Device& operator = (const Device &dev)
method Device (line 2251) | Device(Device&& dev) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Device (line 2256) | Device& operator = (Device &&dev)
method cl_int (line 2264) | cl_int getInfo(cl_device_info name, T* param) const
method getInfo (line 2272) | typename
method cl_ulong (line 2293) | cl_ulong getHostTimer(cl_int *error = nullptr)
method getDeviceAndHostTimer (line 2317) | std::pair<cl_ulong, cl_ulong> getDeviceAndHostTimer(cl_int *error = ...
method cl_int (line 2337) | cl_int createSubDevices(
method cl_int (line 2374) | cl_int createSubDevices(
class Context (line 726) | class Context
method makeDefault (line 2824) | static void makeDefault() {
method makeDefaultProvided (line 2862) | static void makeDefaultProvided(const Context &c) {
method unitTestClearDefault (line 2874) | static void unitTestClearDefault() {
method Context (line 2883) | Context(
method Context (line 2918) | Context(
method Context (line 2948) | Context(
method Context (line 3034) | Context(const Context& ctx) : detail::Wrapper<cl_type>(ctx) {}
method Context (line 3039) | Context& operator = (const Context &ctx)
method Context (line 3048) | Context(Context&& ctx) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(s...
method Context (line 3053) | Context& operator = (Context &&ctx)
method Context (line 3064) | static Context getDefault(cl_int * err = NULL)
method Context (line 3081) | static Context setDefault(const Context &default_context)
method Context (line 3089) | Context() : detail::Wrapper<cl_type>() { }
method Context (line 3096) | explicit Context(const cl_context& context, bool retainObject = fals...
method Context (line 3104) | Context& operator = (const cl_context& rhs)
method cl_int (line 3112) | cl_int getInfo(cl_context_info name, T* param) const
method getInfo (line 3120) | typename
method cl_int (line 3137) | cl_int getSupportedImageFormats(
class CommandQueue (line 727) | class CommandQueue
method makeDefault (line 7103) | static void makeDefault()
method makeDefaultProvided (line 7135) | static void makeDefaultProvided(const CommandQueue &c) {
method unitTestClearDefault (line 7147) | static void unitTestClearDefault() {
method CommandQueue (line 7157) | CommandQueue(
method CommandQueue (line 7223) | CommandQueue(
method CommandQueue (line 7286) | explicit CommandQueue(
method CommandQueue (line 7353) | explicit CommandQueue(
method CommandQueue (line 7415) | CommandQueue(
method CommandQueue (line 7466) | CommandQueue(
method CommandQueue (line 7513) | static CommandQueue getDefault(cl_int * err = NULL)
method CommandQueue (line 7534) | static CommandQueue setDefault(const CommandQueue &default_queue)
method CommandQueue (line 7541) | CommandQueue() { }
method CommandQueue (line 7550) | explicit CommandQueue(const cl_command_queue& commandQueue, bool ret...
method CommandQueue (line 7553) | CommandQueue& operator = (const cl_command_queue& rhs)
method CommandQueue (line 7562) | CommandQueue(const CommandQueue& queue) : detail::Wrapper<cl_type>(q...
method CommandQueue (line 7567) | CommandQueue& operator = (const CommandQueue &queue)
method CommandQueue (line 7576) | CommandQueue(CommandQueue&& queue) CL_HPP_NOEXCEPT_ : detail::Wrappe...
method CommandQueue (line 7581) | CommandQueue& operator = (CommandQueue &&queue)
method cl_int (line 7588) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 7596) | typename
method cl_int (line 7609) | cl_int enqueueReadBuffer(
method cl_int (line 7634) | cl_int enqueueWriteBuffer(
method cl_int (line 7659) | cl_int enqueueCopyBuffer(
method cl_int (line 7683) | cl_int enqueueReadBufferRect(
method cl_int (line 7722) | cl_int enqueueWriteBufferRect(
method cl_int (line 7761) | cl_int enqueueCopyBufferRect(
method cl_int (line 7811) | cl_int enqueueFillBuffer(
method cl_int (line 7840) | cl_int enqueueReadImage(
method cl_int (line 7873) | cl_int enqueueWriteImage(
method cl_int (line 7906) | cl_int enqueueCopyImage(
method cl_int (line 7943) | cl_int enqueueFillImage(
method cl_int (line 7977) | cl_int enqueueFillImage(
method cl_int (line 8011) | cl_int enqueueFillImage(
method cl_int (line 8039) | cl_int enqueueCopyImageToBuffer(
method cl_int (line 8068) | cl_int enqueueCopyBufferToImage(
method cl_int (line 8165) | cl_int enqueueMapSVM(
method cl_int (line 8193) | cl_int enqueueMapSVM(
method cl_int (line 8220) | cl_int enqueueMapSVM(
method cl_int (line 8242) | cl_int enqueueUnmapMemObject(
method cl_int (line 8270) | cl_int enqueueUnmapSVM(
method cl_int (line 8295) | cl_int enqueueUnmapSVM(
method cl_int (line 8320) | cl_int enqueueUnmapSVM(
method cl_int (line 8353) | cl_int enqueueMarkerWithWaitList(
method cl_int (line 8383) | cl_int enqueueBarrierWithWaitList(
method cl_int (line 8406) | cl_int enqueueMigrateMemObjects(
method cl_int (line 8447) | cl_int enqueueMigrateSVM(
method cl_int (line 8476) | cl_int enqueueMigrateSVM(
method cl_int (line 8492) | cl_int enqueueMigrateSVM(
method cl_int (line 8514) | cl_int enqueueMigrateSVM(
method cl_int (line 8529) | cl_int enqueueMigrateSVM(
method cl_int (line 8550) | cl_int enqueueMigrateSVM(
method cl_int (line 8561) | cl_int enqueueNDRangeKernel(
method CL_API_PREFIX__VERSION_1_2_DEPRECATED (line 8588) | CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int enqueueTask(
method cl_int (line 8609) | cl_int enqueueNativeKernel(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8648) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8664) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8676) | cl_int enqueueAcquireGLObjects(
method cl_int (line 8698) | cl_int enqueueReleaseGLObjects(
method cl_int (line 8730) | cl_int enqueueAcquireD3D10Objects(
method cl_int (line 8763) | cl_int enqueueReleaseD3D10Objects(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8801) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8810) | cl_int flush() const
method cl_int (line 8815) | cl_int finish() const
class DeviceCommandQueue (line 728) | class DeviceCommandQueue
method DeviceCommandQueue (line 8848) | DeviceCommandQueue() { }
method DeviceCommandQueue (line 8853) | DeviceCommandQueue(DeviceQueueProperties properties, cl_int* err = N...
method DeviceCommandQueue (line 8876) | DeviceCommandQueue(
method DeviceCommandQueue (line 8900) | DeviceCommandQueue(
method DeviceCommandQueue (line 8930) | explicit DeviceCommandQueue(const cl_command_queue& commandQueue, bo...
method DeviceCommandQueue (line 8933) | DeviceCommandQueue& operator = (const cl_command_queue& rhs)
method DeviceCommandQueue (line 8942) | DeviceCommandQueue(const DeviceCommandQueue& queue) : detail::Wrappe...
method DeviceCommandQueue (line 8947) | DeviceCommandQueue& operator = (const DeviceCommandQueue &queue)
method DeviceCommandQueue (line 8956) | DeviceCommandQueue(DeviceCommandQueue&& queue) CL_HPP_NOEXCEPT_ : de...
method DeviceCommandQueue (line 8961) | DeviceCommandQueue& operator = (DeviceCommandQueue &&queue)
method cl_int (line 8968) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 8976) | typename
method DeviceCommandQueue (line 8995) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9025) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9053) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9085) | static DeviceCommandQueue updateDefault(const Context &context, cons...
method DeviceCommandQueue (line 9100) | static DeviceCommandQueue getDefault(const CommandQueue &queue, cl_i...
class Memory (line 729) | class Memory
method Memory (line 3411) | Memory() : detail::Wrapper<cl_type>() { }
method Memory (line 3424) | explicit Memory(const cl_mem& memory, bool retainObject) :
method Memory (line 3432) | Memory& operator = (const cl_mem& rhs)
method Memory (line 3441) | Memory(const Memory& mem) : detail::Wrapper<cl_type>(mem) {}
method Memory (line 3446) | Memory& operator = (const Memory &mem)
method Memory (line 3455) | Memory(Memory&& mem) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Memory (line 3460) | Memory& operator = (Memory &&mem)
method cl_int (line 3469) | cl_int getInfo(cl_mem_info name, T* param) const
method getInfo (line 3477) | typename
method cl_int (line 3504) | cl_int setDestructorCallback(
class Buffer (line 730) | class Buffer
method Buffer (line 3908) | Buffer(
method Buffer (line 3933) | Buffer(
method Buffer (line 3957) | Buffer(
method Buffer (line 4020) | Buffer() : Memory() { }
method Buffer (line 4029) | explicit Buffer(const cl_mem& buffer, bool retainObject = false) :
method Buffer (line 4036) | Buffer& operator = (const cl_mem& rhs)
method Buffer (line 4045) | Buffer(const Buffer& buf) : Memory(buf) {}
method Buffer (line 4050) | Buffer& operator = (const Buffer &buf)
method Buffer (line 4059) | Buffer(Buffer&& buf) CL_HPP_NOEXCEPT_ : Memory(std::move(buf)) {}
method Buffer (line 4064) | Buffer& operator = (Buffer &&buf)
method Buffer (line 4075) | Buffer createSubBuffer(
class Pipe (line 731) | class Pipe
method Pipe (line 5501) | Pipe(
method Pipe (line 5526) | Pipe(
method Pipe (line 5545) | Pipe() : Memory() { }
method Pipe (line 5554) | explicit Pipe(const cl_mem& pipe, bool retainObject = false) :
method Pipe (line 5561) | Pipe& operator = (const cl_mem& rhs)
method Pipe (line 5570) | Pipe(const Pipe& pipe) : Memory(pipe) {}
method Pipe (line 5575) | Pipe& operator = (const Pipe &pipe)
method Pipe (line 5584) | Pipe(Pipe&& pipe) CL_HPP_NOEXCEPT_ : Memory(std::move(pipe)) {}
method Pipe (line 5589) | Pipe& operator = (Pipe &&pipe)
method cl_int (line 5597) | cl_int getInfo(cl_pipe_info name, T* param) const
method getInfo (line 5605) | typename
class Error (line 738) | class Error : public std::exception
method Error (line 753) | Error(cl_int err, const char * errStr = NULL) : err_(err), errStr_(e...
method cl_int (line 776) | cl_int err(void) const { return err_; }
type detail (line 784) | namespace detail
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
type detail (line 976) | namespace detail {
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
class BuildError (line 2069) | class BuildError : public Error
method BuildError (line 2074) | BuildError(cl_int err, const char * errStr, const BuildLogType &vec)...
method BuildLogType (line 2078) | BuildLogType getBuildLog() const
type detail (line 2083) | namespace detail {
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
type detail (line 2097) | namespace detail {
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
type ImageFormat (line 2116) | struct ImageFormat : public cl_image_format
method ImageFormat (line 2119) | ImageFormat(){}
method ImageFormat (line 2122) | ImageFormat(cl_channel_order order, cl_channel_type type)
method ImageFormat (line 2129) | ImageFormat(const ImageFormat &other) { *this = other; }
method ImageFormat (line 2132) | ImageFormat& operator = (const ImageFormat& rhs)
class Device (line 2149) | class Device : public detail::Wrapper<cl_device_id>
method makeDefaultProvided (line 2168) | static void makeDefaultProvided(const Device &p) {
method unitTestClearDefault (line 2180) | static void unitTestClearDefault() {
method Device (line 2186) | Device() : detail::Wrapper<cl_type>() { }
method Device (line 2192) | explicit Device(const cl_device_id &device, bool retainObject = fals...
method Device (line 2199) | static Device getDefault(
method Device (line 2217) | static Device setDefault(const Device &default_device)
method Device (line 2228) | Device& operator = (const cl_device_id& rhs)
method Device (line 2237) | Device(const Device& dev) : detail::Wrapper<cl_type>(dev) {}
method Device (line 2242) | Device& operator = (const Device &dev)
method Device (line 2251) | Device(Device&& dev) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Device (line 2256) | Device& operator = (Device &&dev)
method cl_int (line 2264) | cl_int getInfo(cl_device_info name, T* param) const
method getInfo (line 2272) | typename
method cl_ulong (line 2293) | cl_ulong getHostTimer(cl_int *error = nullptr)
method getDeviceAndHostTimer (line 2317) | std::pair<cl_ulong, cl_ulong> getDeviceAndHostTimer(cl_int *error = ...
method cl_int (line 2337) | cl_int createSubDevices(
method cl_int (line 2374) | cl_int createSubDevices(
class Platform (line 2429) | class Platform : public detail::Wrapper<cl_platform_id>
method makeDefault (line 2441) | static void makeDefault() {
method makeDefaultProvided (line 2484) | static void makeDefaultProvided(const Platform &p) {
method unitTestClearDefault (line 2496) | static void unitTestClearDefault() {
method Platform (line 2502) | Platform() : detail::Wrapper<cl_type>() { }
method Platform (line 2511) | explicit Platform(const cl_platform_id &platform, bool retainObject ...
method Platform (line 2518) | Platform& operator = (const cl_platform_id& rhs)
method Platform (line 2524) | static Platform getDefault(
method Platform (line 2542) | static Platform setDefault(const Platform &default_platform)
method cl_int (line 2551) | cl_int getInfo(cl_platform_info name, T* param) const
method getInfo (line 2559) | typename
method cl_int (line 2576) | cl_int getDevices(
method cl_int (line 2637) | cl_int getDevices(
method cl_int (line 2706) | static cl_int get(
method cl_int (line 2741) | static cl_int get(
method Platform (line 2760) | static Platform get(
method cl_int (line 2773) | cl_int
function cl_int (line 2796) | inline cl_int
class Context (line 2811) | class Context
method makeDefault (line 2824) | static void makeDefault() {
method makeDefaultProvided (line 2862) | static void makeDefaultProvided(const Context &c) {
method unitTestClearDefault (line 2874) | static void unitTestClearDefault() {
method Context (line 2883) | Context(
method Context (line 2918) | Context(
method Context (line 2948) | Context(
method Context (line 3034) | Context(const Context& ctx) : detail::Wrapper<cl_type>(ctx) {}
method Context (line 3039) | Context& operator = (const Context &ctx)
method Context (line 3048) | Context(Context&& ctx) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(s...
method Context (line 3053) | Context& operator = (Context &&ctx)
method Context (line 3064) | static Context getDefault(cl_int * err = NULL)
method Context (line 3081) | static Context setDefault(const Context &default_context)
method Context (line 3089) | Context() : detail::Wrapper<cl_type>() { }
method Context (line 3096) | explicit Context(const cl_context& context, bool retainObject = fals...
method Context (line 3104) | Context& operator = (const cl_context& rhs)
method cl_int (line 3112) | cl_int getInfo(cl_context_info name, T* param) const
method getInfo (line 3120) | typename
method cl_int (line 3137) | cl_int getSupportedImageFormats(
function catch (line 3206) | catch (cl::Error &e) {
class Event (line 3224) | class Event : public detail::Wrapper<cl_event>
method Event (line 3228) | Event() : detail::Wrapper<cl_type>() { }
method Event (line 3238) | explicit Event(const cl_event& event, bool retainObject = false) :
method Event (line 3246) | Event& operator = (const cl_event& rhs)
method cl_int (line 3254) | cl_int getInfo(cl_event_info name, T* param) const
method getInfo (line 3262) | typename
method cl_int (line 3277) | cl_int getProfilingInfo(cl_profiling_info name, T* param) const
method getProfilingInfo (line 3285) | typename
method cl_int (line 3302) | cl_int wait() const
method cl_int (line 3314) | cl_int setCallback(
method cl_int (line 3333) | static cl_int
class UserEvent (line 3348) | class UserEvent : public Event
method UserEvent (line 3355) | UserEvent(
method UserEvent (line 3371) | UserEvent() : Event() { }
method cl_int (line 3377) | cl_int setStatus(cl_int status)
function cl_int (line 3390) | inline static cl_int
class Memory (line 3407) | class Memory : public detail::Wrapper<cl_mem>
method Memory (line 3411) | Memory() : detail::Wrapper<cl_type>() { }
method Memory (line 3424) | explicit Memory(const cl_mem& memory, bool retainObject) :
method Memory (line 3432) | Memory& operator = (const cl_mem& rhs)
method Memory (line 3441) | Memory(const Memory& mem) : detail::Wrapper<cl_type>(mem) {}
method Memory (line 3446) | Memory& operator = (const Memory &mem)
method Memory (line 3455) | Memory(Memory&& mem) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Memory (line 3460) | Memory& operator = (Memory &&mem)
method cl_int (line 3469) | cl_int getInfo(cl_mem_info name, T* param) const
method getInfo (line 3477) | typename
method cl_int (line 3504) | cl_int setDestructorCallback(
class Buffer (line 3520) | class Buffer
method Buffer (line 3908) | Buffer(
method Buffer (line 3933) | Buffer(
method Buffer (line 3957) | Buffer(
method Buffer (line 4020) | Buffer() : Memory() { }
method Buffer (line 4029) | explicit Buffer(const cl_mem& buffer, bool retainObject = false) :
method Buffer (line 4036) | Buffer& operator = (const cl_mem& rhs)
method Buffer (line 4045) | Buffer(const Buffer& buf) : Memory(buf) {}
method Buffer (line 4050) | Buffer& operator = (const Buffer &buf)
method Buffer (line 4059) | Buffer(Buffer&& buf) CL_HPP_NOEXCEPT_ : Memory(std::move(buf)) {}
method Buffer (line 4064) | Buffer& operator = (Buffer &&buf)
method Buffer (line 4075) | Buffer createSubBuffer(
type detail (line 3532) | namespace detail
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
class SVMTraitReadWrite (line 3545) | class SVMTraitReadWrite
method cl_svm_mem_flags (line 3548) | static cl_svm_mem_flags getSVMMemFlags()
class SVMTraitReadOnly (line 3556) | class SVMTraitReadOnly
method cl_svm_mem_flags (line 3559) | static cl_svm_mem_flags getSVMMemFlags()
class SVMTraitWriteOnly (line 3567) | class SVMTraitWriteOnly
method cl_svm_mem_flags (line 3570) | static cl_svm_mem_flags getSVMMemFlags()
class SVMTraitCoarse (line 3578) | class SVMTraitCoarse
method cl_svm_mem_flags (line 3581) | static cl_svm_mem_flags getSVMMemFlags()
class SVMTraitFine (line 3588) | class SVMTraitFine
method cl_svm_mem_flags (line 3591) | static cl_svm_mem_flags getSVMMemFlags()
class SVMTraitAtomic (line 3599) | class SVMTraitAtomic
method cl_svm_mem_flags (line 3602) | static cl_svm_mem_flags getSVMMemFlags()
class SVMAllocator (line 3633) | class SVMAllocator {
type rebind (line 3647) | struct rebind
method SVMAllocator (line 3655) | SVMAllocator() :
method SVMAllocator (line 3660) | explicit SVMAllocator(cl::Context context) :
method SVMAllocator (line 3666) | SVMAllocator(const SVMAllocator &other) :
method SVMAllocator (line 3672) | SVMAllocator(const SVMAllocator<U, SVMTrait> &other) :
method pointer (line 3681) | pointer address(reference r) CL_HPP_NOEXCEPT_
method const_pointer (line 3686) | const_pointer address(const_reference r) CL_HPP_NOEXCEPT_
method pointer (line 3697) | pointer allocate(
method deallocate (line 3730) | void deallocate(pointer p, size_type)
method size_type (line 3739) | size_type max_size() const CL_HPP_NOEXCEPT_
method construct (line 3753) | void construct(U* p, Args&&... args)
method destroy (line 3759) | void destroy(U* p)
class SVMAllocator<void, SVMTrait> (line 3780) | class SVMAllocator<void, SVMTrait> {
type rebind (line 3787) | struct rebind
type detail (line 3797) | namespace detail
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
function allocate_pointer (line 3827) | cl::pointer<T, detail::Deleter<Alloc>> allocate_pointer(const Alloc &a...
function allocate_svm (line 3856) | cl::pointer<T, detail::Deleter<SVMAllocator<T, SVMTrait>>> allocate_sv...
function allocate_svm (line 3863) | cl::pointer<T, detail::Deleter<SVMAllocator<T, SVMTrait>>> allocate_sv...
class Buffer (line 3897) | class Buffer : public Memory
method Buffer (line 3908) | Buffer(
method Buffer (line 3933) | Buffer(
method Buffer (line 3957) | Buffer(
method Buffer (line 4020) | Buffer() : Memory() { }
method Buffer (line 4029) | explicit Buffer(const cl_mem& buffer, bool retainObject = false) :
method Buffer (line 4036) | Buffer& operator = (const cl_mem& rhs)
method Buffer (line 4045) | Buffer(const Buffer& buf) : Memory(buf) {}
method Buffer (line 4050) | Buffer& operator = (const Buffer &buf)
method Buffer (line 4059) | Buffer(Buffer&& buf) CL_HPP_NOEXCEPT_ : Memory(std::move(buf)) {}
method Buffer (line 4064) | Buffer& operator = (Buffer &&buf)
method Buffer (line 4075) | Buffer createSubBuffer(
class BufferD3D10 (line 4109) | class BufferD3D10 : public Buffer
method BufferD3D10 (line 4119) | BufferD3D10(
method BufferD3D10 (line 4156) | BufferD3D10() : Buffer() { }
method BufferD3D10 (line 4165) | explicit BufferD3D10(const cl_mem& buffer, bool retainObject = false) :
method BufferD3D10 (line 4172) | BufferD3D10& operator = (const cl_mem& rhs)
method BufferD3D10 (line 4181) | BufferD3D10(const BufferD3D10& buf) :
method BufferD3D10 (line 4187) | BufferD3D10& operator = (const BufferD3D10 &buf)
method BufferD3D10 (line 4196) | BufferD3D10(BufferD3D10&& buf) CL_HPP_NOEXCEPT_ : Buffer(std::move(b...
method BufferD3D10 (line 4201) | BufferD3D10& operator = (BufferD3D10 &&buf)
class BufferGL (line 4217) | class BufferGL : public Buffer
method BufferGL (line 4225) | BufferGL(
method BufferGL (line 4245) | BufferGL() : Buffer() { }
method BufferGL (line 4254) | explicit BufferGL(const cl_mem& buffer, bool retainObject = false) :
method BufferGL (line 4261) | BufferGL& operator = (const cl_mem& rhs)
method BufferGL (line 4270) | BufferGL(const BufferGL& buf) : Buffer(buf) {}
method BufferGL (line 4275) | BufferGL& operator = (const BufferGL &buf)
method BufferGL (line 4284) | BufferGL(BufferGL&& buf) CL_HPP_NOEXCEPT_ : Buffer(std::move(buf)) {}
method BufferGL (line 4289) | BufferGL& operator = (BufferGL &&buf)
method cl_int (line 4296) | cl_int getObjectInfo(
class BufferRenderGL (line 4314) | class BufferRenderGL : public Buffer
method BufferRenderGL (line 4322) | BufferRenderGL(
method BufferRenderGL (line 4342) | BufferRenderGL() : Buffer() { }
method BufferRenderGL (line 4351) | explicit BufferRenderGL(const cl_mem& buffer, bool retainObject = fa...
method BufferRenderGL (line 4358) | BufferRenderGL& operator = (const cl_mem& rhs)
method BufferRenderGL (line 4367) | BufferRenderGL(const BufferRenderGL& buf) : Buffer(buf) {}
method BufferRenderGL (line 4372) | BufferRenderGL& operator = (const BufferRenderGL &buf)
method BufferRenderGL (line 4381) | BufferRenderGL(BufferRenderGL&& buf) CL_HPP_NOEXCEPT_ : Buffer(std::...
method BufferRenderGL (line 4386) | BufferRenderGL& operator = (BufferRenderGL &&buf)
method cl_int (line 4393) | cl_int getObjectInfo(
class Image (line 4409) | class Image : public Memory
method Image (line 4413) | Image() : Memory() { }
method Image (line 4422) | explicit Image(const cl_mem& image, bool retainObject = false) :
method Image (line 4429) | Image& operator = (const cl_mem& rhs)
method Image (line 4438) | Image(const Image& img) : Memory(img) {}
method Image (line 4443) | Image& operator = (const Image &img)
method Image (line 4452) | Image(Image&& img) CL_HPP_NOEXCEPT_ : Memory(std::move(img)) {}
method Image (line 4457) | Image& operator = (Image &&img)
method cl_int (line 4467) | cl_int getImageInfo(cl_image_info name, T* param) const
method getImageInfo (line 4475) | typename
class Image1D (line 4496) | class Image1D : public Image
method Image1D (line 4503) | Image1D(
method Image1D (line 4532) | Image1D() { }
method Image1D (line 4541) | explicit Image1D(const cl_mem& image1D, bool retainObject = false) :
method Image1D (line 4548) | Image1D& operator = (const cl_mem& rhs)
method Image1D (line 4557) | Image1D(const Image1D& img) : Image(img) {}
method Image1D (line 4562) | Image1D& operator = (const Image1D &img)
method Image1D (line 4571) | Image1D(Image1D&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {}
method Image1D (line 4576) | Image1D& operator = (Image1D &&img)
class Image1DBuffer (line 4587) | class Image1DBuffer : public Image
method Image1DBuffer (line 4590) | Image1DBuffer(
method Image1DBuffer (line 4619) | Image1DBuffer() { }
method Image1DBuffer (line 4628) | explicit Image1DBuffer(const cl_mem& image1D, bool retainObject = fa...
method Image1DBuffer (line 4631) | Image1DBuffer& operator = (const cl_mem& rhs)
method Image1DBuffer (line 4640) | Image1DBuffer(const Image1DBuffer& img) : Image(img) {}
method Image1DBuffer (line 4645) | Image1DBuffer& operator = (const Image1DBuffer &img)
method Image1DBuffer (line 4654) | Image1DBuffer(Image1DBuffer&& img) CL_HPP_NOEXCEPT_ : Image(std::mov...
method Image1DBuffer (line 4659) | Image1DBuffer& operator = (Image1DBuffer &&img)
class Image1DArray (line 4670) | class Image1DArray : public Image
method Image1DArray (line 4673) | Image1DArray(
method Image1DArray (line 4705) | Image1DArray() { }
method Image1DArray (line 4714) | explicit Image1DArray(const cl_mem& imageArray, bool retainObject = ...
method Image1DArray (line 4718) | Image1DArray& operator = (const cl_mem& rhs)
method Image1DArray (line 4727) | Image1DArray(const Image1DArray& img) : Image(img) {}
method Image1DArray (line 4732) | Image1DArray& operator = (const Image1DArray &img)
method Image1DArray (line 4741) | Image1DArray(Image1DArray&& img) CL_HPP_NOEXCEPT_ : Image(std::move(...
method Image1DArray (line 4746) | Image1DArray& operator = (Image1DArray &&img)
class Image2D (line 4762) | class Image2D : public Image
method Image2D (line 4769) | Image2D(
method Image2D (line 4837) | Image2D(
method Image2D (line 4883) | Image2D(
method Image2D (line 4934) | Image2D() { }
method Image2D (line 4943) | explicit Image2D(const cl_mem& image2D, bool retainObject = false) :
method Image2D (line 4950) | Image2D& operator = (const cl_mem& rhs)
method Image2D (line 4959) | Image2D(const Image2D& img) : Image(img) {}
method Image2D (line 4964) | Image2D& operator = (const Image2D &img)
method Image2D (line 4973) | Image2D(Image2D&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {}
method Image2D (line 4978) | Image2D& operator = (Image2D &&img)
function Image2DGL (line 4997) | class CL_API_PREFIX__VERSION_1_1_DEPRECATED Image2DGL : public Image2D
class Image2DArray (line 5087) | class Image2DArray : public Image
method Image2DArray (line 5090) | Image2DArray(
method Image2DArray (line 5126) | Image2DArray() { }
method Image2DArray (line 5135) | explicit Image2DArray(const cl_mem& imageArray, bool retainObject = ...
method Image2DArray (line 5137) | Image2DArray& operator = (const cl_mem& rhs)
method Image2DArray (line 5146) | Image2DArray(const Image2DArray& img) : Image(img) {}
method Image2DArray (line 5151) | Image2DArray& operator = (const Image2DArray &img)
method Image2DArray (line 5160) | Image2DArray(Image2DArray&& img) CL_HPP_NOEXCEPT_ : Image(std::move(...
method Image2DArray (line 5165) | Image2DArray& operator = (Image2DArray &&img)
class Image3D (line 5179) | class Image3D : public Image
method Image3D (line 5186) | Image3D(
method Image3D (line 5254) | Image3D() : Image() { }
method Image3D (line 5263) | explicit Image3D(const cl_mem& image3D, bool retainObject = false) :
method Image3D (line 5270) | Image3D& operator = (const cl_mem& rhs)
method Image3D (line 5279) | Image3D(const Image3D& img) : Image(img) {}
method Image3D (line 5284) | Image3D& operator = (const Image3D &img)
method Image3D (line 5293) | Image3D(Image3D&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {}
method Image3D (line 5298) | Image3D& operator = (Image3D &&img)
class Image3DGL (line 5314) | class Image3DGL : public Image3D
method Image3DGL (line 5322) | Image3DGL(
method Image3DGL (line 5346) | Image3DGL() : Image3D() { }
method Image3DGL (line 5355) | explicit Image3DGL(const cl_mem& image, bool retainObject = false) :
method Image3DGL (line 5362) | Image3DGL& operator = (const cl_mem& rhs)
method Image3DGL (line 5371) | Image3DGL(const Image3DGL& img) : Image3D(img) {}
method Image3DGL (line 5376) | Image3DGL& operator = (const Image3DGL &img)
method Image3DGL (line 5385) | Image3DGL(Image3DGL&& img) CL_HPP_NOEXCEPT_ : Image3D(std::move(img)...
method Image3DGL (line 5390) | Image3DGL& operator = (Image3DGL &&img)
class ImageGL (line 5405) | class ImageGL : public Image
method ImageGL (line 5408) | ImageGL(
method ImageGL (line 5431) | ImageGL() : Image() { }
method ImageGL (line 5440) | explicit ImageGL(const cl_mem& image, bool retainObject = false) :
method ImageGL (line 5443) | ImageGL& operator = (const cl_mem& rhs)
method ImageGL (line 5452) | ImageGL(const ImageGL& img) : Image(img) {}
method ImageGL (line 5457) | ImageGL& operator = (const ImageGL &img)
method ImageGL (line 5466) | ImageGL(ImageGL&& img) CL_HPP_NOEXCEPT_ : Image(std::move(img)) {}
method ImageGL (line 5471) | ImageGL& operator = (ImageGL &&img)
class Pipe (line 5488) | class Pipe : public Memory
method Pipe (line 5501) | Pipe(
method Pipe (line 5526) | Pipe(
method Pipe (line 5545) | Pipe() : Memory() { }
method Pipe (line 5554) | explicit Pipe(const cl_mem& pipe, bool retainObject = false) :
method Pipe (line 5561) | Pipe& operator = (const cl_mem& rhs)
method Pipe (line 5570) | Pipe(const Pipe& pipe) : Memory(pipe) {}
method Pipe (line 5575) | Pipe& operator = (const Pipe &pipe)
method Pipe (line 5584) | Pipe(Pipe&& pipe) CL_HPP_NOEXCEPT_ : Memory(std::move(pipe)) {}
method Pipe (line 5589) | Pipe& operator = (Pipe &&pipe)
method cl_int (line 5597) | cl_int getInfo(cl_pipe_info name, T* param) const
method getInfo (line 5605) | typename
class Sampler (line 5629) | class Sampler : public detail::Wrapper<cl_sampler>
method Sampler (line 5633) | Sampler() { }
method Sampler (line 5639) | Sampler(
method Sampler (line 5686) | explicit Sampler(const cl_sampler& sampler, bool retainObject = fals...
method Sampler (line 5694) | Sampler& operator = (const cl_sampler& rhs)
method Sampler (line 5703) | Sampler(const Sampler& sam) : detail::Wrapper<cl_type>(sam) {}
method Sampler (line 5708) | Sampler& operator = (const Sampler &sam)
method Sampler (line 5717) | Sampler(Sampler&& sam) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(s...
method Sampler (line 5722) | Sampler& operator = (Sampler &&sam)
method cl_int (line 5730) | cl_int getInfo(cl_sampler_info name, T* param) const
method getInfo (line 5738) | typename
class Program (line 5752) | class Program
method Program (line 6255) | Program(
method Program (line 6294) | Program(
method Program (line 6335) | Program(
method Program (line 6370) | Program(
method Program (line 6407) | Program(
method Program (line 6462) | Program(
method Program (line 6530) | Program(
method Program (line 6594) | Program(
method Program (line 6623) | Program() { }
method Program (line 6632) | explicit Program(const cl_program& program, bool retainObject = fals...
method Program (line 6635) | Program& operator = (const cl_program& rhs)
method Program (line 6644) | Program(const Program& program) : detail::Wrapper<cl_type>(program) {}
method Program (line 6649) | Program& operator = (const Program &program)
method Program (line 6658) | Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_typ...
method Program (line 6663) | Program& operator = (Program &&program)
method cl_int (line 6669) | cl_int build(
method cl_int (line 6694) | cl_int build(
method cl_int (line 6715) | cl_int build(
method cl_int (line 6732) | cl_int compile(
method cl_int (line 6752) | cl_int getInfo(cl_program_info name, T* param) const
method getInfo (line 6759) | typename
method cl_int (line 6773) | cl_int getBuildInfo(
method getBuildInfo (line 6782) | typename
method getBuildInfo (line 6801) | vector<std::pair<cl::Device, typename detail::param_traits<detail::c...
method cl_int (line 6839) | cl_int createKernels(vector<Kernel>* kernels)
method CL_API_PREFIX__VERSION_2_2_DEPRECATED (line 6881) | CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback(
method setSpecializationConstant (line 6899) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6915) | cl_int setSpecializationConstant(cl_uint index, size_type size, cons...
class CommandQueue (line 5753) | class CommandQueue
method makeDefault (line 7103) | static void makeDefault()
method makeDefaultProvided (line 7135) | static void makeDefaultProvided(const CommandQueue &c) {
method unitTestClearDefault (line 7147) | static void unitTestClearDefault() {
method CommandQueue (line 7157) | CommandQueue(
method CommandQueue (line 7223) | CommandQueue(
method CommandQueue (line 7286) | explicit CommandQueue(
method CommandQueue (line 7353) | explicit CommandQueue(
method CommandQueue (line 7415) | CommandQueue(
method CommandQueue (line 7466) | CommandQueue(
method CommandQueue (line 7513) | static CommandQueue getDefault(cl_int * err = NULL)
method CommandQueue (line 7534) | static CommandQueue setDefault(const CommandQueue &default_queue)
method CommandQueue (line 7541) | CommandQueue() { }
method CommandQueue (line 7550) | explicit CommandQueue(const cl_command_queue& commandQueue, bool ret...
method CommandQueue (line 7553) | CommandQueue& operator = (const cl_command_queue& rhs)
method CommandQueue (line 7562) | CommandQueue(const CommandQueue& queue) : detail::Wrapper<cl_type>(q...
method CommandQueue (line 7567) | CommandQueue& operator = (const CommandQueue &queue)
method CommandQueue (line 7576) | CommandQueue(CommandQueue&& queue) CL_HPP_NOEXCEPT_ : detail::Wrappe...
method CommandQueue (line 7581) | CommandQueue& operator = (CommandQueue &&queue)
method cl_int (line 7588) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 7596) | typename
method cl_int (line 7609) | cl_int enqueueReadBuffer(
method cl_int (line 7634) | cl_int enqueueWriteBuffer(
method cl_int (line 7659) | cl_int enqueueCopyBuffer(
method cl_int (line 7683) | cl_int enqueueReadBufferRect(
method cl_int (line 7722) | cl_int enqueueWriteBufferRect(
method cl_int (line 7761) | cl_int enqueueCopyBufferRect(
method cl_int (line 7811) | cl_int enqueueFillBuffer(
method cl_int (line 7840) | cl_int enqueueReadImage(
method cl_int (line 7873) | cl_int enqueueWriteImage(
method cl_int (line 7906) | cl_int enqueueCopyImage(
method cl_int (line 7943) | cl_int enqueueFillImage(
method cl_int (line 7977) | cl_int enqueueFillImage(
method cl_int (line 8011) | cl_int enqueueFillImage(
method cl_int (line 8039) | cl_int enqueueCopyImageToBuffer(
method cl_int (line 8068) | cl_int enqueueCopyBufferToImage(
method cl_int (line 8165) | cl_int enqueueMapSVM(
method cl_int (line 8193) | cl_int enqueueMapSVM(
method cl_int (line 8220) | cl_int enqueueMapSVM(
method cl_int (line 8242) | cl_int enqueueUnmapMemObject(
method cl_int (line 8270) | cl_int enqueueUnmapSVM(
method cl_int (line 8295) | cl_int enqueueUnmapSVM(
method cl_int (line 8320) | cl_int enqueueUnmapSVM(
method cl_int (line 8353) | cl_int enqueueMarkerWithWaitList(
method cl_int (line 8383) | cl_int enqueueBarrierWithWaitList(
method cl_int (line 8406) | cl_int enqueueMigrateMemObjects(
method cl_int (line 8447) | cl_int enqueueMigrateSVM(
method cl_int (line 8476) | cl_int enqueueMigrateSVM(
method cl_int (line 8492) | cl_int enqueueMigrateSVM(
method cl_int (line 8514) | cl_int enqueueMigrateSVM(
method cl_int (line 8529) | cl_int enqueueMigrateSVM(
method cl_int (line 8550) | cl_int enqueueMigrateSVM(
method cl_int (line 8561) | cl_int enqueueNDRangeKernel(
method CL_API_PREFIX__VERSION_1_2_DEPRECATED (line 8588) | CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int enqueueTask(
method cl_int (line 8609) | cl_int enqueueNativeKernel(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8648) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8664) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8676) | cl_int enqueueAcquireGLObjects(
method cl_int (line 8698) | cl_int enqueueReleaseGLObjects(
method cl_int (line 8730) | cl_int enqueueAcquireD3D10Objects(
method cl_int (line 8763) | cl_int enqueueReleaseD3D10Objects(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8801) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8810) | cl_int flush() const
method cl_int (line 8815) | cl_int finish() const
class DeviceCommandQueue (line 5754) | class DeviceCommandQueue
method DeviceCommandQueue (line 8848) | DeviceCommandQueue() { }
method DeviceCommandQueue (line 8853) | DeviceCommandQueue(DeviceQueueProperties properties, cl_int* err = N...
method DeviceCommandQueue (line 8876) | DeviceCommandQueue(
method DeviceCommandQueue (line 8900) | DeviceCommandQueue(
method DeviceCommandQueue (line 8930) | explicit DeviceCommandQueue(const cl_command_queue& commandQueue, bo...
method DeviceCommandQueue (line 8933) | DeviceCommandQueue& operator = (const cl_command_queue& rhs)
method DeviceCommandQueue (line 8942) | DeviceCommandQueue(const DeviceCommandQueue& queue) : detail::Wrappe...
method DeviceCommandQueue (line 8947) | DeviceCommandQueue& operator = (const DeviceCommandQueue &queue)
method DeviceCommandQueue (line 8956) | DeviceCommandQueue(DeviceCommandQueue&& queue) CL_HPP_NOEXCEPT_ : de...
method DeviceCommandQueue (line 8961) | DeviceCommandQueue& operator = (DeviceCommandQueue &&queue)
method cl_int (line 8968) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 8976) | typename
method DeviceCommandQueue (line 8995) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9025) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9053) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9085) | static DeviceCommandQueue updateDefault(const Context &context, cons...
method DeviceCommandQueue (line 9100) | static DeviceCommandQueue getDefault(const CommandQueue &queue, cl_i...
class Kernel (line 5755) | class Kernel
method Kernel (line 5901) | Kernel() { }
method Kernel (line 5911) | explicit Kernel(const cl_kernel& kernel, bool retainObject = false) :
method Kernel (line 5919) | Kernel& operator = (const cl_kernel& rhs)
method Kernel (line 5928) | Kernel(const Kernel& kernel) : detail::Wrapper<cl_type>(kernel) {}
method Kernel (line 5933) | Kernel& operator = (const Kernel &kernel)
method Kernel (line 5942) | Kernel(Kernel&& kernel) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(...
method Kernel (line 5947) | Kernel& operator = (Kernel &&kernel)
method cl_int (line 5954) | cl_int getInfo(cl_kernel_info name, T* param) const
method getInfo (line 5961) | typename
method cl_int (line 5976) | cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* para...
method getArgInfo (line 5983) | typename
method cl_int (line 5998) | cl_int getWorkGroupInfo(
method getWorkGroupInfo (line 6007) | typename
method cl_int (line 6021) | cl_int getSubGroupInfo(const cl::Device &dev, cl_kernel_sub_group_in...
method size_type (line 6043) | size_type getSubGroupInfo(const cl::Device &dev, const cl::NDRange &...
method cl_int (line 6058) | cl_int setArg(cl_uint index, const cl::pointer<T, D> &argPtr)
method cl_int (line 6068) | cl_int setArg(cl_uint index, const cl::vector<T, Alloc> &argPtr)
method setArg (line 6078) | typename std::enable_if<std::is_pointer<T>::value, cl_int>::type
method setArg (line 6090) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6102) | cl_int setArg(cl_uint index, size_type size, const void* argPtr)
method cl_int (line 6114) | cl_int setSVMPointers(const vector<void*> &pointerList)
method cl_int (line 6129) | cl_int setSVMPointers(const std::array<void*, ArrayLength> &pointerL...
method cl_int (line 6150) | cl_int enableFineGrainedSystemSVM(bool svmEnabled)
method setSVMPointersHelper (line 6164) | void setSVMPointersHelper(std::array<void*, ArrayLength> &pointerLis...
method setSVMPointersHelper (line 6171) | typename std::enable_if<std::is_pointer<T0>::value, void>::type
method setSVMPointersHelper (line 6179) | void setSVMPointersHelper(std::array<void*, ArrayLength> &pointerLis...
method setSVMPointersHelper (line 6186) | typename std::enable_if<std::is_pointer<T0>::value, void>::type
method cl_int (line 6193) | cl_int setSVMPointers(const T0 &t0, Ts & ... ts)
method cl_int (line 6207) | cl_int setExecInfo(cl_kernel_exec_info param_name, const T& val)
method cl_int (line 6218) | cl_int setExecInfo(typename detail::param_traits<detail::cl_kernel_e...
method Kernel (line 6230) | Kernel clone()
class NDRange (line 5758) | class NDRange
method NDRange (line 5766) | NDRange()
method NDRange (line 5775) | NDRange(size_type size0)
method NDRange (line 5784) | NDRange(size_type size0, size_type size1)
method NDRange (line 5793) | NDRange(size_type size0, size_type size1, size_type size2)
method size_type (line 5810) | size_type dimensions() const
method size_type (line 5817) | size_type size() const
method size_type (line 5822) | size_type* get()
method size_type (line 5827) | const size_type* get() const
type LocalSpaceArg (line 5837) | struct LocalSpaceArg
type detail (line 5842) | namespace detail {
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
function LocalSpaceArg (line 5880) | inline LocalSpaceArg
class Kernel (line 5895) | class Kernel : public detail::Wrapper<cl_kernel>
method Kernel (line 5901) | Kernel() { }
method Kernel (line 5911) | explicit Kernel(const cl_kernel& kernel, bool retainObject = false) :
method Kernel (line 5919) | Kernel& operator = (const cl_kernel& rhs)
method Kernel (line 5928) | Kernel(const Kernel& kernel) : detail::Wrapper<cl_type>(kernel) {}
method Kernel (line 5933) | Kernel& operator = (const Kernel &kernel)
method Kernel (line 5942) | Kernel(Kernel&& kernel) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(...
method Kernel (line 5947) | Kernel& operator = (Kernel &&kernel)
method cl_int (line 5954) | cl_int getInfo(cl_kernel_info name, T* param) const
method getInfo (line 5961) | typename
method cl_int (line 5976) | cl_int getArgInfo(cl_uint argIndex, cl_kernel_arg_info name, T* para...
method getArgInfo (line 5983) | typename
method cl_int (line 5998) | cl_int getWorkGroupInfo(
method getWorkGroupInfo (line 6007) | typename
method cl_int (line 6021) | cl_int getSubGroupInfo(const cl::Device &dev, cl_kernel_sub_group_in...
method size_type (line 6043) | size_type getSubGroupInfo(const cl::Device &dev, const cl::NDRange &...
method cl_int (line 6058) | cl_int setArg(cl_uint index, const cl::pointer<T, D> &argPtr)
method cl_int (line 6068) | cl_int setArg(cl_uint index, const cl::vector<T, Alloc> &argPtr)
method setArg (line 6078) | typename std::enable_if<std::is_pointer<T>::value, cl_int>::type
method setArg (line 6090) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6102) | cl_int setArg(cl_uint index, size_type size, const void* argPtr)
method cl_int (line 6114) | cl_int setSVMPointers(const vector<void*> &pointerList)
method cl_int (line 6129) | cl_int setSVMPointers(const std::array<void*, ArrayLength> &pointerL...
method cl_int (line 6150) | cl_int enableFineGrainedSystemSVM(bool svmEnabled)
method setSVMPointersHelper (line 6164) | void setSVMPointersHelper(std::array<void*, ArrayLength> &pointerLis...
method setSVMPointersHelper (line 6171) | typename std::enable_if<std::is_pointer<T0>::value, void>::type
method setSVMPointersHelper (line 6179) | void setSVMPointersHelper(std::array<void*, ArrayLength> &pointerLis...
method setSVMPointersHelper (line 6186) | typename std::enable_if<std::is_pointer<T0>::value, void>::type
method cl_int (line 6193) | cl_int setSVMPointers(const T0 &t0, Ts & ... ts)
method cl_int (line 6207) | cl_int setExecInfo(cl_kernel_exec_info param_name, const T& val)
method cl_int (line 6218) | cl_int setExecInfo(typename detail::param_traits<detail::cl_kernel_e...
method Kernel (line 6230) | Kernel clone()
class Program (line 6244) | class Program : public detail::Wrapper<cl_program>
method Program (line 6255) | Program(
method Program (line 6294) | Program(
method Program (line 6335) | Program(
method Program (line 6370) | Program(
method Program (line 6407) | Program(
method Program (line 6462) | Program(
method Program (line 6530) | Program(
method Program (line 6594) | Program(
method Program (line 6623) | Program() { }
method Program (line 6632) | explicit Program(const cl_program& program, bool retainObject = fals...
method Program (line 6635) | Program& operator = (const cl_program& rhs)
method Program (line 6644) | Program(const Program& program) : detail::Wrapper<cl_type>(program) {}
method Program (line 6649) | Program& operator = (const Program &program)
method Program (line 6658) | Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_typ...
method Program (line 6663) | Program& operator = (Program &&program)
method cl_int (line 6669) | cl_int build(
method cl_int (line 6694) | cl_int build(
method cl_int (line 6715) | cl_int build(
method cl_int (line 6732) | cl_int compile(
method cl_int (line 6752) | cl_int getInfo(cl_program_info name, T* param) const
method getInfo (line 6759) | typename
method cl_int (line 6773) | cl_int getBuildInfo(
method getBuildInfo (line 6782) | typename
method getBuildInfo (line 6801) | vector<std::pair<cl::Device, typename detail::param_traits<detail::c...
method cl_int (line 6839) | cl_int createKernels(vector<Kernel>* kernels)
method CL_API_PREFIX__VERSION_2_2_DEPRECATED (line 6881) | CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback(
method setSpecializationConstant (line 6899) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6915) | cl_int setSpecializationConstant(cl_uint index, size_type size, cons...
function Program (line 6929) | inline Program linkProgram(
method Program (line 6255) | Program(
method Program (line 6294) | Program(
method Program (line 6335) | Program(
method Program (line 6370) | Program(
method Program (line 6407) | Program(
method Program (line 6462) | Program(
method Program (line 6530) | Program(
method Program (line 6594) | Program(
method Program (line 6623) | Program() { }
method Program (line 6632) | explicit Program(const cl_program& program, bool retainObject = fals...
method Program (line 6635) | Program& operator = (const cl_program& rhs)
method Program (line 6644) | Program(const Program& program) : detail::Wrapper<cl_type>(program) {}
method Program (line 6649) | Program& operator = (const Program &program)
method Program (line 6658) | Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_typ...
method Program (line 6663) | Program& operator = (Program &&program)
method cl_int (line 6669) | cl_int build(
method cl_int (line 6694) | cl_int build(
method cl_int (line 6715) | cl_int build(
method cl_int (line 6732) | cl_int compile(
method cl_int (line 6752) | cl_int getInfo(cl_program_info name, T* param) const
method getInfo (line 6759) | typename
method cl_int (line 6773) | cl_int getBuildInfo(
method getBuildInfo (line 6782) | typename
method getBuildInfo (line 6801) | vector<std::pair<cl::Device, typename detail::param_traits<detail::c...
method cl_int (line 6839) | cl_int createKernels(vector<Kernel>* kernels)
method CL_API_PREFIX__VERSION_2_2_DEPRECATED (line 6881) | CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback(
method setSpecializationConstant (line 6899) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6915) | cl_int setSpecializationConstant(cl_uint index, size_type size, cons...
function Program (line 6965) | inline Program linkProgram(
method Program (line 6255) | Program(
method Program (line 6294) | Program(
method Program (line 6335) | Program(
method Program (line 6370) | Program(
method Program (line 6407) | Program(
method Program (line 6462) | Program(
method Program (line 6530) | Program(
method Program (line 6594) | Program(
method Program (line 6623) | Program() { }
method Program (line 6632) | explicit Program(const cl_program& program, bool retainObject = fals...
method Program (line 6635) | Program& operator = (const cl_program& rhs)
method Program (line 6644) | Program(const Program& program) : detail::Wrapper<cl_type>(program) {}
method Program (line 6649) | Program& operator = (const Program &program)
method Program (line 6658) | Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_typ...
method Program (line 6663) | Program& operator = (Program &&program)
method cl_int (line 6669) | cl_int build(
method cl_int (line 6694) | cl_int build(
method cl_int (line 6715) | cl_int build(
method cl_int (line 6732) | cl_int compile(
method cl_int (line 6752) | cl_int getInfo(cl_program_info name, T* param) const
method getInfo (line 6759) | typename
method cl_int (line 6773) | cl_int getBuildInfo(
method getBuildInfo (line 6782) | typename
method getBuildInfo (line 6801) | vector<std::pair<cl::Device, typename detail::param_traits<detail::c...
method cl_int (line 6839) | cl_int createKernels(vector<Kernel>* kernels)
method CL_API_PREFIX__VERSION_2_2_DEPRECATED (line 6881) | CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback(
method setSpecializationConstant (line 6899) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6915) | cl_int setSpecializationConstant(cl_uint index, size_type size, cons...
function cl_int (line 7009) | inline cl_int cl::Program::getInfo(cl_program_info name, vector<vector...
function cl_int (line 7050) | inline cl_int cl::Program::setSpecializationConstant(cl_uint index, co...
type QueueProperties (line 7076) | enum class QueueProperties : cl_command_queue_properties
function QueueProperties (line 7083) | inline QueueProperties operator|(QueueProperties lhs, QueueProperties ...
class CommandQueue (line 7091) | class CommandQueue : public detail::Wrapper<cl_command_queue>
method makeDefault (line 7103) | static void makeDefault()
method makeDefaultProvided (line 7135) | static void makeDefaultProvided(const CommandQueue &c) {
method unitTestClearDefault (line 7147) | static void unitTestClearDefault() {
method CommandQueue (line 7157) | CommandQueue(
method CommandQueue (line 7223) | CommandQueue(
method CommandQueue (line 7286) | explicit CommandQueue(
method CommandQueue (line 7353) | explicit CommandQueue(
method CommandQueue (line 7415) | CommandQueue(
method CommandQueue (line 7466) | CommandQueue(
method CommandQueue (line 7513) | static CommandQueue getDefault(cl_int * err = NULL)
method CommandQueue (line 7534) | static CommandQueue setDefault(const CommandQueue &default_queue)
method CommandQueue (line 7541) | CommandQueue() { }
method CommandQueue (line 7550) | explicit CommandQueue(const cl_command_queue& commandQueue, bool ret...
method CommandQueue (line 7553) | CommandQueue& operator = (const cl_command_queue& rhs)
method CommandQueue (line 7562) | CommandQueue(const CommandQueue& queue) : detail::Wrapper<cl_type>(q...
method CommandQueue (line 7567) | CommandQueue& operator = (const CommandQueue &queue)
method CommandQueue (line 7576) | CommandQueue(CommandQueue&& queue) CL_HPP_NOEXCEPT_ : detail::Wrappe...
method CommandQueue (line 7581) | CommandQueue& operator = (CommandQueue &&queue)
method cl_int (line 7588) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 7596) | typename
method cl_int (line 7609) | cl_int enqueueReadBuffer(
method cl_int (line 7634) | cl_int enqueueWriteBuffer(
method cl_int (line 7659) | cl_int enqueueCopyBuffer(
method cl_int (line 7683) | cl_int enqueueReadBufferRect(
method cl_int (line 7722) | cl_int enqueueWriteBufferRect(
method cl_int (line 7761) | cl_int enqueueCopyBufferRect(
method cl_int (line 7811) | cl_int enqueueFillBuffer(
method cl_int (line 7840) | cl_int enqueueReadImage(
method cl_int (line 7873) | cl_int enqueueWriteImage(
method cl_int (line 7906) | cl_int enqueueCopyImage(
method cl_int (line 7943) | cl_int enqueueFillImage(
method cl_int (line 7977) | cl_int enqueueFillImage(
method cl_int (line 8011) | cl_int enqueueFillImage(
method cl_int (line 8039) | cl_int enqueueCopyImageToBuffer(
method cl_int (line 8068) | cl_int enqueueCopyBufferToImage(
method cl_int (line 8165) | cl_int enqueueMapSVM(
method cl_int (line 8193) | cl_int enqueueMapSVM(
method cl_int (line 8220) | cl_int enqueueMapSVM(
method cl_int (line 8242) | cl_int enqueueUnmapMemObject(
method cl_int (line 8270) | cl_int enqueueUnmapSVM(
method cl_int (line 8295) | cl_int enqueueUnmapSVM(
method cl_int (line 8320) | cl_int enqueueUnmapSVM(
method cl_int (line 8353) | cl_int enqueueMarkerWithWaitList(
method cl_int (line 8383) | cl_int enqueueBarrierWithWaitList(
method cl_int (line 8406) | cl_int enqueueMigrateMemObjects(
method cl_int (line 8447) | cl_int enqueueMigrateSVM(
method cl_int (line 8476) | cl_int enqueueMigrateSVM(
method cl_int (line 8492) | cl_int enqueueMigrateSVM(
method cl_int (line 8514) | cl_int enqueueMigrateSVM(
method cl_int (line 8529) | cl_int enqueueMigrateSVM(
method cl_int (line 8550) | cl_int enqueueMigrateSVM(
method cl_int (line 8561) | cl_int enqueueNDRangeKernel(
method CL_API_PREFIX__VERSION_1_2_DEPRECATED (line 8588) | CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int enqueueTask(
method cl_int (line 8609) | cl_int enqueueNativeKernel(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8648) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8664) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8676) | cl_int enqueueAcquireGLObjects(
method cl_int (line 8698) | cl_int enqueueReleaseGLObjects(
method cl_int (line 8730) | cl_int enqueueAcquireD3D10Objects(
method cl_int (line 8763) | cl_int enqueueReleaseD3D10Objects(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8801) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8810) | cl_int flush() const
method cl_int (line 8815) | cl_int finish() const
type DeviceQueueProperties (line 8827) | enum class DeviceQueueProperties : cl_command_queue_properties
function DeviceQueueProperties (line 8833) | inline DeviceQueueProperties operator|(DeviceQueueProperties lhs, Devi...
class DeviceCommandQueue (line 8841) | class DeviceCommandQueue : public detail::Wrapper<cl_command_queue>
method DeviceCommandQueue (line 8848) | DeviceCommandQueue() { }
method DeviceCommandQueue (line 8853) | DeviceCommandQueue(DeviceQueueProperties properties, cl_int* err = N...
method DeviceCommandQueue (line 8876) | DeviceCommandQueue(
method DeviceCommandQueue (line 8900) | DeviceCommandQueue(
method DeviceCommandQueue (line 8930) | explicit DeviceCommandQueue(const cl_command_queue& commandQueue, bo...
method DeviceCommandQueue (line 8933) | DeviceCommandQueue& operator = (const cl_command_queue& rhs)
method DeviceCommandQueue (line 8942) | DeviceCommandQueue(const DeviceCommandQueue& queue) : detail::Wrappe...
method DeviceCommandQueue (line 8947) | DeviceCommandQueue& operator = (const DeviceCommandQueue &queue)
method DeviceCommandQueue (line 8956) | DeviceCommandQueue(DeviceCommandQueue&& queue) CL_HPP_NOEXCEPT_ : de...
method DeviceCommandQueue (line 8961) | DeviceCommandQueue& operator = (DeviceCommandQueue &&queue)
method cl_int (line 8968) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 8976) | typename
method DeviceCommandQueue (line 8995) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9025) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9053) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9085) | static DeviceCommandQueue updateDefault(const Context &context, cons...
method DeviceCommandQueue (line 9100) | static DeviceCommandQueue getDefault(const CommandQueue &queue, cl_i...
type detail (line 9108) | namespace detail
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
function cl_int (line 9221) | inline cl_int enqueueReadBuffer(
function cl_int (line 9240) | inline cl_int enqueueWriteBuffer(
function cl_int (line 9298) | inline cl_int enqueueMapSVM(
function cl_int (line 9322) | inline cl_int enqueueMapSVM(
function cl_int (line 9346) | inline cl_int enqueueMapSVM(
function cl_int (line 9365) | inline cl_int enqueueUnmapMemObject(
function cl_int (line 9400) | inline cl_int enqueueUnmapSVM(
function cl_int (line 9422) | inline cl_int enqueueUnmapSVM(
function cl_int (line 9443) | inline cl_int enqueueUnmapSVM(
function cl_int (line 9460) | inline cl_int enqueueCopyBuffer(
function cl_int (line 9485) | inline cl_int copy( IteratorType startIterator, IteratorType endIterat...
function cl_int (line 9501) | inline cl_int copy( const cl::Buffer &buffer, IteratorType startIterat...
function cl_int (line 9517) | inline cl_int copy( const CommandQueue &queue, IteratorType startItera...
function cl_int (line 9556) | inline cl_int copy( const CommandQueue &queue, const cl::Buffer &buffe...
function cl_int (line 9587) | inline cl_int mapSVM(cl::vector<T, Alloc> &container)
function cl_int (line 9596) | inline cl_int unmapSVM(cl::vector<T, Alloc> &container)
function cl_int (line 9604) | inline cl_int enqueueReadBufferRect(
function cl_int (line 9640) | inline cl_int enqueueWriteBufferRect(
function cl_int (line 9676) | inline cl_int enqueueCopyBufferRect(
function cl_int (line 9711) | inline cl_int enqueueReadImage(
function cl_int (line 9741) | inline cl_int enqueueWriteImage(
function cl_int (line 9771) | inline cl_int enqueueCopyImage(
function cl_int (line 9797) | inline cl_int enqueueCopyImageToBuffer(
function cl_int (line 9823) | inline cl_int enqueueCopyBufferToImage(
function cl_int (line 9850) | inline cl_int flush(void)
function cl_int (line 9862) | inline cl_int finish(void)
class EnqueueArgs (line 9875) | class EnqueueArgs
method EnqueueArgs (line 9888) | EnqueueArgs(NDRange global) :
method EnqueueArgs (line 9897) | EnqueueArgs(NDRange global, NDRange local) :
method EnqueueArgs (line 9906) | EnqueueArgs(NDRange offset, NDRange global, NDRange local) :
method EnqueueArgs (line 9915) | EnqueueArgs(Event e, NDRange global) :
method EnqueueArgs (line 9924) | EnqueueArgs(Event e, NDRange global, NDRange local) :
method EnqueueArgs (line 9933) | EnqueueArgs(Event e, NDRange offset, NDRange global, NDRange local) :
method EnqueueArgs (line 9942) | EnqueueArgs(const vector<Event> &events, NDRange global) :
method EnqueueArgs (line 9952) | EnqueueArgs(const vector<Event> &events, NDRange global, NDRange loc...
method EnqueueArgs (line 9962) | EnqueueArgs(const vector<Event> &events, NDRange offset, NDRange glo...
method EnqueueArgs (line 9972) | EnqueueArgs(CommandQueue &queue, NDRange global) :
method EnqueueArgs (line 9981) | EnqueueArgs(CommandQueue &queue, NDRange global, NDRange local) :
method EnqueueArgs (line 9990) | EnqueueArgs(CommandQueue &queue, NDRange offset, NDRange global, NDR...
method EnqueueArgs (line 9999) | EnqueueArgs(CommandQueue &queue, Event e, NDRange global) :
method EnqueueArgs (line 10008) | EnqueueArgs(CommandQueue &queue, Event e, NDRange global, NDRange lo...
method EnqueueArgs (line 10017) | EnqueueArgs(CommandQueue &queue, Event e, NDRange offset, NDRange gl...
method EnqueueArgs (line 10026) | EnqueueArgs(CommandQueue &queue, const vector<Event> &events, NDRang...
method EnqueueArgs (line 10036) | EnqueueArgs(CommandQueue &queue, const vector<Event> &events, NDRang...
method EnqueueArgs (line 10046) | EnqueueArgs(CommandQueue &queue, const vector<Event> &events, NDRang...
class KernelFunctor (line 10066) | class KernelFunctor
method setArgs (line 10072) | void setArgs(T0&& t0, T1s&&... t1s)
method setArgs (line 10079) | void setArgs(T0&& t0)
method setArgs (line 10085) | void setArgs()
method KernelFunctor (line 10091) | KernelFunctor(Kernel kernel) : kernel_(kernel)
method KernelFunctor (line 10094) | KernelFunctor(
method Event (line 10109) | Event operator() (
method Event (line 10133) | Event operator() (
method cl_int (line 10153) | cl_int setSVMPointers(const vector<void*> &pointerList)
method cl_int (line 10159) | cl_int setSVMPointers(const T0 &t0, T1s &... ts)
method Kernel (line 10165) | Kernel getKernel()
type compatibility (line 10171) | namespace compatibility {
class size_t (line 638) | class size_t
method size_type (line 659) | size_type& operator[](int index)
method size_type (line 664) | const size_type& operator[](int index) const
type make_kernel (line 10177) | struct make_kernel
method make_kernel (line 10183) | make_kernel(
method make_kernel (line 10190) | make_kernel(
method Event (line 10203) | Event operator()(
type cl (line 583) | namespace cl {
type compatibility (line 632) | namespace compatibility {
class size_t (line 638) | class size_t
method size_type (line 659) | size_type& operator[](int index)
method size_type (line 664) | const size_type& operator[](int index) const
type make_kernel (line 10177) | struct make_kernel
method make_kernel (line 10183) | make_kernel(
method make_kernel (line 10190) | make_kernel(
method Event (line 10203) | Event operator()(
type detail (line 694) | namespace detail {
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(cl_sampler sampler)
method cl_int (line 1741) | static cl_int release(cl_sampler sampler)
type ReferenceHandler<cl_program> (line 1746) | struct ReferenceHandler<cl_program>
method cl_int (line 1748) | static cl_int retain(cl_program program)
method cl_int (line 1750) | static cl_int release(cl_program program)
type ReferenceHandler<cl_kernel> (line 1755) | struct ReferenceHandler<cl_kernel>
method cl_int (line 1757) | static cl_int retain(cl_kernel kernel)
method cl_int (line 1759) | static cl_int release(cl_kernel kernel)
type ReferenceHandler<cl_event> (line 1764) | struct ReferenceHandler<cl_event>
method cl_int (line 1766) | static cl_int retain(cl_event event)
method cl_int (line 1768) | static cl_int release(cl_event event)
function cl_uint (line 1775) | static cl_uint getVersion(const vector<char> &versionInfo)
function cl_uint (line 1794) | static cl_uint getPlatformVersion(cl_platform_id platform)
function cl_uint (line 1804) | static cl_uint getDevicePlatformVersion(cl_device_id device)
function cl_uint (line 1811) | static cl_uint getContextPlatformVersion(cl_context context)
class Wrapper (line 1826) | class Wrapper
method Wrapper (line 1835) | Wrapper() : object_(NULL) { }
method Wrapper (line 1837) | Wrapper(const cl_type &obj, bool retainObject) : object_(obj)
method Wrapper (line 1849) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1855) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 1888) | const cl_type& operator ()() const { return object_; }
method cl_type (line 1890) | cl_type& operator ()() { return object_; }
method cl_type (line 1892) | cl_type get() const { return object_; }
method cl_int (line 1898) | cl_int retain() const
method cl_int (line 1908) | cl_int release() const
class Wrapper<cl_device_id> (line 1920) | class Wrapper<cl_device_id>
method isReferenceCountable (line 1929) | static bool isReferenceCountable(cl_device_id device)
method Wrapper (line 1948) | Wrapper() : object_(NULL), referenceCountable_(false)
method Wrapper (line 1952) | Wrapper(const cl_type &obj, bool retainObject) :
method Wrapper (line 1968) | Wrapper(const Wrapper<cl_type>& rhs)
method Wrapper (line 1975) | Wrapper(Wrapper<cl_type>&& rhs) CL_HPP_NOEXCEPT_
method cl_type (line 2014) | const cl_type& operator ()() const { return object_; }
method cl_type (line 2016) | cl_type& operator ()() { return object_; }
method cl_type (line 2018) | cl_type get() const { return object_; }
method cl_int (line 2027) | cl_int retain() const
method cl_int (line 2037) | cl_int release() const
function cl_int (line 2084) | static inline cl_int buildErrHandler(
function cl_int (line 2098) | static inline cl_int buildErrHandler(
class SVMTraitNull (line 3534) | class SVMTraitNull
method cl_svm_mem_flags (line 3537) | static cl_svm_mem_flags getSVMMemFlags()
class Deleter (line 3800) | class Deleter {
method Deleter (line 3808) | Deleter(const Alloc &alloc, size_type copies) : alloc_{ alloc }, c...
type KernelArgumentHandler (line 5845) | struct KernelArgumentHandler
type KernelArgumentHandler<T, typename std::enable_if<!std::is_base_of<cl::Memory, T>::value>::type> (line 5850) | struct KernelArgumentHandler<T, typename std::enable_if<!std::is_bas...
method size_type (line 5852) | static size_type size(const T&) { return sizeof(T); }
method T (line 5853) | static const T* ptr(const T& value) { return &value; }
type KernelArgumentHandler<T, typename std::enable_if<std::is_base_of<cl::Memory, T>::value>::type> (line 5859) | struct KernelArgumentHandler<T, typename std::enable_if<std::is_base...
method size_type (line 5861) | static size_type size(const T&) { return sizeof(cl_mem); }
method cl_mem (line 5862) | static const cl_mem* ptr(const T& value) { return &(value()); }
type KernelArgumentHandler<LocalSpaceArg, void> (line 5868) | struct KernelArgumentHandler<LocalSpaceArg, void>
method size_type (line 5870) | static size_type size(const LocalSpaceArg& value) { return value.s...
type KernelArgumentHandler<cl::DeviceCommandQueue, void> (line 9112) | struct KernelArgumentHandler<cl::DeviceCommandQueue, void>
method size_type (line 9114) | static size_type size(const cl::DeviceCommandQueue&) { return size...
method cl_command_queue (line 9115) | static const cl_command_queue* ptr(const cl::DeviceCommandQueue& v...
class Memory (line 706) | class Memory
method Memory (line 3411) | Memory() : detail::Wrapper<cl_type>() { }
method Memory (line 3424) | explicit Memory(const cl_mem& memory, bool retainObject) :
method Memory (line 3432) | Memory& operator = (const cl_mem& rhs)
method Memory (line 3441) | Memory(const Memory& mem) : detail::Wrapper<cl_type>(mem) {}
method Memory (line 3446) | Memory& operator = (const Memory &mem)
method Memory (line 3455) | Memory(Memory&& mem) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Memory (line 3460) | Memory& operator = (Memory &&mem)
method cl_int (line 3469) | cl_int getInfo(cl_mem_info name, T* param) const
method getInfo (line 3477) | typename
method cl_int (line 3504) | cl_int setDestructorCallback(
class Program (line 724) | class Program
method Program (line 6255) | Program(
method Program (line 6294) | Program(
method Program (line 6335) | Program(
method Program (line 6370) | Program(
method Program (line 6407) | Program(
method Program (line 6462) | Program(
method Program (line 6530) | Program(
method Program (line 6594) | Program(
method Program (line 6623) | Program() { }
method Program (line 6632) | explicit Program(const cl_program& program, bool retainObject = fals...
method Program (line 6635) | Program& operator = (const cl_program& rhs)
method Program (line 6644) | Program(const Program& program) : detail::Wrapper<cl_type>(program) {}
method Program (line 6649) | Program& operator = (const Program &program)
method Program (line 6658) | Program(Program&& program) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_typ...
method Program (line 6663) | Program& operator = (Program &&program)
method cl_int (line 6669) | cl_int build(
method cl_int (line 6694) | cl_int build(
method cl_int (line 6715) | cl_int build(
method cl_int (line 6732) | cl_int compile(
method cl_int (line 6752) | cl_int getInfo(cl_program_info name, T* param) const
method getInfo (line 6759) | typename
method cl_int (line 6773) | cl_int getBuildInfo(
method getBuildInfo (line 6782) | typename
method getBuildInfo (line 6801) | vector<std::pair<cl::Device, typename detail::param_traits<detail::c...
method cl_int (line 6839) | cl_int createKernels(vector<Kernel>* kernels)
method CL_API_PREFIX__VERSION_2_2_DEPRECATED (line 6881) | CL_API_PREFIX__VERSION_2_2_DEPRECATED cl_int setReleaseCallback(
method setSpecializationConstant (line 6899) | typename std::enable_if<!std::is_pointer<T>::value, cl_int>::type
method cl_int (line 6915) | cl_int setSpecializationConstant(cl_uint index, size_type size, cons...
class Device (line 725) | class Device
method makeDefaultProvided (line 2168) | static void makeDefaultProvided(const Device &p) {
method unitTestClearDefault (line 2180) | static void unitTestClearDefault() {
method Device (line 2186) | Device() : detail::Wrapper<cl_type>() { }
method Device (line 2192) | explicit Device(const cl_device_id &device, bool retainObject = fals...
method Device (line 2199) | static Device getDefault(
method Device (line 2217) | static Device setDefault(const Device &default_device)
method Device (line 2228) | Device& operator = (const cl_device_id& rhs)
method Device (line 2237) | Device(const Device& dev) : detail::Wrapper<cl_type>(dev) {}
method Device (line 2242) | Device& operator = (const Device &dev)
method Device (line 2251) | Device(Device&& dev) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Device (line 2256) | Device& operator = (Device &&dev)
method cl_int (line 2264) | cl_int getInfo(cl_device_info name, T* param) const
method getInfo (line 2272) | typename
method cl_ulong (line 2293) | cl_ulong getHostTimer(cl_int *error = nullptr)
method getDeviceAndHostTimer (line 2317) | std::pair<cl_ulong, cl_ulong> getDeviceAndHostTimer(cl_int *error = ...
method cl_int (line 2337) | cl_int createSubDevices(
method cl_int (line 2374) | cl_int createSubDevices(
class Context (line 726) | class Context
method makeDefault (line 2824) | static void makeDefault() {
method makeDefaultProvided (line 2862) | static void makeDefaultProvided(const Context &c) {
method unitTestClearDefault (line 2874) | static void unitTestClearDefault() {
method Context (line 2883) | Context(
method Context (line 2918) | Context(
method Context (line 2948) | Context(
method Context (line 3034) | Context(const Context& ctx) : detail::Wrapper<cl_type>(ctx) {}
method Context (line 3039) | Context& operator = (const Context &ctx)
method Context (line 3048) | Context(Context&& ctx) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(s...
method Context (line 3053) | Context& operator = (Context &&ctx)
method Context (line 3064) | static Context getDefault(cl_int * err = NULL)
method Context (line 3081) | static Context setDefault(const Context &default_context)
method Context (line 3089) | Context() : detail::Wrapper<cl_type>() { }
method Context (line 3096) | explicit Context(const cl_context& context, bool retainObject = fals...
method Context (line 3104) | Context& operator = (const cl_context& rhs)
method cl_int (line 3112) | cl_int getInfo(cl_context_info name, T* param) const
method getInfo (line 3120) | typename
method cl_int (line 3137) | cl_int getSupportedImageFormats(
class CommandQueue (line 727) | class CommandQueue
method makeDefault (line 7103) | static void makeDefault()
method makeDefaultProvided (line 7135) | static void makeDefaultProvided(const CommandQueue &c) {
method unitTestClearDefault (line 7147) | static void unitTestClearDefault() {
method CommandQueue (line 7157) | CommandQueue(
method CommandQueue (line 7223) | CommandQueue(
method CommandQueue (line 7286) | explicit CommandQueue(
method CommandQueue (line 7353) | explicit CommandQueue(
method CommandQueue (line 7415) | CommandQueue(
method CommandQueue (line 7466) | CommandQueue(
method CommandQueue (line 7513) | static CommandQueue getDefault(cl_int * err = NULL)
method CommandQueue (line 7534) | static CommandQueue setDefault(const CommandQueue &default_queue)
method CommandQueue (line 7541) | CommandQueue() { }
method CommandQueue (line 7550) | explicit CommandQueue(const cl_command_queue& commandQueue, bool ret...
method CommandQueue (line 7553) | CommandQueue& operator = (const cl_command_queue& rhs)
method CommandQueue (line 7562) | CommandQueue(const CommandQueue& queue) : detail::Wrapper<cl_type>(q...
method CommandQueue (line 7567) | CommandQueue& operator = (const CommandQueue &queue)
method CommandQueue (line 7576) | CommandQueue(CommandQueue&& queue) CL_HPP_NOEXCEPT_ : detail::Wrappe...
method CommandQueue (line 7581) | CommandQueue& operator = (CommandQueue &&queue)
method cl_int (line 7588) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 7596) | typename
method cl_int (line 7609) | cl_int enqueueReadBuffer(
method cl_int (line 7634) | cl_int enqueueWriteBuffer(
method cl_int (line 7659) | cl_int enqueueCopyBuffer(
method cl_int (line 7683) | cl_int enqueueReadBufferRect(
method cl_int (line 7722) | cl_int enqueueWriteBufferRect(
method cl_int (line 7761) | cl_int enqueueCopyBufferRect(
method cl_int (line 7811) | cl_int enqueueFillBuffer(
method cl_int (line 7840) | cl_int enqueueReadImage(
method cl_int (line 7873) | cl_int enqueueWriteImage(
method cl_int (line 7906) | cl_int enqueueCopyImage(
method cl_int (line 7943) | cl_int enqueueFillImage(
method cl_int (line 7977) | cl_int enqueueFillImage(
method cl_int (line 8011) | cl_int enqueueFillImage(
method cl_int (line 8039) | cl_int enqueueCopyImageToBuffer(
method cl_int (line 8068) | cl_int enqueueCopyBufferToImage(
method cl_int (line 8165) | cl_int enqueueMapSVM(
method cl_int (line 8193) | cl_int enqueueMapSVM(
method cl_int (line 8220) | cl_int enqueueMapSVM(
method cl_int (line 8242) | cl_int enqueueUnmapMemObject(
method cl_int (line 8270) | cl_int enqueueUnmapSVM(
method cl_int (line 8295) | cl_int enqueueUnmapSVM(
method cl_int (line 8320) | cl_int enqueueUnmapSVM(
method cl_int (line 8353) | cl_int enqueueMarkerWithWaitList(
method cl_int (line 8383) | cl_int enqueueBarrierWithWaitList(
method cl_int (line 8406) | cl_int enqueueMigrateMemObjects(
method cl_int (line 8447) | cl_int enqueueMigrateSVM(
method cl_int (line 8476) | cl_int enqueueMigrateSVM(
method cl_int (line 8492) | cl_int enqueueMigrateSVM(
method cl_int (line 8514) | cl_int enqueueMigrateSVM(
method cl_int (line 8529) | cl_int enqueueMigrateSVM(
method cl_int (line 8550) | cl_int enqueueMigrateSVM(
method cl_int (line 8561) | cl_int enqueueNDRangeKernel(
method CL_API_PREFIX__VERSION_1_2_DEPRECATED (line 8588) | CL_API_PREFIX__VERSION_1_2_DEPRECATED cl_int enqueueTask(
method cl_int (line 8609) | cl_int enqueueNativeKernel(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8648) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8664) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8676) | cl_int enqueueAcquireGLObjects(
method cl_int (line 8698) | cl_int enqueueReleaseGLObjects(
method cl_int (line 8730) | cl_int enqueueAcquireD3D10Objects(
method cl_int (line 8763) | cl_int enqueueReleaseD3D10Objects(
method CL_API_PREFIX__VERSION_1_1_DEPRECATED (line 8801) | CL_API_PREFIX__VERSION_1_1_DEPRECATED
method cl_int (line 8810) | cl_int flush() const
method cl_int (line 8815) | cl_int finish() const
class DeviceCommandQueue (line 728) | class DeviceCommandQueue
method DeviceCommandQueue (line 8848) | DeviceCommandQueue() { }
method DeviceCommandQueue (line 8853) | DeviceCommandQueue(DeviceQueueProperties properties, cl_int* err = N...
method DeviceCommandQueue (line 8876) | DeviceCommandQueue(
method DeviceCommandQueue (line 8900) | DeviceCommandQueue(
method DeviceCommandQueue (line 8930) | explicit DeviceCommandQueue(const cl_command_queue& commandQueue, bo...
method DeviceCommandQueue (line 8933) | DeviceCommandQueue& operator = (const cl_command_queue& rhs)
method DeviceCommandQueue (line 8942) | DeviceCommandQueue(const DeviceCommandQueue& queue) : detail::Wrappe...
method DeviceCommandQueue (line 8947) | DeviceCommandQueue& operator = (const DeviceCommandQueue &queue)
method DeviceCommandQueue (line 8956) | DeviceCommandQueue(DeviceCommandQueue&& queue) CL_HPP_NOEXCEPT_ : de...
method DeviceCommandQueue (line 8961) | DeviceCommandQueue& operator = (DeviceCommandQueue &&queue)
method cl_int (line 8968) | cl_int getInfo(cl_command_queue_info name, T* param) const
method getInfo (line 8976) | typename
method DeviceCommandQueue (line 8995) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9025) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9053) | static DeviceCommandQueue makeDefault(
method DeviceCommandQueue (line 9085) | static DeviceCommandQueue updateDefault(const Context &context, cons...
method DeviceCommandQueue (line 9100) | static DeviceCommandQueue getDefault(const CommandQueue &queue, cl_i...
class Memory (line 729) | class Memory
method Memory (line 3411) | Memory() : detail::Wrapper<cl_type>() { }
method Memory (line 3424) | explicit Memory(const cl_mem& memory, bool retainObject) :
method Memory (line 3432) | Memory& operator = (const cl_mem& rhs)
method Memory (line 3441) | Memory(const Memory& mem) : detail::Wrapper<cl_type>(mem) {}
method Memory (line 3446) | Memory& operator = (const Memory &mem)
method Memory (line 3455) | Memory(Memory&& mem) CL_HPP_NOEXCEPT_ : detail::Wrapper<cl_type>(std...
method Memory (line 3460) | Memory& operator = (Memory &&mem)
method cl_int (line 3469) | cl_int getInfo(cl_mem_info name, T* param) const
method getInfo (line 3477) | typename
method cl_int (line 3504) | cl_int setDestructorCallback(
class Buffer (line 730) | class Buffer
method Buffer (line 3908) | Buffer(
method Buffer (line 3933) | Buffer(
method Buffer (line 3957) | Buffer(
method Buffer (line 4020) | Buffer() : Memory() { }
method Buffer (line 4029) | explicit Buffer(const cl_mem& buffer, bool retainObject = false) :
method Buffer (line 4036) | Buffer& operator = (const cl_mem& rhs)
method Buffer (line 4045) | Buffer(const Buffer& buf) : Memory(buf) {}
method Buffer (line 4050) | Buffer& operator = (const Buffer &buf)
method Buffer (line 4059) | Buffer(Buffer&& buf) CL_HPP_NOEXCEPT_ : Memory(std::move(buf)) {}
method Buffer (line 4064) | Buffer& operator = (Buffer &&buf)
method Buffer (line 4075) | Buffer createSubBuffer(
class Pipe (line 731) | class Pipe
method Pipe (line 5501) | Pipe(
method Pipe (line 5526) | Pipe(
method Pipe (line 5545) | Pipe() : Memory() { }
method Pipe (line 5554) | explicit Pipe(const cl_mem& pipe, bool retainObject = false) :
method Pipe (line 5561) | Pipe& operator = (const cl_mem& rhs)
method Pipe (line 5570) | Pipe(const Pipe& pipe) : Memory(pipe) {}
method Pipe (line 5575) | Pipe& operator = (const Pipe &pipe)
method Pipe (line 5584) | Pipe(Pipe&& pipe) CL_HPP_NOEXCEPT_ : Memory(std::move(pipe)) {}
method Pipe (line 5589) | Pipe& operator = (Pipe &&pipe)
method cl_int (line 5597) | cl_int getInfo(cl_pipe_info name, T* param) const
method getInfo (line 5605) | typename
class Error (line 738) | class Error : public std::exception
method Error (line 753) | Error(cl_int err, const char * errStr = NULL) : err_(err), errStr_(e...
method cl_int (line 776) | cl_int err(void) const { return err_; }
type detail (line 784) | namespace detail
function cl_int (line 787) | static inline cl_int errHandler (
function cl_int (line 797) | static inline cl_int errHandler (cl_int err, const char * errStr = N...
function cl_int (line 983) | inline cl_int getInfoHelper(Functor f, cl_uint name, T* param, long)
function cl_int (line 991) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<vector<unsi...
function cl_int (line 1019) | inline cl_int getInfoHelper(Func f, cl_uint name, vector<T>* param, ...
function cl_int (line 1048) | inline cl_int getInfoHelper(
function cl_int (line 1080) | inline cl_int getInfoHelper(Func f, cl_uint name, string* param, long)
function cl_int (line 1108) | inline cl_int getInfoHelper(Func f, cl_uint name, array<size_type, N...
type ReferenceHandler (line 1136) | struct ReferenceHandler
function cl_int (line 1145) | inline cl_int getInfoHelper(Func f, cl_uint name, T* param, int, typ...
type param_traits (line 1437) | struct param_traits {}
function cl_int (line 1607) | inline cl_int
type GetInfoFunctor0 (line 1614) | struct GetInfoFunctor0
method cl_int (line 1617) | cl_int operator ()(
type GetInfoFunctor1 (line 1623) | struct GetInfoFunctor1
method cl_int (line 1626) | cl_int operator ()(
function cl_int (line 1632) | inline cl_int
function cl_int (line 1640) | inline cl_int
type ReferenceHandler (line 1649) | struct ReferenceHandler
type ReferenceHandler<cl_device_id> (line 1657) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_device_id> (line 1687) | struct ReferenceHandler<cl_device_id>
method cl_int (line 1668) | static cl_int retain(cl_device_id device)
method cl_int (line 1679) | static cl_int release(cl_device_id device)
method cl_int (line 1690) | static cl_int retain(cl_device_id)
method cl_int (line 1693) | static cl_int release(cl_device_id)
type ReferenceHandler<cl_platform_id> (line 1699) | struct ReferenceHandler<cl_platform_id>
method cl_int (line 1702) | static cl_int retain(cl_platform_id)
method cl_int (line 1705) | static cl_int release(cl_platform_id)
type ReferenceHandler<cl_context> (line 1710) | struct ReferenceHandler<cl_context>
method cl_int (line 1712) | static cl_int retain(cl_context context)
method cl_int (line 1714) | static cl_int release(cl_context context)
type ReferenceHandler<cl_command_queue> (line 1719) | struct ReferenceHandler<cl_command_queue>
method cl_int (line 1721) | static cl_int retain(cl_command_queue queue)
method cl_int (line 1723) | static cl_int release(cl_command_queue queue)
type ReferenceHandler<cl_mem> (line 1728) | struct ReferenceHandler<cl_mem>
method cl_int (line 1730) | static cl_int retain(cl_mem memory)
method cl_int (line 1732) | static cl_int release(cl_mem memory)
type ReferenceHandler<cl_sampler> (line 1737) | struct ReferenceHandler<cl_sampler>
method cl_int (line 1739) | static cl_int retain(c
Condensed preview — 181 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,754K chars).
[
{
"path": ".clang-format",
"chars": 213,
"preview": "BasedOnStyle: Google\nUseTab: Never\nIndentWidth: 4\nBreakBeforeBraces: Allman\nAllowShortIfStatementsOnASingleLine: false\nI"
},
{
"path": ".gitattributes",
"chars": 378,
"preview": "# Auto detect text files and perform LF normalization\n* text=auto\n\n# Custom for Visual Studio\n*.cs diff=csharp\n\n# St"
},
{
"path": ".github/workflows/msbuild.yml",
"chars": 4950,
"preview": "# This workflow uses actions that are not certified by GitHub.\n# They are provided by a third-party and are governed by\n"
},
{
"path": ".gitignore",
"chars": 2835,
"preview": "#################\n## Eclipse\n#################\n\n*.pydevproject\n.project\n.metadata\nbin/\ntmp/\n*.tmp\n*.bak\n*.swp\n*~.nib\nloc"
},
{
"path": ".gitmodules",
"chars": 94,
"preview": "[submodule \"Anime4KCPP\"]\n\tpath = Anime4KCPP\n\turl = https://github.com/TianZerL/Anime4KCPP.git\n"
},
{
"path": "Anime4KCPPCore.vcxproj",
"chars": 19997,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"14.0\" xmlns=\"http://schemas.microso"
},
{
"path": "Anime4KCPPCore.vcxproj.filters",
"chars": 7410,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" xmlns=\"http://schemas.microsoft.com/developer/msbui"
},
{
"path": "Dlls/Dlls.csproj",
"chars": 1662,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "HttpDownload/HttpDownload.cpp",
"chars": 522,
"preview": "// HttpDownload.cpp : Defines the entry point for the console application.\n//\n\n#include \"stdafx.h\"\n\n#include \"http_downl"
},
{
"path": "HttpDownload/HttpDownload.vcxproj",
"chars": 8644,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "HttpDownload/HttpDownload.vcxproj.filters",
"chars": 1302,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "HttpDownload/ReadMe.txt",
"chars": 1710,
"preview": "========================================================================\n CONSOLE APPLICATION : HttpDownload Project "
},
{
"path": "HttpDownload/stdafx.cpp",
"chars": 291,
"preview": "// stdafx.cpp : source file that includes just the standard includes\n// HttpDownload.pch will be the pre-compiled header"
},
{
"path": "HttpDownload/stdafx.h",
"chars": 305,
"preview": "// stdafx.h : include file for standard system include files,\n// or project specific include files that are used frequen"
},
{
"path": "HttpDownload/targetver.h",
"chars": 306,
"preview": "#pragma once\n\n// Including SDKDDKVer.h defines the highest available Windows platform.\n\n// If you wish to build your app"
},
{
"path": "LICENSE",
"chars": 1040,
"preview": "The MIT License\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and assoc"
},
{
"path": "Player/AsyncGetUrlUnderMouseCursor.cpp",
"chars": 2992,
"preview": "#include \"stdafx.h\"\n\n#include \"AsyncGetUrlUnderMouseCursor.h\"\n\nnamespace {\n\nclass CComUsageScope\n{\n bool m_bInitializ"
},
{
"path": "Player/AsyncGetUrlUnderMouseCursor.h",
"chars": 84,
"preview": "#pragma once\n\nenum { WM_ON_ASYNC_URL = 1234 };\n\nvoid AsyncGetUrlUnderMouseCursor();\n"
},
{
"path": "Player/ByteStreamBuffer.h",
"chars": 818,
"preview": "#pragma once\n\n#include <streambuf>\n\nclass ByteStreamBuffer: public std::streambuf\n{\npublic:\n ByteStreamBuffer(char* b"
},
{
"path": "Player/D3DFONT.CPP",
"chars": 26082,
"preview": "//-----------------------------------------------------------------------------\n// File: D3DFont.cpp\n//\n// Desc: Texture"
},
{
"path": "Player/D3DFONT.H",
"chars": 2519,
"preview": "//-----------------------------------------------------------------------------\n// File: D3DFont.h\n//\n// Desc: Texture-b"
},
{
"path": "Player/DialogBarPlayerControl.cpp",
"chars": 11621,
"preview": "// DialogBarPlayerControl.cpp : implementation file\n//\n\n#include \"stdafx.h\"\n#include \"Player.h\"\n#include \"DialogBarPlaye"
},
{
"path": "Player/DialogBarPlayerControl.h",
"chars": 2057,
"preview": "#pragma once\n\n#include \"afxcmn.h\"\n\nclass CPlayerDoc;\n\n// CDialogBarPlayerControl\n\nclass CDialogBarPlayerControl\n : pu"
},
{
"path": "Player/DialogBarRange.cpp",
"chars": 5472,
"preview": "// DialogBarRange.cpp : implementation file\n//\n\n#include \"stdafx.h\"\n#include \"Player.h\"\n#include \"DialogBarRange.h\"\n\n#in"
},
{
"path": "Player/DialogBarRange.h",
"chars": 1345,
"preview": "#pragma once\n\n#include \"EditTime.h\"\n\nclass CPlayerDoc;\n\n// CDialogBarRange\n\nclass CDialogBarRange : public CPaneDialog\n{"
},
{
"path": "Player/DialogOpenURL.cpp",
"chars": 753,
"preview": "// DialogOpenURL.cpp : implementation file\n//\n\n#include \"stdafx.h\"\n#include \"Player.h\"\n#include \"DialogOpenURL.h\"\n#inclu"
},
{
"path": "Player/DialogOpenURL.h",
"chars": 492,
"preview": "#pragma once\n\n\n// CDialogOpenURL dialog\n\nclass CDialogOpenURL : public CDialog\n{\n\tDECLARE_DYNAMIC(CDialogOpenURL)\n\npubli"
},
{
"path": "Player/DialogVideoFilter.cpp",
"chars": 777,
"preview": "// DialogVideoFilter.cpp : implementation file\n//\n\n#include \"stdafx.h\"\n#include \"Player.h\"\n#include \"afxdialogex.h\"\n#inc"
},
{
"path": "Player/DialogVideoFilter.h",
"chars": 527,
"preview": "#pragma once\n#include \"afxdialogex.h\"\n\n\n// CDialogVideoFilter dialog\n\nclass CDialogVideoFilter : public CDialog\n{\n\tDECLA"
},
{
"path": "Player/EditTime.cpp",
"chars": 3224,
"preview": "// EditTime.cpp : implementation file\n//\n\n#include \"stdafx.h\"\n#include \"EditTime.h\"\n#include \"SecondsToString.h\"\n\n#inclu"
},
{
"path": "Player/EditTime.h",
"chars": 961,
"preview": "#pragma once\n\n/////////////////////////////////////////////////////////////////////////////\n// CEditTime window\n\nclass C"
},
{
"path": "Player/FrameToHglobal.cpp",
"chars": 1583,
"preview": "#include \"stdafx.h\"\n#include \"FrameToHglobal.h\"\n\n#include \"ffmpeg_dxva2.h\"\n\nextern \"C\"\n{\n#include \"libavutil/frame.h\"\n#i"
},
{
"path": "Player/FrameToHglobal.h",
"chars": 137,
"preview": "#pragma once\n\nstruct IDirect3DSurface9;\n\nHGLOBAL FrameToHglobal(IDirect3DSurface9* surface, int width, int height, int a"
},
{
"path": "Player/FrameTransformer.cpp",
"chars": 4695,
"preview": "#include \"stdafx.h\"\n\n#include \"FrameTransformer.h\"\n#include <stdexcept>\n#include <cstring>\n\nextern \"C\" {\n#include <libav"
},
{
"path": "Player/FrameTransformer.h",
"chars": 1552,
"preview": "// FrameTransformer.h\n#pragma once\n\n#include \"ordered_scoped_token.h\"\n\nextern \"C\" {\n#include <libavutil/avutil.h>\n#inclu"
},
{
"path": "Player/GetClipboardText.h",
"chars": 709,
"preview": "#pragma once\n\n#include <string>\n\ninline std::string GetClipboardText()\n{\n std::string text;\n\n // Try opening the c"
},
{
"path": "Player/HandleFilesSequence.cpp",
"chars": 3176,
"preview": "#include \"stdafx.h\"\n\n#include \"HandleFilesSequence.h\"\n\n#include <algorithm>\n#include <vector>\n\nnamespace {\n\nauto MakeCom"
},
{
"path": "Player/HandleFilesSequence.h",
"chars": 182,
"preview": "#pragma once\n\n#include <functional>\n\nbool HandleFilesSequence(const CString& pathName,\n bool looping,\n std::functi"
},
{
"path": "Player/I420Effect.cpp",
"chars": 6245,
"preview": "#include \"stdafx.h\"\n#include <initguid.h>\n\n#include \"I420Effect.h\"\n\n#include \"I420Effect_PS.h\"\n\n\nI420Effect::I420Effect("
},
{
"path": "Player/I420Effect.h",
"chars": 2310,
"preview": "#pragma once\n\n#include <d2d1effectauthor.h>\n\n// {3AB41678-D4BC-4BE1-8A91-07A63DEEFEA1}\nDEFINE_GUID(GUID_I420PixelShader,"
},
{
"path": "Player/I420Effect_PS.hlsl",
"chars": 862,
"preview": "Texture2D yTexture : register(t0);\nTexture2D uTexture : register(t1);\nTexture2D vTexture : register(t2);\n\nSamplerState y"
},
{
"path": "Player/IEraseableArea.h",
"chars": 149,
"preview": "#pragma once\n\nclass CWnd;\nclass CDC;\n\nclass IEraseableArea\n{\npublic:\n virtual void OnErase(CWnd* pInitiator, CDC* pDC"
},
{
"path": "Player/ImageUpscale.cpp",
"chars": 2280,
"preview": "#include \"stdafx.h\"\n\n#include \"ImageUpscale.h\"\n\n#if __has_include(\"AC.hpp\")\n\n#include\"AC.hpp\"\n#include\"ACCreator.hpp\"\n#i"
},
{
"path": "Player/ImageUpscale.h",
"chars": 341,
"preview": "#pragma once\n\n#include \"ordered_scoped_token.h\"\n\n#include <cstdint>\n#include <vector>\n\nbool CanUpscaleImage();\n\nbool Ena"
},
{
"path": "Player/MainFrm.cpp",
"chars": 13768,
"preview": "\n// MainFrm.cpp : implementation of the CMainFrame class\n//\n\n#include \"stdafx.h\"\n#include \"Player.h\"\n\n#include \"MainFrm."
},
{
"path": "Player/MainFrm.h",
"chars": 2060,
"preview": "\n// MainFrm.h : interface of the CMainFrame class\n//\n\n#pragma once\n\n#include \"DialogBarPlayerControl.h\"\n#include \"Dialog"
},
{
"path": "Player/MakeDelegate.h",
"chars": 735,
"preview": "#pragma once\n\n#include <utility>\n\ntemplate<auto TMethod, class T>\nclass Delegate\n{\npublic:\n explicit Delegate(T* call"
},
{
"path": "Player/MemoryMappedFile.h",
"chars": 2066,
"preview": "#pragma once\n\nclass MemoryMappedFile\n{\npublic:\n MemoryMappedFile()\n : hFile(INVALID_HANDLE_VALUE)\n , hF"
},
{
"path": "Player/OpenSubtitlesFile.cpp",
"chars": 9846,
"preview": "#include \"stdafx.h\"\n\n#include \"OpenSubtitlesFile.h\"\n\n#include <algorithm>\n#include <cctype>\n#include <fstream>\n#include "
},
{
"path": "Player/OpenSubtitlesFile.h",
"chars": 420,
"preview": "#pragma once\n\n#include <tchar.h>\n#include <functional>\n#include <string>\n\ntypedef std::function<void(double, double, con"
},
{
"path": "Player/Player.cpp",
"chars": 13617,
"preview": "\n// Player.cpp : Defines the class behaviors for the application.\n//\n\n#include \"stdafx.h\"\n#include \"afxwinappex.h\"\n#incl"
},
{
"path": "Player/Player.h",
"chars": 938,
"preview": "\n// Player.h : main header file for the Player application\n//\n#pragma once\n\n#ifndef __AFXWIN_H__\n #error \"include 'st"
},
{
"path": "Player/Player.rc",
"chars": 18531,
"preview": "// Microsoft Visual C++ generated resource script.\n//\n#include \"resource.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////"
},
{
"path": "Player/Player.vcxproj",
"chars": 20169,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "Player/Player.vcxproj.filters",
"chars": 6918,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "Player/PlayerDoc.cpp",
"chars": 54725,
"preview": "\n// PlayerDoc.cpp : implementation of the CPlayerDoc class\n//\n\n#include \"stdafx.h\"\n// SHARED_HANDLERS can be defined in "
},
{
"path": "Player/PlayerDoc.h",
"chars": 6708,
"preview": "\n// PlayerDoc.h : interface of the CPlayerDoc class\n//\n\n#pragma once\n\n#pragma warning(disable:4996)\n\n#include <memory>\n#"
},
{
"path": "Player/PlayerView.cpp",
"chars": 45773,
"preview": "// PlayerViewDxva2.cpp : implementation file\n//\n\n#include \"stdafx.h\"\n#include \"Player.h\"\n#include \"PlayerView.h\"\n#includ"
},
{
"path": "Player/PlayerView.h",
"chars": 2264,
"preview": "#pragma once\n\n#include \"IEraseableArea.h\"\n\n#include <memory>\n\nstruct IFrameListener;\n\nstruct IDirect3D9;\nstruct IDirect3"
},
{
"path": "Player/PlayerViewD2D.cpp",
"chars": 11260,
"preview": "\n#include \"stdafx.h\"\n// SHARED_HANDLERS can be defined in an ATL project implementing preview, thumbnail\n// and search f"
},
{
"path": "Player/PlayerViewD2D.h",
"chars": 1515,
"preview": "\n#pragma once\n\n#include <memory>\n\nstruct IFrameListener;\n\nstruct ID2D1Effect;\n\nclass CPlayerViewD2D : public CView\n{\nfri"
},
{
"path": "Player/ReadMe.txt",
"chars": 5221,
"preview": "================================================================================\n MICROSOFT FOUNDATION CLASS LIBRARY "
},
{
"path": "Player/SecondsToString.h",
"chars": 752,
"preview": "#pragma once\n\n#include <string>\n#include <sstream>\n#include <iomanip>\n\ninline std::basic_string<TCHAR> secondsToString(i"
},
{
"path": "Player/StringDifference.cpp",
"chars": 3568,
"preview": "#include \"stdafx.h\"\n#include \"StringDifference.h\"\n\n#include <algorithm>\n\nstatic auto SafePathString(std::basic_string<TC"
},
{
"path": "Player/StringDifference.h",
"chars": 478,
"preview": "#pragma once\n\n// vcpkg install dtl\n#include <dtl/dtl.hpp>\n\n#include <filesystem>\n\n\nclass StringDifference\n{\n typedef "
},
{
"path": "Player/YouTuber.cpp",
"chars": 29541,
"preview": "#include \"stdafx.h\"\n\n#include \"YouTuber.h\"\n\n#define YOUTUBE_EXPERIMENT\n\n#ifdef YOUTUBE_EXPERIMENT\n\n#include <Shlobj.h>\n\n"
},
{
"path": "Player/YouTuber.h",
"chars": 597,
"preview": "#pragma once\n\n#include <string>\n#include <functional>\n#include <vector>\n\nvoid CheckPython();\n\nstd::vector<std::string> P"
},
{
"path": "Player/resource.h",
"chars": 3648,
"preview": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by Player.rc\n//\n#define IDD_ABOUTBOX "
},
{
"path": "Player/stdafx.cpp",
"chars": 200,
"preview": "\n// stdafx.cpp : source file that includes just the standard includes\n// Player.pch will be the pre-compiled header\n// s"
},
{
"path": "Player/stdafx.h",
"chars": 1637,
"preview": "\n// stdafx.h : include file for standard system include files,\n// or project specific include files that are used freque"
},
{
"path": "Player/targetver.h",
"chars": 481,
"preview": "#pragma once\n\n// Including SDKDDKVer.h defines the highest available Windows platform.\n\n// If you wish to build your app"
},
{
"path": "Player/update_version.cmd",
"chars": 325,
"preview": "<nul set /p=\"#define GIT_COMMIT \" > %~dp0\\version.h.tmp \ngit --work-tree=%~dp0 rev-parse --short HEAD >> %~dp0\\version.h"
},
{
"path": "Player.sln",
"chars": 7505,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 17\nVisualStudioVersion = 17.13.359"
},
{
"path": "QtPlayer/.gitattributes",
"chars": 66,
"preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
},
{
"path": "QtPlayer/.gitignore",
"chars": 487,
"preview": "# C++ objects and libs\n*.slo\n*.lo\n*.o\n*.a\n*.la\n*.lai\n*.so\n*.dll\n*.dylib\n\n# Qt-es\nobject_script.*.Release\nobject_script.*"
},
{
"path": "QtPlayer/CMakeLists.txt",
"chars": 4804,
"preview": "cmake_minimum_required(VERSION 3.5)\n\nproject(QtPlayer LANGUAGES CXX)\n\noption(DEVELOPER_OPENGL \"Enables opengl display\" O"
},
{
"path": "QtPlayer/customdockwidget.cpp",
"chars": 1395,
"preview": "#include \"customdockwidget.h\"\n#include \"mainwindow.h\"\n#include \"videoplayerwidget.h\"\n#include \"videowidget.h\"\n\n#include "
},
{
"path": "QtPlayer/customdockwidget.h",
"chars": 783,
"preview": "#pragma once\n\n#include <QWidget>\n\nclass VideoDisplay;\nclass VideoWidget;\n\n\nclass CustomDockWidget : public QWidget\n{\n\tQ_"
},
{
"path": "QtPlayer/ffmpegdecoder.cpp",
"chars": 682,
"preview": "#include \"ffmpegdecoder.h\"\n\n//#include \"../audio/AudioPlayerWasapi.h\"\n\n#include \"portaudioplayer.h\"\n\n#include \"videodisp"
},
{
"path": "QtPlayer/ffmpegdecoder.h",
"chars": 1713,
"preview": "#pragma once\n\n#include \"../video/decoderinterface.h\"\n\n#include <QObject>\n\n#include <QString>\n\n#include <memory>\n\nclass V"
},
{
"path": "QtPlayer/main.cpp",
"chars": 1747,
"preview": "#include \"mainwindow.h\"\n\n#include <QApplication>\n\n#include <boost/log/sinks/debug_output_backend.hpp>\n#include <boost/lo"
},
{
"path": "QtPlayer/mainwindow.cpp",
"chars": 1894,
"preview": "#include \"mainwindow.h\"\n#include \"./ui_mainwindow.h\"\n\n#include \"videowidget.h\"\n\n#include <QFileDialog>\n#include <QInputD"
},
{
"path": "QtPlayer/mainwindow.h",
"chars": 524,
"preview": "#pragma once\n\n#include <QMainWindow>\n\nQT_BEGIN_NAMESPACE\nnamespace Ui { class MainWindow; }\nQT_END_NAMESPACE\n\nclass Cust"
},
{
"path": "QtPlayer/mainwindow.ui",
"chars": 4000,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>MainWindow</class>\n <widget class=\"QMainWindow\" name=\""
},
{
"path": "QtPlayer/mousehoverbutton.cpp",
"chars": 1115,
"preview": "#include \"mousehoverbutton.h\"\n#include <QMouseEvent>\n\nMouseHoverButton::MouseHoverButton(QWidget* parent) : QToolButton("
},
{
"path": "QtPlayer/mousehoverbutton.h",
"chars": 889,
"preview": "#pragma once\n\n#include <QToolButton>\n#include <QIcon>\n\n/*\n\tSince Qt tool button pushes icon's image for pressed state, w"
},
{
"path": "QtPlayer/opengldisplay.cpp",
"chars": 14262,
"preview": "#include \"opengldisplay.h\"\n\n// https://github.com/MasterAler/SampleYUVRenderer\n\n#include <QOpenGLShader>\n#include <QOpen"
},
{
"path": "QtPlayer/opengldisplay.h",
"chars": 1313,
"preview": "#ifndef OPENGLDISPLAY_H\n#define OPENGLDISPLAY_H\n\n// https://github.com/MasterAler/SampleYUVRenderer\n\n#include <QOpenGLWi"
},
{
"path": "QtPlayer/portaudioplayer.cpp",
"chars": 2284,
"preview": "#include \"portaudioplayer.h\"\n\n#include <portaudio.h>\n#include <QThread>\n\nPortAudioPlayer::PortAudioPlayer()\n{\n auto e"
},
{
"path": "QtPlayer/portaudioplayer.h",
"chars": 1036,
"preview": "#pragma once\n\n#include \"../video/audioplayer.h\"\n\n\nclass PortAudioPlayer :\n public IAudioPlayer\n{\npublic:\n PortAudi"
},
{
"path": "QtPlayer/resources/qt.conf",
"chars": 19,
"preview": "[Paths]\nPlugins = ."
},
{
"path": "QtPlayer/resources/resources.qrc",
"chars": 4971,
"preview": "<RCC>\n <qresource prefix=\"/\">\n <file>style.css</file>\n <file>images/help41.png</file>\n <file ali"
},
{
"path": "QtPlayer/resources/style.css",
"chars": 6832,
"preview": "/* ********** Global settings ********** */\nQWidget\n{\n\tfont-family: \"Segoe UI\";\n\tfont-size: 12px;\n}\n\nQDialog\n{\n\tborder: "
},
{
"path": "QtPlayer/resources/win7.manifest",
"chars": 735,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> \n <assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVe"
},
{
"path": "QtPlayer/resources/winres.rc.in",
"chars": 1700,
"preview": "#include \"verrsrc.h\"\n\nIDI_ICON1 ICON \"@ICON_FILE@\"\n\n#define VER_FILEVERSION "
},
{
"path": "QtPlayer/videocontrol.cpp",
"chars": 7008,
"preview": "#include \"videocontrol.h\"\n#include \"ui_videocontrol.h\"\n\n#include \"videoplayerwidget.h\"\n#include \"videowidget.h\"\n\n#includ"
},
{
"path": "QtPlayer/videocontrol.h",
"chars": 1109,
"preview": "#pragma once\n\n#include <QWidget>\n\nclass VideoPlayerWidget;\n\nnamespace Ui\n{\nclass VideoControl;\n}\n\nclass VideoControl : p"
},
{
"path": "QtPlayer/videocontrol.ui",
"chars": 7457,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>VideoControl</class>\n <widget class=\"QWidget\" name=\"Vi"
},
{
"path": "QtPlayer/videodisplay.cpp",
"chars": 752,
"preview": "#include \"videodisplay.h\"\n\nVideoDisplay::VideoDisplay() = default;\n\nVideoDisplay::~VideoDisplay()\n{\n if (m_decoder !="
},
{
"path": "QtPlayer/videodisplay.h",
"chars": 470,
"preview": "#pragma once\n\n#include <QImage>\n#include <QPixmap>\n#include \"ffmpegdecoder.h\"\n\nclass VideoDisplay : public IFrameListene"
},
{
"path": "QtPlayer/videoplayer.cpp",
"chars": 602,
"preview": "#include \"videoplayer.h\"\n#include \"widgetdisplay.h\"\n\n#include <QDebug>\n\nVideoPlayer::VideoPlayer() = default;\n\nVideoPlay"
},
{
"path": "QtPlayer/videoplayer.h",
"chars": 514,
"preview": "#pragma once\n\n#include \"ffmpegdecoder.h\"\n\n\nclass VideoPlayer\n{\npublic:\n\tenum VideoState\n\t{\n\t\tInitialState,\n\t\tPlaying,\n\t\t"
},
{
"path": "QtPlayer/videoplayerwidget.cpp",
"chars": 6551,
"preview": "#include \"videoplayerwidget.h\"\n#include \"videowidget.h\"\n#include \"videocontrol.h\"\n#include \"videoprogressbar.h\"\n\n#includ"
},
{
"path": "QtPlayer/videoplayerwidget.h",
"chars": 1562,
"preview": "#pragma once\n\n#include \"mainwindow.h\"\n#include \"videoplayer.h\"\n\n#include <QFrame>\n#include <QPointer>\n\nclass VideoContro"
},
{
"path": "QtPlayer/videoprogressbar.cpp",
"chars": 3652,
"preview": "#include \"videoprogressbar.h\"\n#include \"ffmpegdecoder.h\"\n#include \"videoplayerwidget.h\"\n#include <QPainter>\n#include <QE"
},
{
"path": "QtPlayer/videoprogressbar.h",
"chars": 718,
"preview": "#pragma once\n\n#include <QProgressBar>\n\nclass VideoProgressBar : public QProgressBar\n{\n\tQ_OBJECT\npublic:\n\texplicit VideoP"
},
{
"path": "QtPlayer/videowidget.cpp",
"chars": 8150,
"preview": "#include \"videowidget.h\"\n#include \"customdockwidget.h\"\n#include \"videoplayerwidget.h\"\n\n#include <QResizeEvent>\n#include "
},
{
"path": "QtPlayer/videowidget.h",
"chars": 2198,
"preview": "#pragma once\n\n#include <QImage>\n#include <QRegion>\n#include <QTimer>\n\n#ifdef DEVELOPER_OPENGL\n#include \"opengldisplay.h\""
},
{
"path": "QtPlayer/volumeprogressbar.cpp",
"chars": 797,
"preview": "#include \"volumeprogressbar.h\"\n\n#include <QPainter>\n\nVolumeProgressBar::VolumeProgressBar(QWidget* parent) : QProgressBa"
},
{
"path": "QtPlayer/volumeprogressbar.h",
"chars": 321,
"preview": "#pragma once\n\n#include <QProgressBar>\n\nclass VolumeProgressBar : public QProgressBar\n{\n\tQ_OBJECT\npublic:\n\tVolumeProgress"
},
{
"path": "QtPlayer/widgetdisplay.cpp",
"chars": 1112,
"preview": "#include \"widgetdisplay.h\"\n\n#include <QDebug>\n\n#include <utility>\n\nWidgetDisplay::WidgetDisplay(QWidget* parent) : QLabe"
},
{
"path": "QtPlayer/widgetdisplay.h",
"chars": 886,
"preview": "#pragma once\n\n#include \"videodisplay.h\"\n\n#include <QLabel>\n#include <QPixmap>\n#include <QImage>\n\nclass WidgetDisplay : p"
},
{
"path": "README.md",
"chars": 6048,
"preview": "# ℉ℲmpegPlayer\n\nA simple FFmpeg based player. The player core is generic and made with multiplatformity in mind. UI / vi"
},
{
"path": "Setup/Setup.vdproj",
"chars": 78332,
"preview": "\"DeployProject\"\n{\n\"VSVersion\" = \"3:800\"\n\"ProjectType\" = \"8:{978C614F-708E-4E1A-B201-565925725DBA}\"\n\"IsWebType\" = \"8:FAL"
},
{
"path": "ThirdParty/include/cmdline/cmdline.hpp",
"chars": 23243,
"preview": "/*\n Copyright (c) 2009, Hideyuki Tanaka\n All rights reserved.\n\n Redistribution and use in source and binary forms, wi"
},
{
"path": "ThirdParty/include/ini17/ini17.hpp",
"chars": 17156,
"preview": "#include <type_traits>\n#include <unordered_map>\n#include <vector>\n#include <list>\n#include <optional>\n#include <fstream>"
},
{
"path": "ThirdParty/include/opencl/CL/opencl.hpp",
"chars": 332101,
"preview": "//\n// Copyright (c) 2008-2020 The Khronos Group Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\""
},
{
"path": "ToUTF8/ToUTF8.cpp",
"chars": 7230,
"preview": "#define WIN32_LEAN_AND_MEAN\n#include <windows.h>\n#include <iostream>\n#include <fstream>\n#include <vector>\n#include <stri"
},
{
"path": "ToUTF8/ToUTF8.vcxproj",
"chars": 6241,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msb"
},
{
"path": "ToUTF8/ToUTF8.vcxproj.filters",
"chars": 956,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "audio/AudioPitchDecorator.cpp",
"chars": 2753,
"preview": "#include \"AudioPitchDecorator.h\"\n\n#include \"smbPitchShift.h\"\n\n#include <algorithm>\n#include <utility>\n\nAudioPitchDecorat"
},
{
"path": "audio/AudioPitchDecorator.h",
"chars": 1252,
"preview": "#pragma once\n\n#include \"../video/audioplayer.h\"\n\n#include <functional>\n#include <memory>\n#include <vector>\n\nclass CSmbPi"
},
{
"path": "audio/AudioPlayerImpl.cpp",
"chars": 6221,
"preview": "#include \"AudioPlayerImpl.h\"\n\n#include <malloc.h>\n\n\nnamespace {\n\nenum \n{\n BLOCK_SIZE = 4096,\n BLOCK_COUNT = 4,\n};"
},
{
"path": "audio/AudioPlayerImpl.h",
"chars": 1224,
"preview": "#pragma once\n\n#include \"../video/audioplayer.h\"\n\n#include <atlbase.h>\n#include <mmsystem.h>\n\nclass AudioPlayerImpl :\n "
},
{
"path": "audio/AudioPlayerWasapi.cpp",
"chars": 16006,
"preview": "#include \"AudioPlayerWasapi.h\"\n\n#include <Audioclient.h>\n#include <MMDeviceAPI.h>\n#include <Avrt.h>\n\n#include <string>\n#"
},
{
"path": "audio/AudioPlayerWasapi.h",
"chars": 1331,
"preview": "#pragma once\n\n#include \"../video/audioplayer.h\"\n\n#include <atlbase.h>\n\nstruct IAudioClient;\nstruct IAudioRenderClient;\ns"
},
{
"path": "audio/ReadMe.txt",
"chars": 1292,
"preview": "========================================================================\n STATIC LIBRARY : audio Project Overview\n==="
},
{
"path": "audio/audio.vcxproj",
"chars": 7276,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "audio/audio.vcxproj.filters",
"chars": 1729,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "audio/smbPitchShift.cpp",
"chars": 14390,
"preview": "/****************************************************************************\n*\n* NAME: smbPitchShift.cpp\n* VERSION: 1.2"
},
{
"path": "audio/smbPitchShift.h",
"chars": 877,
"preview": "#pragma once\n\n// http://blogs.zynaptiq.com/bernsee/pitch-shifting-using-the-ft/\n\nclass CSmbPitchShift\n{\n enum { MAX_F"
},
{
"path": "core/ac_export.h",
"chars": 800,
"preview": "\n#ifndef AC_EXPORT_H\n#define AC_EXPORT_H\n\n#ifdef AC_STATIC_DEFINE\n# define AC_EXPORT\n# define AC_NO_EXPORT\n#else\n# if"
},
{
"path": "edit_git_subst_cfg.cmd",
"chars": 43,
"preview": "notepad.exe \"%LOCALAPPDATA%\\git-subst.cfg\"\n"
},
{
"path": "ffmpeg-3.3.3-experimental-patch/common.before.h",
"chars": 15776,
"preview": "/*\n * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>\n *\n * This file is part of FFmpeg.\n *\n * FFmpeg is free "
},
{
"path": "ffmpeg-3.3.3-experimental-patch/common.h",
"chars": 15854,
"preview": "/*\n * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>\n *\n * This file is part of FFmpeg.\n *\n * FFmpeg is free "
},
{
"path": "ffmpeg-3.3.3-experimental-patch/hevcdsp_template.before.c",
"chars": 62881,
"preview": "/*\n * HEVC video decoder\n *\n * Copyright (C) 2012 - 2013 Guillaume Martres\n *\n * This file is part of FFmpeg.\n *\n * FFmp"
},
{
"path": "ffmpeg-3.3.3-experimental-patch/hevcdsp_template.c",
"chars": 75012,
"preview": "/*\n * HEVC video decoder\n *\n * Copyright (C) 2012 - 2013 Guillaume Martres\n *\n * This file is part of FFmpeg.\n *\n * FFmp"
},
{
"path": "ffmpeg-4.3.2-experimental-patch/common.before.h",
"chars": 18054,
"preview": "/*\n * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>\n *\n * This file is part of FFmpeg.\n *\n * FFmpeg is free "
},
{
"path": "ffmpeg-4.3.2-experimental-patch/common.h",
"chars": 18130,
"preview": "/*\n * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>\n *\n * This file is part of FFmpeg.\n *\n * FFmpeg is free "
},
{
"path": "ffmpeg-4.3.2-experimental-patch/hevcdsp_template.before.c",
"chars": 62932,
"preview": "/*\n * HEVC video decoder\n *\n * Copyright (C) 2012 - 2013 Guillaume Martres\n *\n * This file is part of FFmpeg.\n *\n * FFmp"
},
{
"path": "ffmpeg-4.3.2-experimental-patch/hevcdsp_template.c",
"chars": 75041,
"preview": "/*\n * HEVC video decoder\n *\n * Copyright (C) 2012 - 2013 Guillaume Martres\n *\n * This file is part of FFmpeg.\n *\n * FFmp"
},
{
"path": "getYoutubeCombined.py",
"chars": 9566,
"preview": "import sys, platform, socket, re\nimport os, json, requests, subprocess, importlib\n\nsys.stdout = LoggerStream()\nsys.stder"
},
{
"path": "networking/ReadMe.txt",
"chars": 1292,
"preview": "========================================================================\n STATIC LIBRARY : unzip Project Overview\n==="
},
{
"path": "networking/crypt.h",
"chars": 4619,
"preview": "/* crypt.h -- base code for crypt/uncrypt ZIPfile\n\n\n Version 1.01e, February 12th, 2005\n\n Copyright (C) 1998-2005 Gi"
},
{
"path": "networking/http_download.cpp",
"chars": 3419,
"preview": "#include \"http_download.h\"\n\n#include <windows.h>\n#include <winhttp.h>\n#include <stdio.h>\n\n#include <memory>\n#include <st"
},
{
"path": "networking/http_download.h",
"chars": 91,
"preview": "#pragma once\n\n#include <tchar.h>\n\nbool HttpDownload(const TCHAR* url, const TCHAR* path);\n\n"
},
{
"path": "networking/http_get.cpp",
"chars": 4736,
"preview": "#include \"http_get.h\"\n\n#include \"httprequest_h.h\"\n\n#include <ws2tcpip.h>\n\n#include <algorithm>\n\nnamespace {\n\nconst wchar"
},
{
"path": "networking/http_get.h",
"chars": 189,
"preview": "#pragma once\n\n#include <atlcomcli.h>\n#include <string>\n\n// modifies url if it is a redirect\nlong HttpGetStatus(std::stri"
},
{
"path": "networking/httpioapi.cpp",
"chars": 3501,
"preview": "/* ioapi.c -- IO base function header for compress/uncompress .zip\n files using zlib + zip or unzip API\n\n Version 1."
},
{
"path": "networking/httprequest_h.h",
"chars": 22802,
"preview": "\n\n/* this ALWAYS GENERATED file contains the definitions for the interfaces */\n\n\n /* File created by MIDL compiler versi"
},
{
"path": "networking/ioapi.h",
"chars": 2556,
"preview": "/* ioapi.h -- IO base function header for compress/uncompress .zip\n files using zlib + zip or unzip API\n\n Version 1."
},
{
"path": "networking/networking.vcxproj",
"chars": 6726,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "networking/networking.vcxproj.filters",
"chars": 1942,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "networking/unzip.c",
"chars": 49283,
"preview": "/* unzip.c -- IO for uncompress .zip files using zlib\n Version 1.01e, February 12th, 2005\n\n Copyright (C) 1998-2005 "
},
{
"path": "networking/unzip.h",
"chars": 12279,
"preview": "/* unzip.h -- IO for uncompress .zip files using zlib\n Version 1.01e, February 12th, 2005\n\n Copyright (C) 1998-2005 "
},
{
"path": "remove_pytube.cmd",
"chars": 40,
"preview": "RD \"%LOCALAPPDATA%\\pytube-master\" /S /Q\n"
},
{
"path": "remove_youtube_transcript_api.cmd",
"chars": 56,
"preview": "RD \"%LOCALAPPDATA%\\youtube-transcript-api-master\" /S /Q\n"
},
{
"path": "video/audioparserunnable.cpp",
"chars": 13006,
"preview": "#include \"ffmpegdecoder.h\"\n#include \"makeguard.h\"\n#include \"interlockedadd.h\"\n\n#include <boost/log/trivial.hpp>\n\n#includ"
},
{
"path": "video/audioplayer.h",
"chars": 914,
"preview": "#pragma once\n\n#include <cstdint>\n\nstruct IAudioPlayerCallback\n{\n virtual void AppendFrameClock(double frame_clock) = "
},
{
"path": "video/decoderinterface.h",
"chars": 7746,
"preview": "#pragma once\n\n#include \"ordered_scoped_token.h\"\n\n#include <cstdint>\n#include <memory>\n#include <string>\n#include <utilit"
},
{
"path": "video/decoderiocontext.cpp",
"chars": 3306,
"preview": "#include \"decoderiocontext.h\"\n\nextern \"C\"\n{\n#include <libavformat/avformat.h>\n}\n\n\n// static\nint DecoderIOContext::IORead"
},
{
"path": "video/decoderiocontext.h",
"chars": 581,
"preview": "#pragma once\n\n#include <cstdint>\n#include <memory>\n#include <streambuf>\n\nstruct AVIOContext;\nstruct AVFormatContext;\n\ncl"
},
{
"path": "video/displayrunnable.cpp",
"chars": 3434,
"preview": "#include \"ffmpegdecoder.h\"\n\n#include <tuple>\n\nvoid FFmpegDecoder::displayRunnable()\n{\n CHANNEL_LOG(ffmpeg_threads) <<"
},
{
"path": "video/ffmpeg_dxva2.cpp",
"chars": 32974,
"preview": "/*\n* This file is part of FFmpeg.\n*\n* FFmpeg is free software; you can redistribute it and/or\n* modify it under the term"
},
{
"path": "video/ffmpeg_dxva2.h",
"chars": 1263,
"preview": "#pragma once\n\n/*\n * This file is part of FFmpeg.\n *\n * FFmpeg is free software; you can redistribute it and/or\n * modify"
},
{
"path": "video/ffmpegdecoder.cpp",
"chars": 40272,
"preview": "#include \"ffmpegdecoder.h\"\n\n#include <climits>\n#include <cstdint>\n\n#include \"makeguard.h\"\n#include \"interlockedadd.h\"\n#"
},
{
"path": "video/ffmpegdecoder.h",
"chars": 9688,
"preview": "#pragma once\n\n#include \"decoderinterface.h\"\n#include \"audioplayer.h\"\n\nextern \"C\" {\n#include <libavcodec/avcodec.h>\n#incl"
},
{
"path": "video/fqueue.h",
"chars": 3121,
"preview": "#pragma once\n\n#include <boost/thread/thread.hpp>\n#include <deque>\n#include <map>\n#include <type_traits>\n\ntemplate<size_t"
},
{
"path": "video/interlockedadd.h",
"chars": 213,
"preview": "#pragma once\n\n#include <boost/atomic.hpp>\n\ninline void InterLockedAdd(boost::atomic<double>& clock, double correction)\n{"
},
{
"path": "video/makeguard.h",
"chars": 173,
"preview": "#pragma once\n\n#include <memory>\n#include <utility>\n\ntemplate<typename T, typename D>\ninline auto MakeGuard(T* t, D d)\n{\n"
},
{
"path": "video/ordered_scoped_token.h",
"chars": 6945,
"preview": "// ordered_scoped_token.h\n#pragma once\n\n#include <atomic>\n#include <condition_variable>\n#include <cstdint>\n#include <mem"
},
{
"path": "video/parserunnable.cpp",
"chars": 19762,
"preview": "#include \"ffmpegdecoder.h\"\n#include \"makeguard.h\"\n#include \"subtitles.h\"\n\n#include <algorithm>\n#include <chrono>\n#includ"
},
{
"path": "video/subtitles.cpp",
"chars": 5064,
"preview": "#include \"subtitles.h\"\n\n#include \"makeguard.h\"\n\n#include <boost/algorithm/string/predicate.hpp>\n#include <boost/algorith"
},
{
"path": "video/subtitles.h",
"chars": 223,
"preview": "#pragma once\n\nextern \"C\" {\n#include <libavcodec/avcodec.h>\n}\n\n#include <string>\n\nAVCodecContext* MakeSubtitlesCodecConte"
},
{
"path": "video/video.vcxproj",
"chars": 8136,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project DefaultTargets=\"Build\" ToolsVersion=\"15.0\" xmlns=\"http://schemas.micros"
},
{
"path": "video/video.vcxproj.filters",
"chars": 2902,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
},
{
"path": "video/videoframe.h",
"chars": 1062,
"preview": "#pragma once\n\n#include <memory>\n#include <future>\n\nstruct AVFrameDeleter\n{\n void operator()(AVFrame *frame) const { a"
},
{
"path": "video/videoparserunnable.cpp",
"chars": 22801,
"preview": "#include \"ffmpegdecoder.h\"\n#include \"makeguard.h\"\n#include \"interlockedadd.h\"\n\nextern \"C\"\n{\n#include \"libavutil/imgutils"
},
{
"path": "video/vqueue.h",
"chars": 1155,
"preview": "#pragma once\n\n#include <cassert>\n\n// Video frame struct for RGB24 frame (used by displays)\nclass VQueue\n{\npublic:\n VQ"
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the aliakseis/FFmpegPlayer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 181 files (1.6 MB), approximately 443.9k tokens, and a symbol index with 1304 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.