Initial commit

This commit is contained in:
Gericom
2025-11-22 17:21:45 +01:00
commit 5d6f67c612
517 changed files with 63025 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
#pragma once
#include "palette/IPalette.h"
#define PALETTE_MANAGER_ROW_IDX_INVALID 0xFF
/// @brief Base class for palette management.
class PaletteManager
{
public:
virtual ~PaletteManager() { }
/// @brief Allocates a palette row for the given palette, which is used
/// in the display line range from yStart to yEnd (exclusive).
/// @param palette The palette to allocate a row for.
/// @param yStart The first display line the palette will be used on.
/// @param yEnd The display line from which the palette will not be used anymore.
/// @return The allocated palette row number.
virtual u32 AllocRow(const IPalette& palette, int yStart, int yEnd) = 0;
/// @brief Allocates a palette row for the given palette, assuming it
/// will be used on all display lines.
/// @param palette The palette to allocate a row for.
/// @return The allocated palette row number.
/// @note It is recommended to specify the start and end display line
/// for more efficient palette management.
u32 AllocRow(const IPalette& palette)
{
return AllocRow(palette, 0, 192);
}
};