yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
graphics_sheet_store.h File Reference

One ROM session's graphics sheet pixels, with a revision per sheet. More...

#include <array>
#include <cstddef>
#include <cstdint>
#include <utility>
#include <vector>
#include "absl/status/status.h"
#include "absl/types/span.h"

Go to the source code of this file.

Classes

class  yaze::zelda3::GraphicsSheetStore
 
class  yaze::zelda3::GraphicsSheetStore::Edit
 
struct  yaze::zelda3::GraphicsSheetStoreHolder
 

Namespaces

namespace  yaze
 
namespace  yaze::zelda3
 Zelda 3 specific classes and functions.
 

Detailed Description

One ROM session's graphics sheet pixels, with a revision per sheet.

The pixels use the legacy GameData::graphics_buffer layout: 223 sheets of 128x32 8bpp indices, sheet i at byte i * 4096. graphics_buffer is an alias of this buffer, so Room, OverworldMap and the title screen read it unchanged.

A sheet's revision changes whenever the store replaces its pixels, so a consumer that caches pixels can tell when to rebuild. Revisions come from one process-wide counter, so two stores never hand out the same number for different pixels (a copied store keeps the numbers it copied). Writes through the graphics_buffer alias bypass the revisions; see docs/internal/agents/graphics-sheet-store-proposal-2026-09-26.md for the migration that moves writers onto the store.

Definition in file graphics_sheet_store.h.