blob: f244bc0528a7e1162b8e577011a0fc875edd053f [file] [log] [blame] [edit]
// Copyright 2025 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/graphics/display/lib/api-protocols/cpp/display-engine-interface.h"
#include <zircon/assert.h>
#include "src/graphics/display/lib/api-types/cpp/color-conversion.h"
#include "src/graphics/display/lib/api-types/cpp/config-check-result.h"
namespace display {
zx::result<> DisplayEngineInterface::SetDisplayPower(display::DisplayId display_id, bool power_on) {
return zx::error(ZX_ERR_NOT_SUPPORTED);
}
zx::result<> DisplayEngineInterface::StartCapture(display::DriverCaptureImageId capture_image_id) {
return zx::error(ZX_ERR_NOT_SUPPORTED);
}
zx::result<> DisplayEngineInterface::ReleaseCapture(
display::DriverCaptureImageId capture_image_id) {
return zx::error(ZX_ERR_NOT_SUPPORTED);
}
zx::result<> DisplayEngineInterface::SetMinimumRgb(uint8_t minimum_rgb) {
return zx::error(ZX_ERR_NOT_SUPPORTED);
}
display::ConfigCheckResult DisplayEngineInterface::CheckConfiguration(
display::DisplayId display_id, display::ModeId display_mode_id,
cpp20::span<const display::DriverLayer> layers) {
ZX_PANIC("DisplayEngineInterface subclasses must override one CheckConfiguration() overload.");
return display::ConfigCheckResult::kUnsupportedConfig;
}
display::ConfigCheckResult DisplayEngineInterface::CheckConfiguration(
display::DisplayId display_id, display::ModeId display_mode_id,
display::ColorConversion color_conversion, cpp20::span<const display::DriverLayer> layers) {
if (color_conversion != display::ColorConversion::kIdentity) {
return display::ConfigCheckResult::kUnsupportedConfig;
}
return CheckConfiguration(display_id, display_mode_id, layers);
}
void DisplayEngineInterface::ApplyConfiguration(display::DisplayId display_id,
display::ModeId display_mode_id,
cpp20::span<const display::DriverLayer> layers,
display::DriverConfigStamp driver_config_stamp) {
ZX_PANIC("DisplayEngineInterface subclasses must override one ApplyConfiguration() overload.");
}
void DisplayEngineInterface::ApplyConfiguration(display::DisplayId display_id,
display::ModeId display_mode_id,
display::ColorConversion color_conversion,
cpp20::span<const display::DriverLayer> layers,
display::DriverConfigStamp driver_config_stamp) {
ZX_DEBUG_ASSERT_MSG(color_conversion == display::ColorConversion::kIdentity,
"Display coordinator applied rejected ColorConversion");
ApplyConfiguration(display_id, display_mode_id, layers, driver_config_stamp);
}
} // namespace display