Mesen-SX/Core/PpuTools.h

32 lines
1.1 KiB
C
Raw Normal View History

2019-03-03 16:34:23 -05:00
#pragma once
#include "stdafx.h"
2019-03-23 15:39:21 -04:00
#include "DebugTypes.h"
2019-03-03 16:34:23 -05:00
class Ppu;
class Console;
class PpuTools
{
private:
Ppu *_ppu;
Console *_console;
unordered_map<uint32_t, uint32_t> _updateTimings;
2019-03-23 15:39:21 -04:00
uint8_t GetTilePixelColor(const uint8_t* ram, const uint32_t ramMask, const uint8_t bpp, const uint32_t pixelStart, const uint8_t shift);
2019-03-03 16:34:23 -05:00
uint32_t ToArgb(uint16_t color);
void BlendColors(uint8_t output[4], uint8_t input[4]);
uint32_t GetRgbPixelColor(uint8_t* cgram, uint8_t colorIndex, uint8_t palette, uint8_t bpp, bool directColorMode, uint16_t basePaletteOffset);
2019-03-23 15:39:21 -04:00
2019-03-03 16:34:23 -05:00
public:
2019-03-23 15:39:21 -04:00
PpuTools(Console *console, Ppu *ppu);
2019-03-03 16:34:23 -05:00
void GetTileView(GetTileViewOptions options, uint8_t *source, uint32_t srcSize, uint8_t *cgram, uint32_t *outBuffer);
void GetTilemap(GetTilemapOptions options, uint8_t* vram, uint8_t* cgram, uint32_t *outBuffer);
2019-04-25 19:49:15 -04:00
void GetSpritePreview(GetSpritePreviewOptions options, PpuState state, uint8_t* vram, uint8_t* oamRam, uint8_t* cgram, uint32_t *outBuffer);
2019-03-03 16:34:23 -05:00
void SetViewerUpdateTiming(uint32_t viewerId, uint16_t scanline, uint16_t cycle);
void RemoveViewer(uint32_t viewerId);
void UpdateViewers(uint16_t scanline, uint16_t cycle);
};