mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-04-19 22:07:45 -05:00
Almost all the virtual functions in Renderer are part of dolphin's "graphics api abstraction layer", which has slowly formed over the last decade or two. Most of the work was done previously with the introduction of the various "AbstractX" classes, associated with texture cache cleanups and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal). We are simply taking the last step and yeeting these functions out of Renderer. This "AbstractGfx" class is now completely agnostic of any details from the flipper/hollywood GPU we are emulating, though somewhat specialized. (Will not build, this commit only contains changes outside VideoBackends)
242 lines
5.4 KiB
CMake
242 lines
5.4 KiB
CMake
add_library(videocommon
|
|
AbstractFramebuffer.cpp
|
|
AbstractFramebuffer.h
|
|
AbstractGfx.cpp
|
|
AbstractGfx.h
|
|
AbstractShader.h
|
|
AbstractStagingTexture.cpp
|
|
AbstractStagingTexture.h
|
|
AbstractTexture.cpp
|
|
AbstractTexture.h
|
|
AsyncRequests.cpp
|
|
AsyncRequests.h
|
|
AsyncShaderCompiler.cpp
|
|
AsyncShaderCompiler.h
|
|
BoundingBox.cpp
|
|
BoundingBox.h
|
|
BPFunctions.cpp
|
|
BPFunctions.h
|
|
BPMemory.cpp
|
|
BPMemory.h
|
|
BPStructs.cpp
|
|
BPStructs.h
|
|
CommandProcessor.cpp
|
|
CommandProcessor.h
|
|
ConstantManager.h
|
|
CPMemory.cpp
|
|
CPMemory.h
|
|
CPUCull.cpp
|
|
CPUCull.h
|
|
CPUCullImpl.h
|
|
DriverDetails.cpp
|
|
DriverDetails.h
|
|
Fifo.cpp
|
|
Fifo.h
|
|
FramebufferManager.cpp
|
|
FramebufferManager.h
|
|
FramebufferShaderGen.cpp
|
|
FramebufferShaderGen.h
|
|
FrameDumper.cpp
|
|
FrameDumper.h
|
|
FrameDumpFFMpeg.h
|
|
FreeLookCamera.cpp
|
|
FreeLookCamera.h
|
|
GeometryShaderGen.cpp
|
|
GeometryShaderGen.h
|
|
GeometryShaderManager.cpp
|
|
GeometryShaderManager.h
|
|
GraphicsModSystem/Config/GraphicsMod.cpp
|
|
GraphicsModSystem/Config/GraphicsMod.h
|
|
GraphicsModSystem/Config/GraphicsModFeature.cpp
|
|
GraphicsModSystem/Config/GraphicsModFeature.h
|
|
GraphicsModSystem/Config/GraphicsModGroup.cpp
|
|
GraphicsModSystem/Config/GraphicsModGroup.h
|
|
GraphicsModSystem/Config/GraphicsTarget.cpp
|
|
GraphicsModSystem/Config/GraphicsTarget.h
|
|
GraphicsModSystem/Config/GraphicsTargetGroup.cpp
|
|
GraphicsModSystem/Config/GraphicsTargetGroup.h
|
|
GraphicsModSystem/Constants.h
|
|
GraphicsModSystem/Runtime/Actions/MoveAction.cpp
|
|
GraphicsModSystem/Runtime/Actions/MoveAction.h
|
|
GraphicsModSystem/Runtime/Actions/PrintAction.cpp
|
|
GraphicsModSystem/Runtime/Actions/PrintAction.h
|
|
GraphicsModSystem/Runtime/Actions/ScaleAction.cpp
|
|
GraphicsModSystem/Runtime/Actions/ScaleAction.h
|
|
GraphicsModSystem/Runtime/Actions/SkipAction.cpp
|
|
GraphicsModSystem/Runtime/Actions/SkipAction.h
|
|
GraphicsModSystem/Runtime/FBInfo.cpp
|
|
GraphicsModSystem/Runtime/FBInfo.h
|
|
GraphicsModSystem/Runtime/GraphicsModAction.h
|
|
GraphicsModSystem/Runtime/GraphicsModActionData.h
|
|
GraphicsModSystem/Runtime/GraphicsModActionFactory.cpp
|
|
GraphicsModSystem/Runtime/GraphicsModActionFactory.h
|
|
GraphicsModSystem/Runtime/GraphicsModManager.cpp
|
|
GraphicsModSystem/Runtime/GraphicsModManager.h
|
|
HiresTextures.cpp
|
|
HiresTextures.h
|
|
HiresTextures_DDSLoader.cpp
|
|
IndexGenerator.cpp
|
|
IndexGenerator.h
|
|
LightingShaderGen.cpp
|
|
LightingShaderGen.h
|
|
LookUpTables.h
|
|
NativeVertexFormat.h
|
|
NetPlayChatUI.cpp
|
|
NetPlayChatUI.h
|
|
NetPlayGolfUI.cpp
|
|
NetPlayGolfUI.h
|
|
OnScreenDisplay.cpp
|
|
OnScreenDisplay.h
|
|
OnScreenUI.cpp
|
|
OnScreenUI.h
|
|
OpcodeDecoding.cpp
|
|
OpcodeDecoding.h
|
|
PerfQueryBase.cpp
|
|
PerfQueryBase.h
|
|
PerformanceMetrics.cpp
|
|
PerformanceMetrics.h
|
|
PerformanceTracker.cpp
|
|
PerformanceTracker.h
|
|
PixelEngine.cpp
|
|
PixelEngine.h
|
|
PixelShaderGen.cpp
|
|
PixelShaderGen.h
|
|
PixelShaderManager.cpp
|
|
PixelShaderManager.h
|
|
PostProcessing.cpp
|
|
PostProcessing.h
|
|
Present.cpp
|
|
Present.h
|
|
RenderBase.cpp
|
|
RenderBase.h
|
|
RenderState.cpp
|
|
RenderState.h
|
|
ShaderCache.cpp
|
|
ShaderCache.h
|
|
ShaderGenCommon.cpp
|
|
ShaderGenCommon.h
|
|
Spirv.cpp
|
|
Spirv.h
|
|
Statistics.cpp
|
|
Statistics.h
|
|
TextureCacheBase.cpp
|
|
TextureCacheBase.h
|
|
TextureConfig.cpp
|
|
TextureConfig.h
|
|
TextureConversionShader.cpp
|
|
TextureConversionShader.h
|
|
TextureConverterShaderGen.cpp
|
|
TextureConverterShaderGen.h
|
|
TextureDecoder.h
|
|
TextureDecoder_Common.cpp
|
|
TextureDecoder_Util.h
|
|
TextureInfo.cpp
|
|
TextureInfo.h
|
|
TMEM.cpp
|
|
TMEM.h
|
|
UberShaderCommon.cpp
|
|
UberShaderCommon.h
|
|
UberShaderPixel.cpp
|
|
UberShaderPixel.h
|
|
UberShaderVertex.cpp
|
|
UberShaderVertex.h
|
|
VertexLoader.cpp
|
|
VertexLoader.h
|
|
VertexLoaderBase.cpp
|
|
VertexLoaderBase.h
|
|
VertexLoaderManager.cpp
|
|
VertexLoaderManager.h
|
|
VertexLoaderUtils.h
|
|
VertexLoader_Color.cpp
|
|
VertexLoader_Color.h
|
|
VertexLoader_Normal.cpp
|
|
VertexLoader_Normal.h
|
|
VertexLoader_Position.cpp
|
|
VertexLoader_Position.h
|
|
VertexLoader_TextCoord.cpp
|
|
VertexLoader_TextCoord.h
|
|
VertexManagerBase.cpp
|
|
VertexManagerBase.h
|
|
VertexShaderGen.cpp
|
|
VertexShaderGen.h
|
|
VertexShaderManager.cpp
|
|
VertexShaderManager.h
|
|
VideoBackendBase.cpp
|
|
VideoBackendBase.h
|
|
VideoCommon.h
|
|
VideoConfig.cpp
|
|
VideoConfig.h
|
|
VideoState.cpp
|
|
VideoState.h
|
|
XFMemory.cpp
|
|
XFMemory.h
|
|
XFStructs.cpp
|
|
XFStructs.h
|
|
)
|
|
|
|
target_link_libraries(videocommon
|
|
PUBLIC
|
|
core
|
|
PRIVATE
|
|
fmt::fmt
|
|
spng
|
|
xxhash
|
|
imgui
|
|
implot
|
|
glslang
|
|
)
|
|
|
|
if(_M_X86)
|
|
target_sources(videocommon PRIVATE
|
|
TextureDecoder_x64.cpp
|
|
VertexLoaderX64.cpp
|
|
VertexLoaderX64.h
|
|
)
|
|
elseif(_M_ARM_64)
|
|
target_sources(videocommon PRIVATE
|
|
VertexLoaderARM64.cpp
|
|
VertexLoaderARM64.h
|
|
TextureDecoder_Generic.cpp
|
|
)
|
|
else()
|
|
target_sources(videocommon PRIVATE
|
|
TextureDecoder_Generic.cpp
|
|
)
|
|
endif()
|
|
|
|
if(FFmpeg_FOUND)
|
|
target_sources(videocommon PRIVATE
|
|
FrameDumpFFMpeg.cpp
|
|
)
|
|
target_link_libraries(videocommon PRIVATE
|
|
FFmpeg::avcodec
|
|
FFmpeg::avformat
|
|
FFmpeg::avutil
|
|
FFmpeg::swresample
|
|
FFmpeg::swscale
|
|
)
|
|
if(APPLE)
|
|
target_link_libraries(videocommon PRIVATE
|
|
${COREMEDIA_LIBRARY}
|
|
${VIDEOTOOLBOX_LIBRARY}
|
|
${COREVIDEO_LIBRARY}
|
|
${AUDIOTOOLBOX_LIBRARY}
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
# Silence warnings on glslang by flagging it as a system include
|
|
target_include_directories(videocommon
|
|
SYSTEM PUBLIC
|
|
${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/Public
|
|
SYSTEM PRIVATE
|
|
${CMAKE_SOURCE_DIR}/Externals/glslang/StandAlone
|
|
${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV
|
|
${CMAKE_SOURCE_DIR}/Externals/glslang
|
|
)
|
|
|
|
if(MSVC)
|
|
# Add precompiled header
|
|
target_link_libraries(videocommon PRIVATE use_pch)
|
|
endif()
|