jasper/deps/teagba/src/gfx.cpp
Gary Talent ab89463b0f Squashed 'deps/nostalgia/' changes from 89fab5cc..b46cb65b
b46cb65b [nostalgia/studio] Add version
877349df [nostalgia/core/studio] Increase max tilesheet export size, fix input handling when popups open
5418c062 [olympic] Change olympic::s_version to olympic::appVersion
dd9c1100 [glutils] Update copyright for 2024
db82aee7 [teagba] Update copyright for 2024
edf15858 [teagba] Update copyright for 2024
d1efbb2f [ox] Update copyright for 2024
051623f4 [olympic,nostalgia] Update copyright for 2024
055d64b1 [olympic] Add support for an AppLib app specific version
de9f8426 [ox/std] Add error.hpp include to memory.hpp
200e5867 Add .idea to .gitignore
f1609519 [olympic] Cleanup
e452d9db [nostalgia] Add python3-mypy to Debian deps
43a87b60 [nostalgia] Ensure pkg-gba reads .current_build without a new line
8acc6244 [olympic/keel] Improve error clarity on pack some common failures
bd2aeee2 [ox/claw] Improve error clarity when loading ModelObjects

git-subtree-dir: deps/nostalgia
git-subtree-split: b46cb65b7f5b1ea17c115fcb31a6baff323ea1a3
2024-01-05 22:12:08 -06:00

33 lines
808 B
C++

/*
* Copyright 2016 - 2024 Gary Talent (gary@drinkingtea.net). All rights reserved.
*/
#include <teagba/addresses.hpp>
#include <teagba/bios.hpp>
#include <teagba/irq.hpp>
#include <teagba/gfx.hpp>
namespace teagba {
static ox::Array<GbaSpriteAttrUpdate, 128> g_spriteBuffer;
GbaSpriteAttrUpdate &spriteAttr(size_t i) noexcept {
return g_spriteBuffer[i];
}
void addSpriteUpdate(const GbaSpriteAttrUpdate &upd) noexcept {
const auto ie = REG_IE; // disable vblank interrupt handler
REG_IE = REG_IE & static_cast<uint16_t>(~teagba::Int_vblank); // disable vblank interrupt handler
g_spriteBuffer[upd.idx] = upd;
REG_IE = ie; // enable vblank interrupt handler
}
void applySpriteUpdates() noexcept {
for (auto const&oa : g_spriteBuffer) {
MEM_OAM[oa.idx] = std::bit_cast<uint64_t>(oa);
}
}
}