[PICA] More textoor

This commit is contained in:
wheremyfoodat 2023-02-01 00:34:58 +02:00
parent ce72368f01
commit 51130b295a
6 changed files with 53 additions and 2 deletions

13
include/colour.hpp Normal file
View file

@ -0,0 +1,13 @@
#pragma once
#include "helpers.hpp"
// Helpers functions for converting colour channels between bit depths
namespace Colour {
inline static u8 convert4To8Bit(u8 c) {
return (c << 4) | c;
}
inline static u8 convert5To8Bit(u8 c) {
return (c << 3) | (c >> 2);
}
}

View file

@ -45,6 +45,7 @@ class Renderer {
const std::array<u32, regNum>& regs;
OpenGL::Framebuffer getColourFBO();
OpenGL::Texture getTexture(Texture& tex);
MAKE_LOG_FUNCTION(log, rendererLogger)

View file

@ -41,7 +41,7 @@ public:
}
// Adds a surface object to the cache and returns it
SurfaceType add(SurfaceType& surface) {
SurfaceType add(const SurfaceType& surface) {
if (size >= capacity) {
Helpers::panic("Surface cache full! Add emptying!");
}

View file

@ -55,9 +55,12 @@ struct Texture {
}
void allocate();
void decodeTexture(void* data);
void free();
u64 sizeInBytes();
u32 decodeTexel(u32 u, u32 v, Formats fmt, void* data);
// Get the morton interleave offset of a texel based on its U and V values
static u32 mortonInterleave(u32 u, u32 v);
// Get the byte offset of texel (u, v) in the texture