JD2022-TU1/main/extern/Camcam/LIBS/LibNatal/ZoffsetCorrection.cpp

34 lines
No EOL
874 B
C++

#include <stdio.h>
#include <process.h>
#include <windows.h>
#include "LibNatal.h"
//#pragma optimize("",off)
/* Re map Z according to RGB colors by sliding Z pixels over X */
void ZXOffsetCorrection(s16 *pZBuffer,u32 SX,u32 SY)
{
s16 OneLine[2048];
for (s32 Y = 0 ; Y < (s32)SY ; Y ++ )
{
/* Solve Line By Line */
memcpy(OneLine,pZBuffer,SX*2);
memset(pZBuffer,0,SX*2);
for (s32 X = 0 ; X < (s32)SX ; X ++ )
{
s32 NewOffset;
if (OneLine[X])
{
static float Claqueee = 55.5f;
NewOffset = X + Claqueee * (256.0f / (float)OneLine[X]);
if ((NewOffset > 0)&&(NewOffset+1 < SX))
{
if ((!pZBuffer[NewOffset]) || (pZBuffer[NewOffset] > OneLine[X])) pZBuffer[NewOffset] = OneLine[X];
if ((!pZBuffer[NewOffset+1]) || (pZBuffer[NewOffset+1] > OneLine[X])) pZBuffer[NewOffset+1] = OneLine[X];
}
}
}
pZBuffer += SX;
}
}