openMSX
Classes | Enumerations | Functions | Variables
openmsx::VDPAccessSlots Namespace Reference

Classes

struct  AccessTable
 
class  Calculator
 VDP-VRAM access slot calculator, meant to be used in the inner loops of the VDPCmdEngine commands. More...
 
struct  CycleTable
 
struct  ZeroTable
 

Enumerations

enum  Delta : int {
  DELTA_0 = 0 * TICKS , DELTA_1 = 1 * TICKS , DELTA_16 = 2 * TICKS , DELTA_24 = 3 * TICKS ,
  DELTA_28 = 4 * TICKS , DELTA_32 = 5 * TICKS , DELTA_40 = 6 * TICKS , DELTA_48 = 7 * TICKS ,
  DELTA_64 = 8 * TICKS , DELTA_72 = 9 * TICKS , DELTA_88 = 10 * TICKS , DELTA_104 = 11 * TICKS ,
  DELTA_120 = 12 * TICKS , DELTA_128 = 13 * TICKS , DELTA_136 = 14 * TICKS , NUM_DELTAS = 15
}
 

Functions

EmuTime getAccessSlot (EmuTime::param frame, EmuTime::param time, Delta delta, const VDP &vdp)
 Return the time of the next available access slot that is at least 'delta' cycles later than 'time'.
 
Calculator getCalculator (EmuTime::param frame, EmuTime::param time, EmuTime::param limit, const VDP &vdp)
 When many calls to getAccessSlot() are needed, it's more efficient to instead use this function.
 

Variables

constexpr int TICKS = VDP::TICKS_PER_LINE
 

Enumeration Type Documentation

◆ Delta

Enumerator
DELTA_0 
DELTA_1 
DELTA_16 
DELTA_24 
DELTA_28 
DELTA_32 
DELTA_40 
DELTA_48 
DELTA_64 
DELTA_72 
DELTA_88 
DELTA_104 
DELTA_120 
DELTA_128 
DELTA_136 
NUM_DELTAS 

Definition at line 14 of file VDPAccessSlots.hh.

Function Documentation

◆ getAccessSlot()

EmuTime openmsx::VDPAccessSlots::getAccessSlot ( EmuTime::param  frame,
EmuTime::param  time,
Delta  delta,
const VDP vdp 
)

Return the time of the next available access slot that is at least 'delta' cycles later than 'time'.

The start of the current 'frame' is needed for reference.

Definition at line 244 of file VDPAccessSlots.cc.

References openmsx::Clock< TICKS_PER_SECOND >::duration(), openmsx::Clock< FREQ_NUM, FREQ_DENOM >::getTicksTill_fast(), and TICKS.

Referenced by openmsx::VDP::getAccessSlot().

◆ getCalculator()

Calculator openmsx::VDPAccessSlots::getCalculator ( EmuTime::param  frame,
EmuTime::param  time,
EmuTime::param  limit,
const VDP vdp 
)

When many calls to getAccessSlot() are needed, it's more efficient to instead use this function.

Definition at line 254 of file VDPAccessSlots.cc.

Referenced by openmsx::VDP::getAccessSlotCalculator().

Variable Documentation

◆ TICKS

constexpr int openmsx::VDPAccessSlots::TICKS = VDP::TICKS_PER_LINE
inlineconstexpr