mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Add HDR to Metal
This commit is contained in:
@ -164,8 +164,23 @@ void Metal::VideoBackend::PrepareWindow(WindowSystemInfo& wsi)
|
|||||||
return;
|
return;
|
||||||
NSView* view = static_cast<NSView*>(wsi.render_surface);
|
NSView* view = static_cast<NSView*>(wsi.render_surface);
|
||||||
CAMetalLayer* layer = [CAMetalLayer layer];
|
CAMetalLayer* layer = [CAMetalLayer layer];
|
||||||
|
|
||||||
|
Util::PopulateBackendInfo(&g_Config);
|
||||||
|
|
||||||
|
if (g_Config.backend_info.bSupportsHDROutput && g_Config.bHDR)
|
||||||
|
{
|
||||||
|
[layer setWantsExtendedDynamicRangeContent:YES];
|
||||||
|
[layer setPixelFormat:MTLPixelFormatRGBA16Float];
|
||||||
|
|
||||||
|
const CFStringRef name = kCGColorSpaceExtendedLinearSRGB;
|
||||||
|
CGColorSpaceRef colorspace = CGColorSpaceCreateWithName(name);
|
||||||
|
[layer setColorspace:colorspace];
|
||||||
|
CGColorSpaceRelease(colorspace);
|
||||||
|
}
|
||||||
|
|
||||||
[view setWantsLayer:YES];
|
[view setWantsLayer:YES];
|
||||||
[view setLayer:layer];
|
[view setLayer:layer];
|
||||||
|
|
||||||
wsi.render_surface = layer;
|
wsi.render_surface = layer;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,9 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <AppKit/NSScreen.h>
|
||||||
#include <Metal/Metal.h>
|
#include <Metal/Metal.h>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "VideoCommon/AbstractShader.h"
|
#include "VideoCommon/AbstractShader.h"
|
||||||
|
@ -77,6 +77,8 @@ void Metal::Util::PopulateBackendInfo(VideoConfig* config)
|
|||||||
config->backend_info.bSupportsPartialMultisampleResolve = false;
|
config->backend_info.bSupportsPartialMultisampleResolve = false;
|
||||||
config->backend_info.bSupportsDynamicVertexLoader = true;
|
config->backend_info.bSupportsDynamicVertexLoader = true;
|
||||||
config->backend_info.bSupportsVSLinePointExpand = true;
|
config->backend_info.bSupportsVSLinePointExpand = true;
|
||||||
|
config->backend_info.bSupportsHDROutput =
|
||||||
|
1.0 < [[NSScreen deepestScreen] maximumPotentialExtendedDynamicRangeColorComponentValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
void Metal::Util::PopulateBackendInfoAdapters(VideoConfig* config,
|
void Metal::Util::PopulateBackendInfoAdapters(VideoConfig* config,
|
||||||
|
Reference in New Issue
Block a user