Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions platform/linuxbsd/wayland/display_server_wayland.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1559,6 +1559,7 @@ bool DisplayServerWayland::window_is_hdr_output_requested(DisplayServerEnums::Wi
}

bool DisplayServerWayland::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window_id) const {
ERR_FAIL_COND_V(!windows.has(p_window_id), false);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_enabled(p_window_id);
Expand All @@ -1579,6 +1580,7 @@ float DisplayServerWayland::window_get_hdr_output_reference_luminance(DisplaySer
}

float DisplayServerWayland::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window_id) const {
ERR_FAIL_COND_V(!windows.has(p_window_id), 0.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_reference_luminance(p_window_id);
Expand All @@ -1599,6 +1601,7 @@ float DisplayServerWayland::window_get_hdr_output_max_luminance(DisplayServerEnu
}

float DisplayServerWayland::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window_id) const {
ERR_FAIL_COND_V(!windows.has(p_window_id), 0.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_max_luminance(p_window_id);
Expand All @@ -1608,6 +1611,7 @@ float DisplayServerWayland::window_get_hdr_output_current_max_luminance(DisplayS
}

float DisplayServerWayland::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window_id) const {
ERR_FAIL_COND_V(!windows.has(p_window_id), 1.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_output_max_linear_value(p_window_id);
Expand Down
2 changes: 1 addition & 1 deletion platform/macos/display_server_macos.h
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ class DisplayServerMacOS : public DisplayServerMacOSBase {
public:
void menu_callback(id p_sender);

bool has_window(DisplayServerEnums::WindowID p_window) const;
virtual bool has_window(DisplayServerEnums::WindowID p_window) const override;
WindowData &get_window(DisplayServerEnums::WindowID p_window);

NSImage *_convert_to_nsimg(Ref<Image> &p_image) const;
Expand Down
2 changes: 2 additions & 0 deletions platform/macos/display_server_macos_base.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ class DisplayServerMacOSBase : public DisplayServer {
void _update_hdr_output(DisplayServerEnums::WindowID p_window, const HDROutput &p_hdr);

public:
virtual bool has_window(DisplayServerEnums::WindowID p_window) const { return p_window == DisplayServerEnums::MAIN_WINDOW_ID; }

virtual bool tts_is_speaking() const override;
virtual bool tts_is_paused() const override;
virtual TypedArray<Dictionary> tts_get_voices() const override;
Expand Down
9 changes: 9 additions & 0 deletions platform/macos/display_server_macos_base.mm
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,7 @@
bool DisplayServerMacOSBase::window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), false);
#if defined(RD_ENABLED)
if (rendering_device && !rendering_device->has_feature(RenderingDevice::Features::SUPPORTS_HDR_OUTPUT)) {
return false;
Expand All @@ -602,6 +603,7 @@
void DisplayServerMacOSBase::window_request_hdr_output(const bool p_enabled, DisplayServerEnums::WindowID p_window) {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND(!has_window(p_window));
#if defined(RD_ENABLED)
ERR_FAIL_COND_MSG(p_enabled && rendering_device && !rendering_device->has_feature(RenderingDevice::Features::SUPPORTS_HDR_OUTPUT), "HDR output is not supported by the rendering device.");
#endif
Expand All @@ -614,12 +616,14 @@
bool DisplayServerMacOSBase::window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), false);
return _get_hdr_output(p_window).requested;
}

bool DisplayServerMacOSBase::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), false);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_enabled(p_window);
Expand All @@ -644,6 +648,7 @@
float DisplayServerMacOSBase::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), 0.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_reference_luminance(p_window);
Expand All @@ -655,6 +660,7 @@
void DisplayServerMacOSBase::window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window) {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND(!has_window(p_window));
HDROutput &hdr = _get_hdr_output(p_window);

if (hdr.max_luminance == p_max_luminance) {
Expand All @@ -667,12 +673,14 @@
float DisplayServerMacOSBase::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), 0.0);
return _get_hdr_output(p_window).max_luminance;
}

float DisplayServerMacOSBase::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), 0.0);
const HDROutput &hdr = _get_hdr_output(p_window);
if (hdr.is_auto_max_luminance()) {
CGFloat max_potential_edr;
Expand All @@ -685,6 +693,7 @@
float DisplayServerMacOSBase::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!has_window(p_window), 1.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_output_max_linear_value(p_window);
Expand Down
14 changes: 14 additions & 0 deletions platform/windows/display_server_windows.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3456,6 +3456,9 @@ DisplayServerWindows::ScreenHdrData DisplayServerWindows::_get_screen_hdr_data(D
}

void DisplayServerWindows::_winrt_adv_color_info_cb(DisplayServerEnums::WindowID p_id) {
if (!windows.has(p_id)) {
return;
}
WindowData &wd = windows[p_id];

DisplayServerWindows::ScreenHdrData data = _get_screen_hdr_data(p_id, true);
Expand Down Expand Up @@ -4746,6 +4749,7 @@ DisplayServerEnums::VSyncMode DisplayServerWindows::window_get_vsync_mode(Displa
bool DisplayServerWindows::window_is_hdr_output_supported(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), false);
#if defined(RD_ENABLED)
if (rendering_device && !rendering_device->has_feature(RenderingDevice::Features::SUPPORTS_HDR_OUTPUT)) {
return false; // HDR output is not supported by the rendering device.
Expand All @@ -4760,6 +4764,7 @@ bool DisplayServerWindows::window_is_hdr_output_supported(DisplayServerEnums::Wi
void DisplayServerWindows::window_request_hdr_output(const bool p_enable, DisplayServerEnums::WindowID p_window) {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND(!windows.has(p_window));
#if defined(RD_ENABLED)
ERR_FAIL_COND_EDMSG(p_enable && (rendering_device && rendering_device->has_feature(RenderingDevice::Features::SUPPORTS_HDR_OUTPUT)) == false, "HDR output is not supported by the rendering device.");
#endif
Expand All @@ -4774,13 +4779,15 @@ void DisplayServerWindows::window_request_hdr_output(const bool p_enable, Displa
bool DisplayServerWindows::window_is_hdr_output_requested(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), false);
const WindowData &wd = windows[p_window];
return wd.hdr_output_requested;
}

bool DisplayServerWindows::window_is_hdr_output_enabled(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), false);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_enabled(p_window);
Expand All @@ -4793,6 +4800,7 @@ bool DisplayServerWindows::window_is_hdr_output_enabled(DisplayServerEnums::Wind
void DisplayServerWindows::window_set_hdr_output_reference_luminance(const float p_reference_luminance, DisplayServerEnums::WindowID p_window) {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND(!windows.has(p_window));
WindowData &wd = windows[p_window];

if (Math::is_equal_approx(wd.hdr_output_reference_luminance, p_reference_luminance)) {
Expand All @@ -4819,13 +4827,15 @@ void DisplayServerWindows::window_set_hdr_output_reference_luminance(const float
float DisplayServerWindows::window_get_hdr_output_reference_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), 0.0);
const WindowData &wd = windows[p_window];
return wd.hdr_output_reference_luminance;
}

float DisplayServerWindows::window_get_hdr_output_current_reference_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), 0.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_reference_luminance(p_window);
Expand All @@ -4838,6 +4848,7 @@ float DisplayServerWindows::window_get_hdr_output_current_reference_luminance(Di
void DisplayServerWindows::window_set_hdr_output_max_luminance(const float p_max_luminance, DisplayServerEnums::WindowID p_window) {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND(!windows.has(p_window));
WindowData &wd = windows[p_window];

if (Math::is_equal_approx(wd.hdr_output_max_luminance, p_max_luminance)) {
Expand All @@ -4864,13 +4875,15 @@ void DisplayServerWindows::window_set_hdr_output_max_luminance(const float p_max
float DisplayServerWindows::window_get_hdr_output_max_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), 0.0);
const WindowData &wd = windows[p_window];
return wd.hdr_output_max_luminance;
}

float DisplayServerWindows::window_get_hdr_output_current_max_luminance(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), 0.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_hdr_output_max_luminance(p_window);
Expand All @@ -4883,6 +4896,7 @@ float DisplayServerWindows::window_get_hdr_output_current_max_luminance(DisplayS
float DisplayServerWindows::window_get_output_max_linear_value(DisplayServerEnums::WindowID p_window) const {
_THREAD_SAFE_METHOD_

ERR_FAIL_COND_V(!windows.has(p_window), 1.0);
#if defined(RD_ENABLED)
if (rendering_context) {
return rendering_context->window_get_output_max_linear_value(p_window);
Expand Down