dolphin/Source/Core/VideoCommon
Stenzek 260d5b7aa7 BPMemory: Handle fog configuration where both A and C are infinity/NaN
The console appears to behave against standard IEEE754 specification
here, in particular around how NaNs are handled. NaNs appear to have no
effect on the result, and are treated the same as positive or negative
infinity, based on the sign bit.

However, when the result would be NaN (inf - inf, or (-inf) - (-inf)),
this results in a completely fogged color, or unfogged color
respectively. We handle this by returning a constant zero for the A
varaible, and positive or negative infinity for C depending on the sign
bits of the A and C registers. This ensures that no NaN value is passed
to the GPU in the first place, and that the result of the fog
calculation cannot be NaN.
2018-02-01 17:40:39 +10:00
..
AbstractStagingTexture.cpp
AbstractStagingTexture.h
AbstractTexture.cpp
AbstractTexture.h
AsyncRequests.cpp
AsyncRequests.h
AsyncShaderCompiler.cpp
AsyncShaderCompiler.h
AVIDump.cpp
AVIDump.h
BoundingBox.cpp
BoundingBox.h
BPFunctions.cpp
BPFunctions.h
BPMemory.cpp
BPMemory.h
BPStructs.cpp
BPStructs.h
CMakeLists.txt
CommandProcessor.cpp
CommandProcessor.h
ConstantManager.h
CPMemory.cpp
CPMemory.h
DataReader.h
Debugger.cpp
Debugger.h
DriverDetails.cpp
DriverDetails.h
Fifo.cpp
Fifo.h
FPSCounter.cpp
FPSCounter.h
FramebufferManagerBase.cpp
FramebufferManagerBase.h
GeometryShaderGen.cpp
GeometryShaderGen.h
GeometryShaderManager.cpp
GeometryShaderManager.h
HiresTextures_DDSLoader.cpp
HiresTextures.cpp
HiresTextures.h
ImageWrite.cpp
ImageWrite.h
IndexGenerator.cpp
IndexGenerator.h
LightingShaderGen.cpp
LightingShaderGen.h
LookUpTables.h
MainBase.cpp
NativeVertexFormat.h
OnScreenDisplay.cpp
OnScreenDisplay.h
OpcodeDecoding.cpp
OpcodeDecoding.h
PerfQueryBase.cpp
PerfQueryBase.h
PixelEngine.cpp
PixelEngine.h
PixelShaderGen.cpp
PixelShaderGen.h
PixelShaderManager.cpp
PixelShaderManager.h
PostProcessing.cpp
PostProcessing.h
RenderBase.cpp
RenderBase.h
RenderState.cpp
RenderState.h
SamplerCommon.h
sfont.inc
ShaderGenCommon.cpp
ShaderGenCommon.h
Statistics.cpp
Statistics.h
TextureCacheBase.cpp
TextureCacheBase.h
TextureConfig.cpp
TextureConfig.h
TextureConversionShader.cpp
TextureConversionShader.h
TextureConverterShaderGen.cpp
TextureConverterShaderGen.h
TextureDecoder_Common.cpp
TextureDecoder_Generic.cpp
TextureDecoder_Util.h
TextureDecoder_x64.cpp
TextureDecoder.h
UberShaderCommon.cpp
UberShaderCommon.h
UberShaderPixel.cpp
UberShaderPixel.h
UberShaderVertex.cpp
UberShaderVertex.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
VertexLoader.cpp
VertexLoader.h
VertexLoaderARM64.cpp
VertexLoaderARM64.h
VertexLoaderBase.cpp
VertexLoaderBase.h
VertexLoaderManager.cpp
VertexLoaderManager.h
VertexLoaderUtils.h
VertexLoaderX64.cpp
VertexLoaderX64.h
VertexManagerBase.cpp
VertexManagerBase.h
VertexShaderGen.cpp
VertexShaderGen.h
VertexShaderManager.cpp
VertexShaderManager.h
VideoBackendBase.cpp
VideoBackendBase.h
VideoCommon.h
VideoCommon.vcxproj
VideoCommon.vcxproj.filters
VideoConfig.cpp
VideoConfig.h
VideoState.cpp
VideoState.h
XFMemory.cpp
XFMemory.h
XFStructs.cpp
XFStructs.h