Kyty/source/emulator/include/Emulator/Graphics/Tile.h

58 lines
1.8 KiB
C
Raw Normal View History

2021-12-01 09:29:27 +00:00
#ifndef EMULATOR_INCLUDE_EMULATOR_GRAPHICS_TILE_H_
#define EMULATOR_INCLUDE_EMULATOR_GRAPHICS_TILE_H_
#include "Kyty/Core/Common.h"
#include "Emulator/Common.h"
#ifdef KYTY_EMU_ENABLED
namespace Kyty::Libs::Graphics {
enum class TileMode
{
VideoOutLinear,
VideoOutTiled,
TextureLinear,
TextureTiled,
2022-02-14 01:58:44 +00:00
// RenderTextureLinear,
// RenderTextureTiled,
2021-12-01 09:29:27 +00:00
};
2022-04-27 08:49:15 +00:00
struct TileSizeAlign
{
uint32_t size = 0;
uint32_t align = 0;
};
2022-06-10 09:27:34 +00:00
struct TileSizeOffset
{
uint32_t size = 0;
uint32_t offset = 0;
};
struct TilePaddedSize
{
uint32_t width = 0;
uint32_t height = 0;
};
2021-12-01 09:29:27 +00:00
void TileInit();
void TileConvertTiledToLinear(void* dst, const void* src, TileMode mode, uint32_t width, uint32_t height, bool neo);
void TileConvertTiledToLinear(void* dst, const void* src, TileMode mode, uint32_t dfmt, uint32_t nfmt, uint32_t width, uint32_t height,
2022-05-21 12:04:50 +00:00
uint32_t pitch, uint32_t levels, bool neo);
2021-12-01 09:29:27 +00:00
2022-04-27 08:49:15 +00:00
bool TileGetDepthSize(uint32_t width, uint32_t height, uint32_t pitch, uint32_t z_format, uint32_t stencil_format, bool htile, bool neo,
2022-08-16 10:38:38 +00:00
bool next_gen, TileSizeAlign* stencil_size, TileSizeAlign* htile_size, TileSizeAlign* depth_size);
2022-04-27 08:49:15 +00:00
void TileGetVideoOutSize(uint32_t width, uint32_t height, uint32_t pitch, bool tile, bool neo, TileSizeAlign* size);
2022-02-14 01:58:44 +00:00
void TileGetTextureSize(uint32_t dfmt, uint32_t nfmt, uint32_t width, uint32_t height, uint32_t pitch, uint32_t levels, uint32_t tile,
2022-06-10 09:27:34 +00:00
bool neo, TileSizeAlign* total_size, TileSizeOffset* level_sizes, TilePaddedSize* padded_size);
2022-08-16 10:38:38 +00:00
void TileGetTextureSize2(uint32_t format, uint32_t width, uint32_t height, uint32_t pitch, uint32_t levels, uint32_t tile,
TileSizeAlign* total_size, TileSizeOffset* level_sizes, TilePaddedSize* padded_size);
2021-12-01 09:29:27 +00:00
} // namespace Kyty::Libs::Graphics
#endif
#endif /* EMULATOR_INCLUDE_EMULATOR_GRAPHICS_TILE_H_ */