Files
eden/src/core/hle/service/nvnflinger/display.h
T
Maufeat 1eed7efd09 [core, display, overlay] Add LayerIsOverlay to separate overlay on composer, stub RequestListSummaryOverlayNotification, sync emu settings when setting language (#3123)
This should fix the issue with, for example, ToTK running at 60 FPS when overlay applet is running.
This also should always run the overlay as actual overlay and not in the back.
Stubs RequestListSummaryOverlayNotifications in friends
Syncs Language of the Emulator, when setting language, this is used in Starter Applet

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3123
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-committed-by: Maufeat <sahyno1996@gmail.com>
2025-12-17 06:26:02 +01:00

59 lines
1.4 KiB
C++

// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "core/hle/service/nvnflinger/buffer_item_consumer.h"
#include "core/hle/service/nvnflinger/hwc_layer.h"
namespace Service::Nvnflinger {
struct Layer {
explicit Layer(std::shared_ptr<android::BufferItemConsumer> buffer_item_consumer_,
s32 consumer_id_)
: buffer_item_consumer(std::move(buffer_item_consumer_)), consumer_id(consumer_id_),
blending(LayerBlending::None), visible(true), z_index(0), is_overlay(false) {}
~Layer() {
buffer_item_consumer->Abandon();
}
std::shared_ptr<android::BufferItemConsumer> buffer_item_consumer;
s32 consumer_id;
LayerBlending blending;
bool visible;
s32 z_index;
bool is_overlay;
};
struct LayerStack {
std::vector<std::shared_ptr<Layer>> layers;
std::shared_ptr<Layer> FindLayer(s32 consumer_id) {
for (auto& layer : layers) {
if (layer->consumer_id == consumer_id) {
return layer;
}
}
return nullptr;
}
bool HasLayers() {
return !layers.empty();
}
};
struct Display {
explicit Display(u64 id_) {
id = id_;
}
u64 id;
LayerStack stack;
};
} // namespace Service::Nvnflinger