mirror of
https://github.com/yuzu-emu/FasTC.git
synced 2024-11-27 21:54:15 +01:00
Flesh out the first few functions for our parallel stages.
This commit is contained in:
parent
ea16d1af44
commit
f704fc55af
@ -43,6 +43,9 @@
|
|||||||
|
|
||||||
#include "ParallelStage.h"
|
#include "ParallelStage.h"
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
const BC7ParallelStage stage;
|
const BC7ParallelStage stage;
|
||||||
|
|
||||||
@ -61,19 +64,41 @@
|
|||||||
// This is the total number of blocks in this particular stage.
|
// This is the total number of blocks in this particular stage.
|
||||||
uint32 m_NumBlocks;
|
uint32 m_NumBlocks;
|
||||||
*/
|
*/
|
||||||
ParallelStage::ParallelStage(BC7ParallelStage stage, const unsigned char *inbuf, unsigned char *outbuf, uint32 numBlocks) {
|
ParallelStage::ParallelStage(BC7ParallelStage stage, const unsigned char *inbuf, unsigned char *outbuf, uint32 numBlocks)
|
||||||
|
: m_Stage(stage)
|
||||||
|
, m_InBuf(inbuf)
|
||||||
|
, m_OutBuf(outbuf)
|
||||||
|
, m_Blocks(new uint32[numBlocks])
|
||||||
|
, m_TotalNumBlocks(numBlocks)
|
||||||
|
, m_NumBlocks(0)
|
||||||
|
{
|
||||||
|
assert(numBlocks > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
ParallelStage::ParallelStage(const ParallelStage &) {
|
ParallelStage::ParallelStage(const ParallelStage &other)
|
||||||
|
: m_Stage(other.m_Stage)
|
||||||
|
, m_InBuf(other.m_InBuf)
|
||||||
|
, m_OutBuf(other.m_OutBuf)
|
||||||
|
, m_Blocks(new uint32[other.m_NumBlocks])
|
||||||
|
, m_TotalNumBlocks(other.m_TotalNumBlocks)
|
||||||
|
, m_NumBlocks(other.m_NumBlocks)
|
||||||
|
{
|
||||||
|
memcpy(m_Blocks, other.m_Blocks, m_NumBlocks * sizeof(m_Blocks[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
ParallelStage &ParallelStage::operator=(const ParallelStage &) {
|
ParallelStage &ParallelStage::operator=(const ParallelStage &other) {
|
||||||
|
assert(m_Stage == other.m_Stage);
|
||||||
|
assert(m_InBuf == other.m_InBuf);
|
||||||
|
assert(m_OutBuf == other.m_OutBuf);
|
||||||
|
assert(m_TotalNumBlocks == other.m_TotalNumBlocks);
|
||||||
|
assert(m_NumBlocks == other.m_NumBlocks);
|
||||||
|
|
||||||
|
memcpy(m_Blocks, other.m_Blocks, m_NumBlocks * sizeof(m_Blocks[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void ParallelStage::AddBlock(int blockNum) {
|
void ParallelStage::AddBlock(int blockNum) {
|
||||||
|
assert(m_NumBlocks < m_TotalNumBlocks);
|
||||||
|
|
||||||
|
m_Blocks[m_NumBlocks++] = blockNum;
|
||||||
}
|
}
|
@ -57,7 +57,7 @@ class ParallelStage {
|
|||||||
ParallelStage(const ParallelStage &);
|
ParallelStage(const ParallelStage &);
|
||||||
ParallelStage &operator=(const ParallelStage &);
|
ParallelStage &operator=(const ParallelStage &);
|
||||||
|
|
||||||
const BC7ParallelStages stage;
|
const BC7ParallelStage m_Stage;
|
||||||
|
|
||||||
void AddBlock(int blockNum);
|
void AddBlock(int blockNum);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user